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"
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.
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.
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.