gcc4: ffmpeg vs. -freorder-functions

Yaakov (Cygwin/X) yselkowitz@users.sourceforge.net
Tue Jul 14 21:30:00 GMT 2009


On 14/07/2009 11:47, Dave Korn wrote:
>    ffmpeg is one thing that's likely to suffer from the COMMON alignment
> problem very badly, to the extent that I used it as a testcase when I
> developed the support for the new feature, and I have a nicely working version
> on my PC:
>
>    Without support for aligned common data it was falling down badly.

I did get that tidbit out of PR37216, to which you referred earlier. 
But the cases fixed by -fno-common so far (and when it rains, it pours; 
I've had a few more since) have all suffering from segfaults during 
execution, unlike ffmpeg where the initialization itself failed.

>    This isn't always an effective debugging technique; the -On settings don't
> actually strictly correspond to combinations of the -f flags, and even when
> you have tracked down an option that seems to make a difference, you don't
> know whether it's actually anything to do with the optimisation that you're
> tweaking, or some epiphenomenal side-effect.  In this case, I suspect the
> latter; changing the ordering of functions within the executable will have a
> knock on effect on the order with which other symbols get dragged into the
> link and the order in which commons are allocated, for example.

FWIW, I originally verified this with both -O1 
-feverything-except-reorder-functions and -O[23] -fno-reorder-functions.

>    I currently have three full gcc testruns going simultaneously and am short
> of CPU cycles, so it'll be a while before I can try it.  You could check if
> the problem is caused by unaligned variables by either 1) seeing if adding
> "-fno-common" to the CFLAGS fixes the broken executables,

I eliminated that as a solution earlier on.  (I did end up adding it 
once I re-enabled the usual features, as I was getting segfaults with 
WMA/WMV files, but not with MP3s, but that seems to be independent of 
this issue.)

>    Of course it could be an entirely new and interesting bug.  We'll see.

If you have a working version without this, it's very possible that has 
been fixed in the newer versions of binutils or gcc which you are 
running.  (I'm still running gcc-4.3.2-2 with binutils-2.19.51-1, but I 
had the bug with 20080624-2 as well.)


Yaakov

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list