Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 227065 - gcc-4.3.1 fails to cross-compile for x86 target on amd64 host (fenv.h missing)
Summary: gcc-4.3.1 fails to cross-compile for x86 target on amd64 host (fenv.h missing)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: AMD64 Linux
: High major (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-14 23:34 UTC by biohazrd
Modified: 2008-09-03 01:35 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description biohazrd 2008-06-14 23:34:40 UTC
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
Comment 1 SpanKY gentoo-dev 2008-06-21 07:28:43 UTC
you should be able to have it work by running crossdev with --with-headers
Comment 2 Karel Řeřicha 2008-06-22 12:29:32 UTC
(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.
Comment 3 Renato Caldas 2008-06-22 14:01:40 UTC
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..
Comment 4 SpanKY gentoo-dev 2008-06-22 15:00:57 UTC
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.
Comment 5 SpanKY gentoo-dev 2008-06-23 00:38:28 UTC
*** Bug 228969 has been marked as a duplicate of this bug. ***
Comment 6 biohazrd 2008-06-23 00:52:02 UTC
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.
Comment 7 SpanKY gentoo-dev 2008-06-23 01:45:15 UTC
i'm not going to research getting gcc-4.3 built w/out headers

crossdev runs with --with-headers by default now
Comment 8 Renato Caldas 2008-06-29 11:53:37 UTC
I can confirm that --with-headers builds fine now, so the portage bug should be gone. Just to let you know ;)