Trying to compile the last svn ffmpeg version in a powerpc machine with Ubuntu 8.10: $ uname -a Linux aliena 2.6.25-2-powerpc #1 Tue Sep 30 14:49:00 UTC 2008 ppc GNU/Linux $ gcc -v Using built-in specs. Target: powerpc-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.2-1ubuntu12' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --disable-softfloat --enable-secureplt --enable-targets=powerpc-linux,powerpc64-linux --with-cpu=default32 --with-long-double-128 --enable-checking=release --build=powerpc-linux-gnu --host=powerpc-linux-gnu --target=powerpc-linux-gnu Thread model: posix gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu12) The error is: gcc -DHAVE_AV_CONFIG_H -I. -I"/home/sergio/ffmpeg" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fomit-frame-pointer -maltivec -mabi=altivec -pthread -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -O3 -fno-math-errno -fno-signed-zeros -c -o libavcodec/bmp.o libavcodec/bmp.c libavcodec/bmp.c: In function ‘bmp_decode_frame’: libavcodec/bmp.c:51: warning: ‘rgb[1]’ may be used uninitialized in this function libavcodec/bmp.c:51: warning: ‘rgb[2]’ may be used uninitialized in this function libavcodec/bmp.c:307: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.3/README.Bugs> for instructions. make: *** [libavcodec/bmp.o] Error 1 Using the same gcc version in a 386 Ubuntu 8.10 machine there is no error.
Thanks for the report. Could you possibly attach the preprocessed source file that triggers the internal compiler error?
Created attachment 17663 [details] preprocessed source file
Reducing.
I compiled again disabling Altivec optimizations and it worked :) $./configure --disable-altivec [...] $make [...] $ ./ffmpeg FFmpeg version SVN-r18634, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --enable-gpl --enable-postproc --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libxvid --disable-altivec libavutil 50. 3. 0 / 50. 3. 0 libavcodec 52.27. 0 / 52.27. 0 libavformat 52.32. 0 / 52.32. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Apr 21 2009 15:16:50, gcc: 4.3.2 At least one output file must be specified I hope there are not so much optimization issues by using this ffmpeg... Anyway, I guess this bug should be solved...
Reducing very slowly ... which makes it sound like a GC issue. But, confirmed with the original testcase and a cross-compiler. Fails on the 4.3 branch with -O3 -fno-math-errno -maltivec -mabi=altivec -g, works for me on the trunk.
Indeed. Fails with --param ggc-min-expand=100 --param ggc-min-heapsize=131072, works with --param ggc-min-expand=100 --param ggc-min-heapsize=0. Didn't we have a ppc GC problem somewhere? With always-collect we get ./cc1 -quiet -o /dev/null bmp.i -O3 -fno-math-errno -maltivec -mabi=altivec -g --param ggc-min-expand=0 --param ggc-min-heapsize=0 libavcodec/bmp.c: In function 'bmp_decode_frame': libavcodec/bmp.c:307: internal compiler error: in tree_node_structure, at tree.c:2241 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. during collecting of #17 0x00000000005b8f9c in gt_ggc_mx_VEC_rtx_gc (x_p=0x7ffff36fa000) at gtype-desc.c:786 786 gt_ggc_m_7rtx_def ((*x).base.vec[i0]);
GCC 4.3 has not supported for some time now, and FFMPEG currently builds successfully on PPC Linux with GCC 4.5 (see http://fate.ffmpeg.org/). Please close this bug.
Assuming fixed.