Command: crossdev -s4 -t armeb-elf --g 4.1.2 --without-headers -------------------------------------------------------------------------------- * Host Portage ARCH: amd64 * Target Portage ARCH: arm * Target System: armeb-elf * Stage: 4 (C/C++ compiler) * binutils: binutils-[latest] * gcc: gcc-4.1.2 * libc: newlib-[latest] * PORTDIR_OVERLAY: /usr/local/portage * PORT_LOGDIR: /var/log/portage * PKGDIR: /usr/portage/packages/cross/armeb-elf * PORTAGE_TMPDIR: /var/tmp/cross/armeb-elf _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - ~ - _ - * Forcing the latest versions of {binutils,gcc}-config/gnuconfig ... [ ok ] * Log: /var/log/portage/cross-armeb-elf-binutils.log * Emerging cross-binutils ... [ ok ] * Log: /var/log/portage/cross-armeb-elf-gcc-stage1.log * Emerging cross-gcc-stage1 ... [ ok ] * Log: /var/log/portage/cross-armeb-elf-newlib.log * Emerging cross-newlib ... [ ok ] * Log: /var/log/portage/cross-armeb-elf-gcc-stage2.log * Emerging cross-gcc-stage2 ... * gcc failed :( * If you file a bug, please attach the following logfiles: * /var/log/portage/cross-armeb-elf-info.log * /var/log/portage/cross-armeb-elf-gcc-stage2.log Warning and error output: ... configure: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: stdlib.h: proceeding with the compiler's result ... configure: WARNING: stdio.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: stdio.h: proceeding with the compiler's result ... configure: WARNING: string.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: string.h: proceeding with the compiler's result ... configure: WARNING: stddef.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: stddef.h: proceeding with the compiler's result ... configure: WARNING: math.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: math.h: proceeding with the compiler's result ... configure: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: unistd.h: proceeding with the compiler's result ... configure: WARNING: signal.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: signal.h: proceeding with the compiler's result ... configure: WARNING: time.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: time.h: proceeding with the compiler's result ... configure: WARNING: sys/time.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/time.h: proceeding with the compiler's result ... configure: WARNING: sys/times.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/times.h: proceeding with the compiler's result ... configure: WARNING: sys/resource.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/resource.h: proceeding with the compiler's result ... configure: WARNING: sys/types.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/types.h: proceeding with the compiler's result ... configure: WARNING: sys/stat.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: sys/stat.h: proceeding with the compiler's result ... configure: WARNING: ieeefp.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: ieeefp.h: proceeding with the compiler's result ... configure: WARNING: float.h: accepted by the compiler, rejected by the preprocessor! configure: WARNING: float.h: proceeding with the compiler's result ... checking for getrusage... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES. no ... checking complex.h usability... make[1]: *** [configure-target-libgfortran] Error 1 make[1]: *** Waiting for unfinished jobs.... yes ... checking for extra compiler flags for building... checking for thread model used by GCC... checking for stdint.h... single configure: WARNING: No native atomic operations are provided for this platform. configure: WARNING: They cannot be faked when thread support is disabled. configure: WARNING: Thread-safety of certain classes is not guaranteed. ... make[2]: Leaving directory `/var/tmp/cross/armeb-elf/portage/cross-armeb-elf/gcc-4.1.2/work/build/armeb-elf/libstdc++-v3/include' make[1]: Leaving directory `/var/tmp/cross/armeb-elf/portage/cross-armeb-elf/gcc-4.1.2/work/build' make: *** [all] Error 2 * * ERROR: cross-armeb-elf/gcc-4.1.2 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 4675: Called toolchain_src_compile * environment, line 5193: Called gcc_src_compile * environment, line 3007: Called gcc_do_make * environment, line 2830: Called die * The specific snippet of code: * emake LDFLAGS="${LDFLAGS}" STAGE1_CFLAGS="${STAGE1_CFLAGS}" LIBPATH="${LIBPATH}" BOOT_CFLAGS="${BOOT_CFLAGS}" ${GCC_MAKE_TARGET} || die "emake failed with ${GCC_MAKE_TARGET}"; * The die message: * emake failed with all * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/cross/armeb-elf/portage/cross-armeb-elf/gcc-4.1.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/cross/armeb-elf/portage/cross-armeb-elf/gcc-4.1.2/temp/environment'. * This ebuild is from an overlay: '/usr/local/portage/' * >>> Failed to emerge cross-armeb-elf/gcc-4.1.2, Log file: >>> '/var/tmp/cross/armeb-elf/portage/cross-armeb-elf/gcc-4.1.2/temp/build.log' Steps to reproduce: crossdev -s4 -t armeb-elf --g 4.1.2 --without-headers Reproducible: Always As a side note: I can build arm-elf and various other toolchains with no errors on the same system, it only fails with armeb-elf.
Created attachment 173211 [details] /var/log/portage/cross-armeb-elf-info.log
Created attachment 173213 [details] /var/log/portage/cross-armeb-elf-gcc-stage2.log
Same problem confirmed on an Intel Atom system (i686) Logs available upon request.
configure fails for gfortran tests. i dont think gfortran is going to work for elf targets.
How is this issue avoided when building arm-elf toolchain?
Since this clearly isn't a problem when building arm-elf toolchain, what is the motivation for WONTFIX?
we dont protect users from themselves. if you tell crossdev to build gfortran, it's going to try. so dont do it.
(In reply to comment #7) > we dont protect users from themselves. if you tell crossdev to build gfortran, > it's going to try. so dont do it. How can I not tell crossdev to build gfortran?
crossdev isnt magic. it merely runs emerge. so if you dont want gfortran in gcc, then do it like any other package. features are controlled by USE flags.
Apparently crossdev keeps deleting my cross-armeb-elf/gcc -fortran USE flag from /etc/portage/package.use (it replaces them each time crossdev is run) The solution was to put -fortran in make.conf