Log in

View Full Version : x264-76x, 64 bit Linux, GCC 4.3.0 tool chain


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.

akupenguin
19th March 2008, 16:59
x86_64 doesn't have nor use x264_pixel_sa8d_8x8_mmxext. So find out where the reference is, and that's the bug.

skottish
20th March 2008, 02:30
x86_64 doesn't have nor use x264_pixel_sa8d_8x8_mmxext. So find out where the reference is, and that's the bug.

Thanks for responding.

I really don't understand it, but it ended up being the tool chain. After reverting back to the gcc, gcc-libs, binutils, libtool, cairomm, libsigc++2.0, glibmm, gtkmm, and kernel-headers in the Arch Linux core repo, I got a proper build.