[FFmpeg-devel] [PATCH] broken build with --disable-optimizations

Måns Rullgård mans
Mon Jan 18 17:19:52 CET 2010


Michael Niedermayer <michaelni at gmx.at> writes:

> On Mon, Jan 18, 2010 at 03:14:30PM +0000, M?ns Rullg?rd wrote:
>> Michael Niedermayer <michaelni at gmx.at> writes:
>> 
>> > On Mon, Jan 18, 2010 at 02:01:11PM +0000, M?ns Rullg?rd wrote:
>> >> Jai Menon <jmenon86 at gmail.com> writes:
>> >> 
>> >> > On Sun, Jan 17, 2010 at 10:06:17PM +0100, Michael Niedermayer wrote:
>> >> >> On Mon, Jan 18, 2010 at 01:11:40AM +0530, Jai Menon wrote:
>> >> >> > Hi,
>> >> >> > 
>> >> >> > Attached patch fixes it. This probably isn't correct and is
>> >> >> > just meant to be an indicator of what the issue is.
>> >> >> 
>> >> >> Could you show me the error message with which it fails?
>> >> >
>> >> > here you go :
>> >> >
>> >> > /home/jai/ffbuild/libavcodec/libavcodec.a(h264.o): In function
>> >> > `decode_significance_8x8_x86':
>> >> > /home/jai/ffmpeg/libavcodec/x86/h264_i386.h:97: undefined reference to
>> >> > `last_coeff_flag_offset_8x8'
>> >> 
>> >> The problem is all those non-inline functions in h264*.h. 
>> >
>> >> There is absolutely no sense whatsoever in having a non-inline
>> >> function in a header file.
>> >
>> > There is a sense, some things like CABAC are constants that way but
>> > would not if its in a C file. inlining OTOH may or may not be good,
>> > its independant
>> 
>> I see your point.  However, you could still put both versions of the
>> function in a .c file, perhaps by #including a template.h with
>> different definitions.
>
> yes, but simply adding a dummy symbol for the 2 problematic tables seems
> like the simpler solution. If we need a workaround until someone benchmarks
> the stuff and checks what is best

Do the functions currently get inlined?

>> > and jais compiler is broken if it does not remove unused static functions
>> 
>> There is no such requirement in the C standard, so technically the
>> compiler is not broken at all, just not optimising very well (at the
>> request of the user this time).
>
> of course but i suspect there also is no such requirement for static inline
> functions either.

No, because inline has no semantic meaning at all.  It is only a hint.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list