[FFmpeg-devel] revision 13146 breaks x86_64 compilation

David Bolt 7c6ebd986448736acd2250be77d2cc38
Tue May 13 22:08:45 CEST 2008


I've just tried building the latest revision of ffmpeg (13150) and it
fails to build on all my various x86_64 systems. Checking back through
the revisions, the last one to build correctly was 13145. When building
13146, this is the output:

./configure --shlibdir=/usr/lib64 --prefix=/usr --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --cpu=athlon64 --enable-pthreads --
enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaad --enable-libfaac --enable-libxvid --enable-liba52 --
enable-swscale --enable-postproc --enable-gpl --enable-vhook --enable-x11grab --enable-libgsm --enable-libx264
./configure: line 414: $TMPC: ambiguous redirect
install prefix            /usr
source path               /usr/src/packages/BUILD/ffmpeg
C compiler                gcc
.align is power-of-two    no
ARCH                      x86_32 (athlon64)
big-endian                no
MMX enabled               yes
CMOV enabled              yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
gprof enabled             no
debug symbols             yes
strip symbols             yes
optimizations             yes
static                    yes
shared                    yes
postprocessing support    yes
software scaler enabled   yes
new filter support        no
filters using lavformat   no
video hooking             yes
Imlib2 support            yes
FreeType support          yes
network support           yes
IPv6 support              yes
threading support         pthreads
SDL support               yes
Sun medialib support      no
AVISynth enabled          no
liba52 support            yes
liba52 dlopened           no
libamr-nb support         no
libamr-wb support         no
libdc1394 support         no
libdirac enabled          no
libfaac enabled           yes
libfaad enabled           yes
libfaad dlopened          no
libgsm enabled            yes
libmp3lame enabled        yes
libnut enabled            no
libschroedinger enabled   no
libtheora enabled         yes
libvorbis enabled         yes
x264 enabled              yes
XviD enabled              yes
zlib enabled              yes

<Snip list of decoders, encoders, parsers, etc.>

gcc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/usr/src/packages/BUILD/ffmpeg" -I"/usr/src/packages/BUILD
/ffmpeg" -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2  -fPIC -I/usr/include/gsm -fomit-frame-pointer -march=athlon64 -pthread -g -Wdeclaration-
after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -O3 -
fno-math-errno         -c -o libpostproc/postprocess.o libpostproc/postprocess.c
libpostproc/postprocess.c: In function ?reallocBuffers?:
libpostproc/postprocess.c:920: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:921: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:922: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:923: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:933: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:934: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:935: warning: dereferencing type-punned pointer will break strict-aliasing rules
libpostproc/postprocess.c:936: warning: dereferencing type-punned pointer will break strict-aliasing rules
/tmp/ccPPIbhc.s: Assembler messages:
/tmp/ccPPIbhc.s:1929: Error: suffix or operands invalid for `mov'
/tmp/ccPPIbhc.s:1932: Error: suffix or operands invalid for `add'
/tmp/ccPPIbhc.s:1934: Error: suffix or operands invalid for `imul'
/tmp/ccPPIbhc.s:1935: Error: suffix or operands invalid for `imul'
/tmp/ccPPIbhc.s:1936: Error: `32(%eax,%rdi)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1937: Error: `32(%edx,%rcx)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1938: Error: suffix or operands invalid for `add'
/tmp/ccPPIbhc.s:1939: Error: suffix or operands invalid for `add'
/tmp/ccPPIbhc.s:1940: Error: `32(%eax,%rdi)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1941: Error: `32(%edx,%rcx)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1958: Error: `(%eax,%r10,2)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1960: Error: `(%edx,%r12,2)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1962: Error: `(%eax,%r10,4)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1964: Error: `(%edx,%r12,4)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1965: Error: `(%eax,%r10,4)' is not a valid base/index expression
/tmp/ccPPIbhc.s:1966: Error: `(%edx,%r12,4)' is not a valid base/index expression

<Snip more of the same sort of errors>

Looking at the SVN logs, it appears that the moving the arch check to
before the OS check is causing the arch to be incorrectly identified as
x86_32. As a comparison, building 13145 returned the following:

+ ./configure --shlibdir=/usr/lib64 --prefix=/usr --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --cpu=athlon64 --enable-pthreads --
enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaad --enable-libfaac --enable-libxvid --enable-liba52 --
enable-swscale --enable-postproc --enable-gpl --enable-vhook --enable-x11grab --enable-libgsm --enable-libx264
install prefix            /usr
source path               /usr/src/packages/BUILD/ffmpeg
C compiler                gcc
.align is power-of-two    no
ARCH                      x86_64 (athlon64)
big-endian                no
MMX enabled               yes
CMOV enabled              yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
gprof enabled             no
debug symbols             yes
strip symbols             yes
optimizations             yes
static                    yes
shared                    yes
postprocessing support    yes
software scaler enabled   yes
new filter support        no
filters using lavformat   no
video hooking             yes
Imlib2 support            yes
FreeType support          yes
network support           yes
IPv6 support              yes
threading support         pthreads
SDL support               yes
Sun medialib support      no
AVISynth enabled          no
liba52 support            yes
liba52 dlopened           no
libamr-nb support         no
libamr-wb support         no
libdc1394 support         no
libdirac enabled          no
libfaac enabled           yes
libfaad enabled           yes
libfaad dlopened          no
libgsm enabled            yes
libmp3lame enabled        yes
libnut enabled            no
libschroedinger enabled   no
libtheora enabled         yes
libvorbis enabled         yes
x264 enabled              yes
XviD enabled              yes
zlib enabled              yes



Regards,
        David Bolt

-- 
Team Acorn: http://www.distributed.net/ OGR-P2 @ ~100Mnodes RC5-72 @ ~15Mkeys
SUSE 10.1 32bit  | openSUSE 10.2 32bit | openSUSE 10.3 32bit | openSUSE 11.0b1
SUSE 10.1 64bit  | openSUSE 10.2 64bit | openSUSE 10.3 64bit
RISC OS 3.6      | TOS 4.02            | openSUSE 10.3 PPC   | RISC OS 3.11




More information about the ffmpeg-devel mailing list