id,summary,reporter,owner,description,type,status,priority,component,version,resolution,keywords,cc,blockedby,blocking,reproduced,analyzed
1794,Can't cross-compile on Intel for ARM target with zmbvenc enabled,patters,,"I just checked this with the latest nightly source bz2 file and it's still a problem. I am compiling on a Ubuntu Desktop 12. I'm compiling for Synology NAS embedded systems that have multiple CPU architectures, using their various GCC toolchains available here:
[http://sourceforge.net/projects/dsgpl/files/DSM%204.1%20Tool%20Chains/]

Cross-compiling using their Intel toolchain is fine, so is cross-compiling for PowerPC-SPE (QorIQ). Only cross-compiling for ARM exhibits this problem (native compile is actually ok), and the issue can be circumvented by disabling the zmbv encoder at the configure stage.

Here is the error output:
{{{
...
CC	libavcodec/xwddec.o
CC	libavcodec/xwdenc.o
CC	libavcodec/xxan.o
CC	libavcodec/y41pdec.o
CC	libavcodec/y41penc.o
CC	libavcodec/yop.o
CC	libavcodec/yuv4dec.o
CC	libavcodec/yuv4enc.o
CC	libavcodec/zerocodec.o
CC	libavcodec/zmbv.o
CC	libavcodec/zmbvenc.o
libavcodec/zmbvenc.c: In function 'encode_frame':
libavcodec/zmbvenc.c:252: internal compiler error: internal consistency failure
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make: *** [libavcodec/zmbvenc.o] Error 1
}}}

Here's how I'm building:
{{{
cd ~/Downloads
wget ""http://sourceforge.net/projects/dsgpl/files/DSM%204.1%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/gcc421_glibc25_88f6281-GPL.tgz""
tar xvzf gcc421_glibc25_88f6281-GPL.tgz
sudo mv arm-none-linux-gnueabi /usr/local

export TOOLCHAIN=/usr/local/arm-none-linux-gnueabi
export AR=${TOOLCHAIN}/bin/arm-none-linux-gnueabi-ar
export CC=${TOOLCHAIN}/bin/arm-none-linux-gnueabi-gcc
export CXX=${TOOLCHAIN}/bin/arm-none-linux-gnueabi-g++
export LD=${TOOLCHAIN}/bin/arm-none-linux-gnueabi-ld
export RANLIB=${TOOLCHAIN}/bin/arm-none-linux-gnueabi-ranlib
export CFLAGS=""-I${TOOLCHAIN}/include""
export LDFLAGS=""-L${TOOLCHAIN}/lib""
export PKG_CONFIG_PATH=""${TOOLCHAIN}/lib/pkgconfig""

#-----fixed point maths modification for mpeg audio encoder
sed -i ""s/^#define USE_FLOATS//"" libavcodec/mpegaudioenc.c

./configure --arch=arm --cpu=armv5te --enable-cross-compile --cross-prefix=${TOOLCHAIN}/bin/arm-none-linux-gnueabi- --target-os=linux --prefix=${TOOLCHAIN} --extra-cflags='-I${TOOLCHAIN}/include' --extra-ldflags='-L/tmp/lib' --enable-static --disable-shared --disable-ffplay --disable-ffserver --enable-pthreads
make
}}}

Here's the toolchain's compiler version info:
{{{
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /home/slava/toolchain_build/crosstool/build/arm-none-linux-gnueabi/gcc-4.2-glibc-2.5/gcc-4.2/configure --target=arm-none-linux-gnueabi --host=i686-host_pc-linux-gnu --prefix=/home/slava/toolchain_build/crosstool/install/gcc-4.2-glibc-2.5/arm-none-linux-gnueabi --with-tune=marvell-f --with-sysroot=/home/slava/toolchain_build/crosstool/install/gcc-4.2-glibc-2.5/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc --with-local-prefix=/home/slava/toolchain_build/crosstool/install/gcc-4.2-glibc-2.5/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc --disable-nls --enable-threads --with-gnu-as --with-gnu-ld --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --with-versuffix=CodeSourcery 2007q3-51, Marvell SoC SDK 2.1 --enable-multilib --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-pch
Thread model: posix
gcc version 4.2.1
}}}
",defect,closed,normal,avcodec,git-master,invalid,zmbvenc,,,,0,0
