On Mar 30, 2015, at 1:25 PM, Tim Rodgers <[email protected]> wrote:
>
> On Mar 30, 2015, at 6:16 AM, Carl Eugen Hoyos <[email protected]> wrote:
>>
>> Tim1961 <trodgers@...> writes:
>>
>>> Can anyone shed light on this warning?
>>
>> I am unable to reproduce this, what is
>> your configure line?
This is not a problem in libavcodec. The fix is to add
-read_only_relocs suppress
to the application linker flags of _my_ application when the arch is i386.
The warning generated by clang-600.0.57 was "ld: warning: PIE disabled.
Absolute addressing (perhaps -mdynamic-no-pic) not allowed in code signed PIE,
but used in _ff_h264_decode_mb_cabac from libavcodec.a(h264_cabac.o)". Other
compilers generate the similar warning "ld: illegal text-relocoation (direct
reference) to (global,weak) _ff_h264_cabac_tables in ...(cabac.o) from
_ff_h264_decode_mb_cabac in ...(h264_cabac.o) for architecture i386". There
have been many discussions over the years re: "illegal text-relocation" and the
most frequently referenced explanation I found is
http://lists.apple.com/archives/unix-porting/2008/Jan/msg00027.html
In a nutshell, libavcodec/h264_cabac.c includes libavcodec/x86/h264_i386.h when
compiling for i386 and h264_i386.h defines two functions implemented in
assembler. I believe the compiler is warning us that data referenced by the
assembler might exist in some other linkage unit (library?) and so loading at
runtime could fail.
H.264 CABAC encoding/decoding works on i386 so it's safe to ignore the warning
and add "-read_only_relocs suppress" to the linker flags for arch i386.
Corrections are welcome!
_Many_ thanks,
Tim
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user