after emerging crossdev, i run crossdev -t x86 to build a cross compiler for building x86 libs on amd64. Reproducible: Always Steps to Reproduce: 1.crossdev - t x86 * Host Portage ARCH: amd64 * Target Portage ARCH: x86 * Target System: i686-pc-linux-gnu * Stage: 4 (C/C++ compiler) * binutils: binutils-[latest] * gcc: gcc-[latest] * headers: linux-headers-[latest] * libc: glibc-[latest] * PORTDIR_OVERLAY: /usr/local/portage * PORT_LOGDIR: /var/log/portage * PKGDIR: /usr/portage/packages/cross/i686-pc-linux-gnu * PORTAGE_TMPDIR: /var/tmp/cross/i686-pc-linux-gnu Actual Results: /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:52:18: error: fenv.h: No such file or directory /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c: In function '__dfp_test_except': /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:64: error: 'FE_INEXACT' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:64: error: (Each undeclared identifier is reported only once /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:64: error: for each function it appears in.) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:66: error: 'FE_UNDERFLOW' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:68: error: 'FE_OVERFLOW' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:70: error: 'FE_DIVBYZERO' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:72: error: 'FE_INVALID' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c: In function '__dfp_raise_except': /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:81: error: 'FE_INEXACT' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:83: error: 'FE_UNDERFLOW' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:85: error: 'FE_OVERFLOW' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:87: error: 'FE_DIVBYZERO' undeclared (first use in this function) /var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/gcc-4.3.1/libgcc/config/libbid/bid_decimal_globals.c:89: error: 'FE_INVALID' undeclared (first use in this function) make[2]: *** [bid_decimal_globals.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/build/i686-pc-linux-gnu/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/work/build' make: *** [all] Error 2 * * ERROR: cross-i686-pc-linux-gnu/gcc-4.3.1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 4621: Called toolchain_src_compile * environment, line 5090: Called gcc_src_compile * environment, line 2955: Called gcc_do_make * environment, line 2785: 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/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/cross/i686-pc-linux-gnu/portage/cross-i686-pc-linux-gnu/gcc-4.3.1/temp/environment'. * This ebuild is from an overlay: '/usr/local/portage/' * Expected Results: build a cross compiler for x86 and all relevant libs in /usr/i686-pc-linux-gnu. Portage 2.1.4.4 (default-linux/amd64/2007.0, gcc-4.2.3, glibc-2.6.1-r0, 2.6.26-rc3 x86_64) ================================================================= System uname: 2.6.26-rc3 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ Timestamp of tree: Tue, 10 Jun 2008 11:01:01 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r13 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=k8 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://mirror.usu.edu/mirrors/gentoo/ " LANG="C" LINGUAS="en_US" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X a52 aac accessibility ace acl acpi alsa amd64 apache2 berkdb binary-drivers bittorrent bluetooth branding bzip2 cairo cdda cddb cdparanoia cdr cdrom cli cracklib crypt cups dbus dhcp divx dri dv dvd dvdr dvdread dvi eds encode epiphany esd evo fbsplash ffmpeg firefox flac foomaticdb fortran ftp gdbm gdm gedit gimp gimpprint gkrellm glitz gmedia gnome gnome-print gpm gs gstreamer gtk gtkhtml hal iconv id3tag ieee1394 ipod ipv6 isdnlog java javascript jpeg jpeg2k lame libsexy live lm_sensors mad midi mmx mmxext motif moznoirc moznomail mp3 mp4 mpeg mpeg2 mplayer mudflap multislot multitarget mysql nautilus ncurses networkmanager new-interface nfs nls nptl nptlonly nsplugin nvidia ogg opengl openmp pam pango pcre pdf perl php png pppd python quicktime readline realmedia reflection rhythmbox samba sdl session shaper sound sox spell spl sse sse2 ssl ssse3 swat tagwriting tcpd theora tiff tivo truetype unicode usb vorbis wmp x264 xine xorg xscreensaver xv xvid yv12 zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse joystick evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US" USERLAND="GNU" VIDEO_CARDS="nv nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
you should be able to have it work by running crossdev with --with-headers
(In reply to comment #1) > you should be able to have it work by running crossdev with --with-headers > I had the same bug on AMD64 host and I can confirm that running crossdev with --with-headers fixes it for target i586, but not for target powerpc, where compiler at gcc stage1 still complains about missing stdlib.h and so on. For bigger confusion, "crossdev --help" does not provide info about --with-headers switch, and "man crossdev" complains about missing man pages.
Same problem building for a i686-pc-linux-gnu target. --with-headers doesn't fix it, now cross-glibc-headers fails to compile: (...) checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. (...) I've backed up the config.log and can attach it if required, but it doesn't hold much information..
if your glibc headers is failing with "cannot compute suffix of object files", then you're hitting a bug in portage. nothing i can do about that.
*** Bug 228969 has been marked as a duplicate of this bug. ***
It may be that I left the gcc version at "latest" which on my system is 4.2.3. Crazy how it tried to build 4.3.1 for the crossdev toolchanin. When I specified the version of 4.2.3 it built fine. I might wager that if I had native gcc 4.3.1 as my compiler that it might build 4.3.1 as the crossdev tool just fine. If I get some time I will install gcc 4.3.1 and test that theory.
i'm not going to research getting gcc-4.3 built w/out headers crossdev runs with --with-headers by default now
I can confirm that --with-headers builds fine now, so the portage bug should be gone. Just to let you know ;)