In order to simplify using distcc with a mixed x86/amd64 network, I have an i686 crosscompiler on my amd64 box. When I try to emerge sys-apps/sandbox-1.2.18.1 on my amd64 box it attempts to use this crosscompiler to build sandbox. $ emerge info Portage 2.1_rc1-r2 (default-linux/amd64/2005.1, gcc-3.4.6, glibc-2.4-r3, 2.6.16-gentoo-r7 x86_64) ================================================================= System uname: 2.6.16-gentoo-r7 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System version 1.12.0_pre19 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [enabled] dev-lang/python: 2.3.5, 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r1 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r2 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r3 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -pipe -O2" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/NX/etc /usr/NX/home /usr/kde/2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/share/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/eselect/compiler /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon64 -pipe -O2" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distcc distlocks metadata-transfer parallel-fetch sandbox sfperms strict userpriv usersandbox" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://mirror.espri.arizona.edu/gentoo/ http://cudlug.cudenver.edu/gentoo/ http://gentoo.cites.uiuc.edu/pub/gentoo/" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --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="amd64 X a52 aac alsa apache2 avahi avi berkdb bitmap-fonts bzip2 cddb cdr cli crypt cups curl dbus divx4linux dts dv dvd dvdr dvdread eds emboss encode exif expat fame ffmpeg fftw flac foomaticdb fortran gd gdbm gif gpm gstreamer gtk gtk2 hal ieee1394 imagemagick imlib isdnlog java jpeg kde kdeenablefinal lcms logrotate lzw lzw-tiff mad mng mozilla mp3 mpeg mpeg4 mysql ncurses nls nptl nptlonly ogg oggvorbis pam pcre pdflib perl php png pppd python qt quicktime readline reflection samba sdl server session spell spl sql sqlite ssl subtitles tcpd theora tidy tiff transcode truetype truetype-fonts type1-fonts usb v4l vorbis x264 xine xml xml2 xorg xpm xv xvid zeroconf zlib elibc_glibc input_devices_keyboard input_devices_mouse kernel_linux userland_GNU video_cards_savage" Unset: ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 87095 [details] 7653-sandbox-1.2.18.1.log emerge log of sandbox-1.2.18.1 through the end of the configure script.
You will see this is with ABI=x86 (It gets build twice with multilib ...). So except if its doing this the second stage around with ABI=amd64 as well, then reopen it, and add an proper (ie, full) log of the build.
Hmm I have the same problem here on amd64, except that I dont have i686 cross compiler, so it hangs up saying : "gcc cannot create executables", using FEATURES="-sandbox" doesnt help. Perhaps I have broken something : I was using gcc-config beta with eselect compiler and I could choose a i686 compiler. Now I downgraded to the old gcc-config and I cannot choose i686 targets anymore. Note that I never installed any cross compilation toolchain. For now, I'm building a i686 cross compilation toolchain to see if it helps.
You just need the default gcc for x86_64 .. if you do have the cross, it will (should) only be used for the x86 build and not the amd64 one (and if you don't, and multilib is enabled, it should of course not be an issue, as the multilib x86_64 gcc can build for x86 targets ...). Make sure you have the x86_64 gcc selected, and paste logs if an issue. Anyhow, I cannot see why 1.2.17 have worked, and this one don't.
Well, I upgraded to the -* keyworded binutils (sys-devel/binutils-2.16.92 USE="nls -multislot -test -vanilla" ) and now it works. I've also built a toolchain for i686, but I uninstalled the cross compiler gcc (but not the entire toolchain) before emerging sandbox. So I'm pretty sure the problem was related to binutils; however if I'm the only one to have this bug that must be a problem with my toolchain that upgrading binutils has fixed. If you want, I can try to downgrade binutils to see if I have this bug again.
If you have the time to test, it might help in future, and would be appreciated.
I've uninstalled i686 cross compiler and downgraded to binutils 2.16.1-r2 and now it compiles without any problem. That must have been a problem with my toolchain. That is not suprising since I've gone through a big update (4 months without any) with a lot of ricer flags.
I got the same error, and also have a i686 crosscompiler installed. This is what gcc-config -l says: [1] i686-pc-linux-gnu-3.4.6 * (cyan star) [2] i686-pc-linux-gnu-3.4.6-hardened [3] i686-pc-linux-gnu-3.4.6-hardenednopie [4] i686-pc-linux-gnu-3.4.6-hardenednopiessp [5] i686-pc-linux-gnu-3.4.6-hardenednossp [6] x86_64-pc-linux-gnu-3.4.6 * (green star) [7] x86_64-pc-linux-gnu-3.4.6-hardened [8] x86_64-pc-linux-gnu-3.4.6-hardenednopie [9] x86_64-pc-linux-gnu-3.4.6-hardenednopiessp [10] x86_64-pc-linux-gnu-3.4.6-hardenednossp Attaching config.log in next post
Created attachment 87438 [details] config.log from unsuccessful try to emerge sandbox-1.2.18.1
Meh... wasn't the same exact same error, but sandbox still fails because of the crosscompiler
I'm so sorry for the noise. Seems the issue with sandbox failing for me is because the i686 ld won't recognize /lib/libc.so.6 as compatible for some reason. Will rebuild my crosscompiler toolchain and see if the problem persists.
(In reply to comment #11) > I'm so sorry for the noise. Seems the issue with sandbox failing for me is > because the i686 ld won't recognize /lib/libc.so.6 as compatible for some > reason. > Will rebuild my crosscompiler toolchain and see if the problem persists. > On multilib it should use /lib32/libc.so.6 for 32bit lib ... Mike, any ideas as or resident x-compile expert, or should I scream at Jeremy ?
Created attachment 87481 [details] config.log for sandbox after rebuilding crosscompiler toolchain I rebuilt my i686 crosscompiler toolchain, but emerging sandbox still fails. Last lines from the configure run are: checking for dlopen in -ldl... no checking for dlopen in -lc... no configure: error: Unable to determine library providing dlopen
Well, since I don't do the multilib or cross-compile thing, can anybody from amd64 give some suggestions ?
*** Bug 135149 has been marked as a duplicate of this bug. ***
Ok, I reinstalled my system using gcc-4.1 instead and now the compilation seems to go through even though it uses my i686 cross-toolchain when building it for the x86 ABI. Not really sure why it failed before though as I recompiled my entire cross-toolchain before filing my last comment =\
looks like a different symptom of bug 133209 *** This bug has been marked as a duplicate of 133209 ***