skottish
19th March 2008, 16:06
It looks as if x264 is producing bad shared objects on 64 bit with the GCC 4.3.0 tool chain on Linux. This has been going on with the last few revisions. ffmpeg-svn cannot build against the version of x264 produced. This is from config.err:
check_lib x264.h x264_encoder_open -lx264 -lm
check_header x264.h
check_cpp
BEGIN /tmp/ffmpeg-conf-5262-12800-11030.c
1 #include <x264.h>
2 int x;
END /tmp/ffmpeg-conf-5262-12800-11030.c
gcc -march=native -mtune=native -O2 -pipe -fPIC -fomit-frame-pointer -pthread -E -o /tmp/ffmpeg-conf-30235-12800-2480.o /tmp/ffmpeg-conf-5262-12800-11030.c
In file included from /tmp/ffmpeg-conf-5262-12800-11030.c:1:
/usr/include/x264.h:32:4: warning: #warning You must include stdint.h or inttypes.h before x264.h
check_func x264_encoder_open
check_ld
check_cc
BEGIN /tmp/ffmpeg-conf-5262-12800-11030.c
1 extern int x264_encoder_open();
2 int main(void){
3 x264_encoder_open();
4 }
END /tmp/ffmpeg-conf-5262-12800-11030.c
gcc -march=native -mtune=native -O2 -pipe -fPIC -fomit-frame-pointer -pthread -c -o /tmp/ffmpeg-conf-30235-12800-2480.o /tmp/ffmpeg-conf-5262-12800-11030.c
gcc -o /tmp/ffmpeg-conf-533-12800-18464 /tmp/ffmpeg-conf-30235-12800-2480.o -lz -pthread -lm -la52 -lfaac -lfaad -lmp3lame -lm -ltheora -logg -lvorbisenc -lvorbis -logg -lx264 -lm
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/../../../../lib/libx264.so: undefined reference to `x264_pixel_sa8d_8x8_mmxext'
collect2: ld returned 1 exit status
ERROR: x264 not found
This problem is not effecting 32 bit. If any more information is needed, I'll be glad to provide it.
check_lib x264.h x264_encoder_open -lx264 -lm
check_header x264.h
check_cpp
BEGIN /tmp/ffmpeg-conf-5262-12800-11030.c
1 #include <x264.h>
2 int x;
END /tmp/ffmpeg-conf-5262-12800-11030.c
gcc -march=native -mtune=native -O2 -pipe -fPIC -fomit-frame-pointer -pthread -E -o /tmp/ffmpeg-conf-30235-12800-2480.o /tmp/ffmpeg-conf-5262-12800-11030.c
In file included from /tmp/ffmpeg-conf-5262-12800-11030.c:1:
/usr/include/x264.h:32:4: warning: #warning You must include stdint.h or inttypes.h before x264.h
check_func x264_encoder_open
check_ld
check_cc
BEGIN /tmp/ffmpeg-conf-5262-12800-11030.c
1 extern int x264_encoder_open();
2 int main(void){
3 x264_encoder_open();
4 }
END /tmp/ffmpeg-conf-5262-12800-11030.c
gcc -march=native -mtune=native -O2 -pipe -fPIC -fomit-frame-pointer -pthread -c -o /tmp/ffmpeg-conf-30235-12800-2480.o /tmp/ffmpeg-conf-5262-12800-11030.c
gcc -o /tmp/ffmpeg-conf-533-12800-18464 /tmp/ffmpeg-conf-30235-12800-2480.o -lz -pthread -lm -la52 -lfaac -lfaad -lmp3lame -lm -ltheora -logg -lvorbisenc -lvorbis -logg -lx264 -lm
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/../../../../lib/libx264.so: undefined reference to `x264_pixel_sa8d_8x8_mmxext'
collect2: ld returned 1 exit status
ERROR: x264 not found
This problem is not effecting 32 bit. If any more information is needed, I'll be glad to provide it.