Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 47628 - crossdev: InstallGccBootstrap() fails when generating i686 toolchain
Summary: crossdev: InstallGccBootstrap() fails when generating i686 toolchain
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Joshua Kinard
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-12 13:33 UTC by Ákos Maróy
Modified: 2004-04-13 00:35 UTC (History)
0 users

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 Ákos Maróy 2004-04-12 13:33:21 UTC
when trying to create an i686 toolchain with crossdev on an AthlonXP machine, using the following command:

crossdev --arch=i686 --vbinutils=2.14.90.0.7-r4 --vgcc=3.3.2-r5 --vglibc=2.3.2-r9

step 2 fails:
 * >>> ---------------------------------------------------------------------------
 * >>> Stage 2: Configure, Build, & Install gcc-bootstrap
 * >>> ---------------------------------------------------------------------------
 
 * Configuring sys-devel/gcc-3.3.2-r5 (bootstrap)...
*** This configuration is not supported in the following subdirectories:
     target-libstdc++-v3 target-libf2c target-libffi target-boehm-gc target-zlib target-libjava zlib fastjar target-libobjc
    (Any other directories should still work fine.)
*** --with-headers is only supported when cross compiling
 
 * InstallGccBootstrap(): Failed to configure!



Reproducible: Always
Steps to Reproduce:
1. run crossdev --arch=i686 --vbinutils=2.14.90.0.7-r4 --vgcc=3.3.2-r5 --vglibc=2.3.2-r9
2. see InstallGccBootstrap() fail
3.

Actual Results:  
step 2 fails

Expected Results:  
crossdev should create the cross-compilation toolchain

it's not quite clear why I had to specify exact version for binutils, gcc and
glibc, as these are the same as installed on my system. anyway, this shouldn't fail.

this might also be useful:

# emerge info
Portage 2.0.50-r1 (default-x86-2004.0, gcc-3.3.2, glibc-2.3.2-r9, 2.6.3-gentoo-r2)
=================================================================
System uname: 2.6.3-gentoo-r2 i686 AMD Athlon(tm) XP 1800+
Gentoo Base System version 1.4.3.13
distcc 2.12.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.58-r1
Automake: sys-devel/automake-1.7.7
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=athlon-xp -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/
http://212.219.247.20/sites/www.ibiblio.org/gentoo/
http://sunsite.cnlab-switch.ch/ftp/mirror/gentoo/
http://212.219.247.15/sites/www.ibiblio.org/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X aalib acpi alsa avi berkdb canna cdr cjk crypt cscope cups curl dvd
dvdr encode esd foomaticdb freewnn gdbm gif gnome gpm gtk gtk2 imlib irda java
jpeg junit libg++ libwww lirc mad mikmod motif mozilla mpeg ncurses nls nvidia
oggvorbis opengl oss pam pdflib perl png postgres python quicktime readline sdl
slang spell ssl svga tcltk tcpd tiff truetype unicode usb x86 xml2 xmms xv zlib"
Comment 1 Joshua Kinard gentoo-dev 2004-04-12 18:12:54 UTC
Exactly why are you trying to build an i686 cross-toolchain on an i686 system?  The idea behind a cross-toolchain is to build a toolchain that runs on a specific host arch, but builds code for a different target arch.  What you're trying to do is invalid and won't work by default because an athlonxp system classifies as "i686", so the host and target archs are the same.  If you want to rebuild the system compiler on your machine, you need to do so using portage itself.  Crossdev is the wrong tool.  Resolving as INVALID.
Comment 2 Ákos Maróy 2004-04-12 23:45:36 UTC
I was trying to build an i686 cross compiler to test crossdev, as I thought this would be the simplest setup: build a similar compiler as the host system. I was considering to build an i486 cross compiler at first for this test.

My true aim is to create an arm cross-compiler. I see that arm support has been removed, so I'd need to re add it. I just wanted to see how crossdev works, so I made this dry run.
Comment 3 Joshua Kinard gentoo-dev 2004-04-13 00:35:42 UTC
arm support was never in crossdev in the first place, I lacked the right information to add it (typically CHOST, and CFLAGS).  Part of the problem of arm is the multiple variations of it.  While I would prefer a generic "arm" target for passing to --arch, it is possible that several different arm targets will be needed.  Hard to say really.  

To actually test crossdev, try building an i586 compiler, or evens omething like a sparc or mips compiler.  You can then use 'file' to see if the output file is indeed in the right format, although actually running it is a whole new problem if you lack access to those platforms.