GNOME Bugzilla – Bug 651768
[PATCH] Arm cross compile fail (Failed to configure embedded FFmpeg tree)
Last modified: 2011-10-29 15:22:33 UTC
(1) set environment variable (2) CC=arm-linux-gcc ./configure --build=i686-linux --host=arm-linux --prefix=/home/frank/projects/local (3)Cross compile fail, information is bellow: (4)How to fix it? checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-linux-strip... arm-linux-strip checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking nano version... 0 (release) checking whether to enable maintainer-specific portions of Makefiles... no checking build system type... i686-pc-linux-gnu checking host system type... arm-unknown-linux-gnu checking how to print strings... printf checking for style of include used by make... GNU checking for arm-linux-gcc... arm-linux-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... yes checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether arm-linux-gcc accepts -g... yes checking for arm-linux-gcc option to accept ISO C89... none needed checking dependency style of arm-linux-gcc... gcc3 checking for a sed that does not truncate output... /home/frank/projects/lpc313x/eldk42/bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by arm-linux-gcc... /home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld checking if the linker (/home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /home/frank/projects/lpc313x/eldk42/usr/bin/arm-linux-nm -B checking the name lister (/home/frank/projects/lpc313x/eldk42/usr/bin/arm-linux-nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld option to reload object files... -r checking for arm-linux-objdump... objdump checking how to recognize dependent libraries... pass_all checking for arm-linux-ar... arm-linux-ar checking for arm-linux-strip... (cached) arm-linux-strip checking for arm-linux-ranlib... arm-linux-ranlib checking command to parse /home/frank/projects/lpc313x/eldk42/usr/bin/arm-linux-nm -B output from arm-linux-gcc object... ok checking how to run the C preprocessor... arm-linux-gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if arm-linux-gcc supports -fno-rtti -fno-exceptions... no checking for arm-linux-gcc option to produce PIC... -fPIC -DPIC checking if arm-linux-gcc PIC flag -fPIC -DPIC works... yes checking if arm-linux-gcc static flag -static works... yes checking if arm-linux-gcc supports -c -o file.o... yes checking if arm-linux-gcc supports -c -o file.o... (cached) yes checking whether the arm-linux-gcc linker (/home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: Using GStreamer FFMpeg source release as package name configure: Using Unknown package origin as package origin checking for arm-linux-pkg-config... no checking for pkg-config... /usr/bin/pkg-config configure: WARNING: using cross tools not prefixed with host triplet checking pkg-config is at least version 0.9.0... yes checking whether byte ordering is bigendian... no checking for arm-linux-gcc... (cached) arm-linux-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether arm-linux-gcc accepts -g... (cached) yes checking for arm-linux-gcc option to accept ISO C89... (cached) none needed checking dependency style of arm-linux-gcc... (cached) gcc3 checking for arm-linux-gcc... (cached) arm-linux-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether arm-linux-gcc accepts -g... (cached) yes checking for arm-linux-gcc option to accept ISO C89... (cached) none needed checking dependency style of arm-linux-gcc... (cached) gcc3 checking whether arm-linux-gcc and cc understand -c and -o together... yes checking for valgrind... no checking whether to build gtk-doc documentation... no checking for gtkdoc-check... no configure: Looking for Python version >= 2.1 checking for python... /usr/bin/python checking "/usr/bin/python":... okay checking local Python configuration... looks good checking whether to build plugin documentation... no (gtk-doc disabled or not available) checking for cos in -lm... yes checking for ANSI C header files... (cached) yes checking for GST... yes configure: using GStreamer tools in /home/frank/projects/local/bin configure: using GStreamer plug-ins in /home/frank/projects/local/lib/gstreamer-0.10 checking for GST_BASE... yes checking for GST_PLUGINS_BASE... yes configure: using GStreamer Base Plug-ins in /home/frank/projects/local/lib/gstreamer-0.10 checking for GST_CHECK... yes configure: Using GStreamer Core Plugins in /home/frank/projects/local/lib/gstreamer-0.10 configure: Using GStreamer Base Plugins in /home/frank/projects/local/lib/gstreamer-0.10 checking for ORC... no configure: Using /home/frank/projects/local/lib/gstreamer-0.10 as the plugin install location checking to see if compiler understands ... yes checking to see if compiler understands -Wall... yes checking to see if compiler understands -Wdeclaration-after-statement... yes checking to see if compiler understands -Wvla... no checking to see if compiler understands -Wpointer-arith... yes checking to see if compiler understands -Wmissing-declarations... yes checking to see if compiler understands -Wmissing-prototypes... yes checking to see if compiler understands -Wredundant-decls... yes checking to see if compiler understands -Wundef... yes checking to see if compiler understands -Wwrite-strings... yes checking to see if compiler understands -Wformat-nonliteral... yes checking to see if compiler understands -Wformat-security... yes checking to see if compiler understands -Wold-style-definition... yes checking to see if compiler understands -Wcast-align... yes checking to see if compiler understands -Winit-self... yes checking to see if compiler understands -Wmissing-include-dirs... yes checking to see if compiler understands -Waddress... yes checking to see if compiler understands -Waggregate-return... yes checking to see if compiler understands -Wno-multichar... yes checking to see if compiler understands -Wnested-externs... yes configure: set WARNING_CFLAGS to -Wall -Wdeclaration-after-statement -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Wcast-align -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs configure: set ERROR_CFLAGS to checking for BZ2_bzlibVersion in -lbz2... yes checking bzlib.h usability... yes checking bzlib.h presence... yes checking for bzlib.h... yes configure: Using ffmpeg revision 23623 configure: Using included FFMpeg code configure: creating ./config.status config.status: creating Makefile config.status: creating common/Makefile config.status: creating common/m4/Makefile config.status: creating gst-ffmpeg.spec config.status: creating ext/Makefile config.status: creating ext/ffmpeg/Makefile config.status: creating ext/libpostproc/Makefile config.status: creating ext/libswscale/Makefile config.status: creating gst-libs/Makefile config.status: creating gst-libs/ext/Makefile config.status: creating docs/Makefile config.status: creating docs/version.entities config.status: creating tests/Makefile config.status: creating tests/check/Makefile config.status: creating tests/files/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands config.status: executing configure-embedded-ffmpeg commands Configuring included FFmpeg instance with args --prefix=/home/frank/projects/local --disable-ffserver --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-postproc --enable-gpl --enable-static --enable-pic --disable-encoder=flac --disable-decoder=cavs --disable-protocols --disable-devices --disable-network --disable-hwaccels --disable-filters --disable-doc --enable-optimizations --enable-cross-compile --target-os=linux-gnu --arch=arm --cross-prefix=arm-linux- Unknown OS 'linux-gnu'. If you think configure made a mistake, make sure you are using the latest version from SVN. If the latest version fails, report the problem to the ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "config.err" produced by configure as this will help solving the problem. config.status: error: Failed to configure embedded FFmpeg tree
Created attachment 189250 [details] [review] patch
Configure is OK, but the platform check is error. I cross compile it with my PC, i can't set processor type, my processor is ARM926EJ-S(armv5). because cross environment can't run cpu detection, it is only be done with manual setting. --enable-armv5te: can't be known. ARM VFP: can be know. CC=arm-linux-gcc ./configure --build=i686-linux --host=arm-linux --prefix=/home/frank/projects/local --with-ffmpeg-extra-configure="--disable-debug --disable-muxers --disable-encoders --disable-demuxers --disable-parsers --disable-bsfs --disable-filters --disable-decoders --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmapro --enable-decoder=mp3 --enable-parser=mpegaudio --enable-shared" checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for arm-linux-strip... arm-linux-strip checking nano version... 0 (release) checking whether to enable maintainer-specific portions of Makefiles... no checking build system type... i686-pc-linux-gnu checking host system type... arm-unknown-linux-gnu checking how to print strings... printf checking for style of include used by make... GNU checking for arm-linux-gcc... arm-linux-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether arm-linux-gcc accepts -g... yes checking for arm-linux-gcc option to accept ISO C89... none needed checking dependency style of arm-linux-gcc... gcc3 checking for a sed that does not truncate output... /home/frank/projects/lpc313x/eldk42/bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by arm-linux-gcc... /home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld checking if the linker (/home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /home/frank/projects/lpc313x/eldk42/usr/bin/arm-linux-nm -B checking the name lister (/home/frank/projects/lpc313x/eldk42/usr/bin/arm-linux-nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld option to reload object files... -r checking for arm-linux-objdump... objdump checking how to recognize dependent libraries... pass_all checking for arm-linux-ar... arm-linux-ar checking for arm-linux-strip... (cached) arm-linux-strip checking for arm-linux-ranlib... arm-linux-ranlib checking command to parse /home/frank/projects/lpc313x/eldk42/usr/bin/arm-linux-nm -B output from arm-linux-gcc object... ok checking how to run the C preprocessor... arm-linux-gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if arm-linux-gcc supports -fno-rtti -fno-exceptions... no checking for arm-linux-gcc option to produce PIC... -fPIC -DPIC checking if arm-linux-gcc PIC flag -fPIC -DPIC works... yes checking if arm-linux-gcc static flag -static works... yes checking if arm-linux-gcc supports -c -o file.o... yes checking if arm-linux-gcc supports -c -o file.o... (cached) yes checking whether the arm-linux-gcc linker (/home/frank/projects/lpc313x/eldk42/usr/arm-linux-gnueabi/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: Using GStreamer FFMpeg source release as package name configure: Using Unknown package origin as package origin checking for arm-linux-pkg-config... no checking for pkg-config... /usr/bin/pkg-config configure: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org. checking pkg-config is at least version 0.9.0... yes checking whether byte ordering is bigendian... no checking for arm-linux-gcc... (cached) arm-linux-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether arm-linux-gcc accepts -g... (cached) yes checking for arm-linux-gcc option to accept ISO C89... (cached) none needed checking dependency style of arm-linux-gcc... (cached) gcc3 checking for arm-linux-gcc... (cached) arm-linux-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether arm-linux-gcc accepts -g... (cached) yes checking for arm-linux-gcc option to accept ISO C89... (cached) none needed checking dependency style of arm-linux-gcc... (cached) gcc3 checking whether arm-linux-gcc and cc understand -c and -o together... yes checking for valgrind... no checking whether to build gtk-doc documentation... no checking for gtkdoc-check... no configure: Looking for Python version >= 2.1 checking for python... /usr/bin/python checking "/usr/bin/python":... okay checking local Python configuration... looks good checking whether to build plugin documentation... no (gtk-doc disabled or not available) checking for cos in -lm... yes checking for ANSI C header files... (cached) yes checking for GST... yes configure: using GStreamer tools in /home/frank/projects/local/bin configure: using GStreamer plug-ins in /home/frank/projects/local/lib/gstreamer-0.10 checking for GST_BASE... yes checking for GST_PLUGINS_BASE... yes configure: using GStreamer Base Plug-ins in /home/frank/projects/local/lib/gstreamer-0.10 checking for GST_CHECK... yes configure: Using GStreamer Core Plugins in /home/frank/projects/local/lib/gstreamer-0.10 configure: Using GStreamer Base Plugins in /home/frank/projects/local/lib/gstreamer-0.10 checking for ORC... no configure: Using /home/frank/projects/local/lib/gstreamer-0.10 as the plugin install location checking to see if compiler understands ... yes checking to see if compiler understands -Wall... yes checking to see if compiler understands -Wdeclaration-after-statement... yes checking to see if compiler understands -Wvla... no checking to see if compiler understands -Wpointer-arith... yes checking to see if compiler understands -Wmissing-declarations... yes checking to see if compiler understands -Wmissing-prototypes... yes checking to see if compiler understands -Wredundant-decls... yes checking to see if compiler understands -Wundef... yes checking to see if compiler understands -Wwrite-strings... yes checking to see if compiler understands -Wformat-nonliteral... yes checking to see if compiler understands -Wformat-security... yes checking to see if compiler understands -Wold-style-definition... yes checking to see if compiler understands -Wcast-align... yes checking to see if compiler understands -Winit-self... yes checking to see if compiler understands -Wmissing-include-dirs... yes checking to see if compiler understands -Waddress... yes checking to see if compiler understands -Waggregate-return... yes checking to see if compiler understands -Wno-multichar... yes checking to see if compiler understands -Wnested-externs... yes configure: set WARNING_CFLAGS to -Wall -Wdeclaration-after-statement -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Wcast-align -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs configure: set ERROR_CFLAGS to checking host system type... (cached) arm-unknown-linux-gnu checking for BZ2_bzlibVersion in -lbz2... yes checking bzlib.h usability... yes checking bzlib.h presence... yes checking for bzlib.h... yes configure: Using ffmpeg revision 23623 configure: Using included FFMpeg code configure: creating ./config.status config.status: creating Makefile config.status: creating common/Makefile config.status: creating common/m4/Makefile config.status: creating gst-ffmpeg.spec config.status: creating ext/Makefile config.status: creating ext/ffmpeg/Makefile config.status: creating ext/libpostproc/Makefile config.status: creating ext/libswscale/Makefile config.status: creating gst-libs/Makefile config.status: creating gst-libs/ext/Makefile config.status: creating docs/Makefile config.status: creating docs/version.entities config.status: creating tests/Makefile config.status: creating tests/check/Makefile config.status: creating tests/files/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands config.status: executing configure-embedded-ffmpeg commands Configuring included FFmpeg instance with args --prefix=/home/frank/projects/local --disable-ffserver --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-postproc --enable-gpl --enable-static --enable-pic --disable-encoder=flac --disable-decoder=cavs --disable-protocols --disable-devices --disable-network --disable-hwaccels --disable-filters --disable-doc --enable-optimizations --enable-cross-compile --target-os=linux --arch=arm --cross-prefix=arm-linux- --disable-debug --disable-muxers --disable-encoders --disable-demuxers --disable-parsers --disable-bsfs --disable-filters --disable-decoders --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=wmapro --enable-decoder=mp3 --enable-parser=mpegaudio --enable-shared install prefix /home/frank/projects/local source path /home/frank/projects/calypso/gst-ffmpeg-0.10.11/gst-libs/ext/ffmpeg C compiler arm-linux-gcc .align is power-of-two yes ARCH arm (generic) big-endian no runtime cpu detection no ARMv5TE enabled no ARMv6 enabled no ARMv6T2 enabled no ARM VFP enabled yes IWMMXT enabled no NEON enabled no gprof enabled no debug symbols no strip symbols yes optimizations yes static yes shared yes postprocessing support yes new filter support no filters using lavformat no network support no threading support no SDL support no Sun medialib support no AVISynth enabled no libdc1394 support no libdirac enabled no libfaac enabled no libfaad enabled no libfaad dlopened no libgsm enabled no libmp3lame enabled no libnut enabled no libopencore-amrnb support no libopencore-amrwb support no libopenjpeg enabled no librtmp enabled no libschroedinger enabled no libspeex enabled no libtheora enabled no libvorbis enabled no libvpx enabled no libx264 enabled no libxvid enabled no zlib enabled no bzlib enabled no Enabled decoders: mp3 wmav1 wmav2 wmapro Enabled encoders: Enabled hwaccels: Enabled parsers: mpegaudio Enabled demuxers: Enabled muxers: Enabled protocols: Enabled filters: Enabled bsfs: Enabled indevs: Enabled outdevs: License: GPL version 2 or later Creating config.mak and config.h... configure: *** Orc acceleration disabled. Requires Orc >= 0.4.5, which was not found. Slower code paths will be used.
Please don't close bugs if there are still patches that haven't been committed to git yet (and aren't obsolete/rejected/whatnot).
Edward, please review and make sure this gets into the release.
The cross compile can not play WMA.
commit e799091c8a3a08ac1182222e904675e884b5e62e Author: David Schleef <ds@schleef.org> Date: Sat Jun 4 19:10:15 2011 -0700 configure: Remove -gnu from target_os Fixes #651768.
Frank, your issue has to do with the ffmpeg configure script. You might want to pass it some extra flags (libav/ffmpeg doesn't use env variables) by specifying them in --with-ffmpeg-extra-configure=