libs/libgstreamer_0.10_la-gstmarshal.o parse/.libs/libgstparse.a | | /bin/sed 's/.* //' | sort | uniq > .libs/libgstreamer-0.10.exp ../libtool: eval: line 4336: syntax error near unexpected token `|' ../libtool: eval: line 4336: `/usr/bin/nm -B .libs/libgstreamer_0.10_la-gst.o .libs/libgstreamer_0.10_la-gstobject.o .libs/libgstreamer_0.10_la-gstbin.o .libs/libgstreamer_0.10_la-gstbuffer.o .libs/libgstreamer_0.10_la-gstbus.o .libs/libgstreamer_0.10_la-gstcaps.o .libs/libgstreamer_0.10_la-gstchildproxy.o .libs/libgstreamer_0.10_la-gstclock.o .libs/libgstreamer_0.10_la-gstelement.o .libs/libgstreamer_0.10_la-gstelementfactory.o .libs/libgstreamer_0.10_la-gsterror.o .libs/libgstreamer_0.10_la-gstevent.o .libs/libgstreamer_0.10_la-gstfilter.o .libs/libgstreamer_0.10_la-gstformat.o .libs/libgstreamer_0.10_la-gstghostpad.o .libs/libgstreamer_0.10_la-gstindex.o .libs/libgstreamer_0.10_la-gstindexfactory.o .libs/libgstreamer_0.10_la-gstinfo.o .libs/libgstreamer_0.10_la-gstinterface.o .libs/libgstreamer_0.10_la-gstiterator.o .libs/libgstreamer_0.10_la-gstmessage.o .libs/libgstreamer_0.10_la-gstminiobject.o .libs/libgstreamer_0.10_la-gstpad.o .libs/libgstreamer_0.10_la-gstpadtemplate.o .libs/libgstreamer_0.10_la-gstparamspecs.o .libs/libgstreamer_0.10_la-gstpipeline.o .libs/libgstreamer_0.10_la-gstplugin.o .libs/libgstreamer_0.10_la-gstpluginfeature.o .libs/libgstreamer_0.10_la-gstquark.o .libs/libgstreamer_0.10_la-gstquery.o .libs/libgstreamer_0.10_la-gstregistry.o .libs/libgstreamer_0.10_la-gstsegment.o .libs/libgstreamer_0.10_la-gststructure.o .libs/libgstreamer_0.10_la-gstsystemclock.o .libs/libgstreamer_0.10_la-gsttaglist.o .libs/libgstreamer_0.10_la-gsttagsetter.o .libs/libgstreamer_0.10_la-gsttask.o .libs/libgstreamer_0.10_la-gsttrace.o .libs/libgstreamer_0.10_la-gsttypefind.o .libs/libgstreamer_0.10_la-gsttypefindfactory.o .libs/libgstreamer_0.10_la-gsturi.o .libs/libgstreamer_0.10_la-gstutils.o .libs/libgstreamer_0.10_la-gstvalue.o .libs/libgstreamer_0.10_la-gstparse.o .libs/libgstreamer_0.10_la-gstregistryxml.o .libs/libgstreamer_0.10_la-gstxml.o .libs/libgstreamer_0.10_la-gstenumtypes.o .libs/libgstreamer_0.10_la-gstmarshal.o parse/.libs/libgstparse.a | | /bin/sed 's/.* //' | sort | uniq > .libs/libgstreamer-0.10.exp' make[4]: *** [libgstreamer-0.10.la] Error 1 make[4]: Leaving directory `/var/tmp/portage/media-libs/gstreamer-0.10.14/work/gstreamer-0.10.14/gst' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/media-libs/gstreamer-0.10.14/work/gstreamer-0.10.14/gst' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/portage/media-libs/gstreamer-0.10.14/work/gstreamer-0.10.14/gst' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/media-libs/gstreamer-0.10.14/work/gstreamer-0.10.14' make: *** [all] Error 2 * * ERROR: media-libs/gstreamer-0.10.14 failed. * Call stack: * ebuild.sh, line 1695: Called dyn_compile * ebuild.sh, line 1033: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * gstreamer-0.10.14.ebuild, line 42: Called die * The specific snippet of code: * emake -j1 || die "compile failed" * The die message: * compile failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-libs/gstreamer-0.10.14/temp/build.log'. * --------------------------------- With FEATURES=-distcc MAKEOPTS=-j5 gstreamer compiles fine. Reproducible: Always Host: Portage 2.1.3.14 (default-linux/amd64/2007.0, gcc-4.2.2, glibc-2.6.1-r0, 2.6.23-kamikaze2 x86_64) ================================================================= System uname: 2.6.23-kamikaze2 x86_64 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz Timestamp of tree: Wed, 17 Oct 2007 18:00:01 +0000 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p17-r1 dev-lang/python: 2.4.3-r4, 2.5.1-r2 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.20_alpha2 sys-devel/autoconf: 2.61-r1 sys-devel/automake: 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=nocona -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distcc distlocks metadata-transfer sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://192.168.0.1/ ftp://ftp-tsk-01.gentoo.tonet.ru ftp://ftp-tsk-02.gentoo.tonet.ru ftp://ftp-tsk-03.gentoo.tonet.ru ftp://ftp-tsk-04.gentoo.tonet.ru ftp://ftp-tsk-05.gentoo.tonet.ru ftp://ftp-svr-01.gentoo.tonet.ru #ftp://ftp-svr-02.gentoo.tonet.ru ftp://ftp-svr-03.gentoo.tonet.ru ftp://ftp-svr-04.gentoo.tonet.ru #ftp://ftp-svr-05.gentoo.tonet.ru ftp://ftp-svr-06.gentoo.tonet.ru ftp://darkside.tomsk.ru ftp://zaz.it.tusur.ru #ftp://hostel.tusur.ru" LDFLAGS="-Wl,-O1" LINGUAS="en en_US ru" MAKEOPTS="-j7" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://ftp-tsk-02.gentoo.tonet.ru/gentoo-portage" USE="X acl alsa amd64 bash-completion bitmap-fonts cli cracklib crypt cups dbus dri flac fortran gdbm gif gpm iconv isdnlog jpeg mad mmx mp3 mudflap ncurses nls nptl nptlonly openmp pam pcre perl png pppd python readline reflection session spl sse sse2 ssl ssse3 svg tcpd threads truetype truetype-fonts type1-fonts unicode xorg zlib" ALSA_CARDS="snd-intel-hda" 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US ru" USERLAND="GNU" VIDEO_CARDS="vesa i810" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ----------------- 2nd distcc machine: Portage 2.1.3.14 (default-linux/amd64/2007.0, gcc-4.2.2, glibc-2.6.1-r0, 2.6.23-kamikaze2 x86_64) ================================================================= System uname: 2.6.23-kamikaze2 x86_64 AMD Athlon(tm) 64 Processor 3000+ Timestamp of tree: Tue, 16 Oct 2007 18:00:01 +0000 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.2-r1 dev-lang/python: 2.4.4-r5, 2.5.1-r2 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /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 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distcc distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://ftp-tsk-01.gentoo.tonet.ru ftp://ftp-tsk-02.gentoo.tonet.ru #ftp://ftp-tsk-03.gentoo.tonet.ru ftp://ftp-tsk-04.gentoo.tonet.ru ftp://ftp-tsk-05.gentoo.tonet.ru ftp://ftp-svr-01.gentoo.tonet.ru #ftp://ftp-svr-02.gentoo.tonet.ru ftp://ftp-svr-03.gentoo.tonet.ru ftp://ftp-svr-04.gentoo.tonet.ru #ftp://ftp-svr-05.gentoo.tonet.ru ftp://ftp-svr-06.gentoo.tonet.ru ftp://darkside.tomsk.ru ftp://zaz.it.tusur.ru #ftp://hostel.tusur.ru" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="en en_US ru" MAKEOPTS="-j7" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://ftp-tsk-02.gentoo.tonet.ru/gentoo-portage" USE="X acl alsa amd64 bash-completion bitmap-fonts cli cracklib crypt cups dbus dri fortran gdbm gif gpm iconv isdnlog jpeg mmx mudflap ncurses nls nptl nptlonly openmp pam pcre perl png pppd python readline reflection session spl sse sse2 ssl svg tcpd threads truetype truetype-fonts type1-fonts unicode xorg zlib" ALSA_CARDS="ca0106 intel8x0" 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US ru" USERLAND="GNU" VIDEO_CARDS="nvidia nv" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Completely the same (/libtool: eval: line 4336: syntax error near unexpected token `|') problem with libgtop and net-misc/neon.
The same with gst-plugins-*, libidn and others.
Post the output of `grep global_symbol_pipe /usr/bin/libtool` please.
*** Bug 196301 has been marked as a duplicate of this bug. ***
*** Bug 196364 has been marked as a duplicate of this bug. ***
can't reproduce on a -j6 setup and distcc only emerge --info Portage 2.1.3.14 (default-linux/x86/2007.0/desktop, gcc-4.2.2, glibc-2.6.1-r0, 2.6.23-gentoo i686) ================================================================= System uname: 2.6.23-gentoo i686 Pentium III (Katmai) Timestamp of tree: Thu, 18 Oct 2007 09:20:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [disabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.2-r1 dev-lang/python: 2.4.4-r5, 2.5.1-r2 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 2.0.0_rc5 sys-apps/sandbox: 1.2.18.1-r1 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium3 -mfpmath=sse -g -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=pentium3 -mfpmath=sse -g -pipe" DISTDIR="/var/tmp/distfiles" FEATURES="distcc distlocks metadata-transfer sandbox sfperms sign splitdebug strict unmerge-orphans userfetch usersandbox" GENTOO_MIRRORS="http://85.25.128.62 http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://pandemonium.tiscali.de/pub/gentoo/" LANG="fr_FR.UTF-8" LC_ALL="fr_FR.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en fr ja zh zh_CN" MAKEOPTS="-j6" PKGDIR="/var/tmp/packages" PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync-exlude" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/gnome-experimental /usr/portage/local/layman/voip /usr/portage/local/layman/sunrise /home/eva/devel/gnome-experimental /home/eva/devel/gentoo-misc" SYNC="rsync://shinobu/gentoo-portage" USE="X a52 aalib acl acpi alsa applet avahi bash-completion bitmap-fonts bonjour bzip2 cairo caps cdr cjk cli cracklib crypt cups daap dbus dri dvd dvdr dvdread eds emboss encode esd evo exif fam fbcon ffmpeg fftw flac foomaticdb freewnn galago gif glitz glx gnome gnutls gphoto2 gpm gstreamer gtk gtkhtml h264 hal iconv ipv6 isdnlog jabber jpeg keyring lcms ldap libgda libnotify libsexy logrotate mad matroska midi mmx mng mono mp3 mpeg msn mudflap musicbrainz ncurses nfs nls nntp nptl nptlonly nsplugin ogg openct opengl openmp pam pcre pdf perl png ppds pppd python qt3support quicktime readline reflection samba sasl sdl session smp spell spl sqlite sqlite3 sse ssl svg tcpd theora threads tiff tracker truetype truetype-fonts type1-fonts unicode usb v4l v4l2 vim-syntax vorbis win32codecs x264 x86 xattr xcb xinerama xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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" CAMERAS="canon ptp2" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en fr ja zh zh_CN" USERLAND="GNU" VIDEO_CARDS="vesa radeon r200" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS could you try without ccache and be sure you are using the same version of libtool and gcc everywhere ?
(In reply to comment #3) > Post the output of `grep global_symbol_pipe /usr/bin/libtool` please. grep global_symbol_pipe /usr/bin/libtool global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" if test -z "$global_symbol_pipe"; then if test -z "$global_symbol_pipe"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" # lt_preloaded_symbols. The linker will fail if global_symbol_pipe global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
*** Bug 197142 has been marked as a duplicate of this bug. ***
@herd, looking at the duplicates (thanks jakub) this bug seems to be triggered by ccache. Any suggestions on how to fix that ?
ccache has been probelmatic for me in the past; if your cached files aren't identical to what would be produced if they were run again, they can cause problems. Maybe we need an upgrade of gcc to automatically clear out your cache? That said, I use ccache, and hasn't caused problems for me recently.
*** Bug 197499 has been marked as a duplicate of this bug. ***
(In reply to comment #10) > Maybe we need an upgrade of gcc to automatically clear out your cache? This was refused by toolchain in the past, so no... won't be done. > That said, I use ccache, and hasn't caused problems for me recently. Can't reproduce any of these issues either.
*** Bug 197563 has been marked as a duplicate of this bug. ***
Created attachment 134743 [details] gtksourceview-2.0.1-r1 config.log Here's the config.log from gtksourceview-2.0.1-r1. If you look around line 422 ("checking command to parse /usr/bin/nm -B"). You see the error. /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file `conftstm.o' is incompatible with i386:x86-64 output For some reason we're getting i386 binaries from somewhere.
*** Bug 198584 has been marked as a duplicate of this bug. ***
*** Bug 199129 has been marked as a duplicate of this bug. ***
*** Bug 199147 has been marked as a duplicate of this bug. ***
*** Bug 199417 has been marked as a duplicate of this bug. ***
*** Bug 201743 has been marked as a duplicate of this bug. ***
You've probably realized this by now but the problem concerns this line in the package's generated libtool, which is different from /usr/bin/libtool: global_symbol_pipe="" Just so everyone's clear.
*** Bug 203009 has been marked as a duplicate of this bug. ***
*** Bug 209496 has been marked as a duplicate of this bug. ***
I am having the exact same problem with neon not compiling on AMD64. Removing ccache from my PORTAGE_FEATURES fixed the issue. It would be really awesome to not have to do this.
*** Bug 220869 has been marked as a duplicate of this bug. ***
The reason for this madness is that sandbox compiles with ABI=x86 and puts a 32-bit object file into ccache database. Now, since the hash of the preprocessor and command line arguments will match in subsequent runs, many packages will fail the "check command required to parse nm -B output" test of the configure, hence making one command of the pipe "". Easiest of the fixes is to make sandbox ebuild disable the ccache feature explicitly. This problem has been there for quite some time now and no one has bothered to fix this. Can we please have it fixed in the sandbox ebuild? I also notice that this is assigned to the wrong person.
if you don't want to clear the whole ccache, you can cd into ccache dir and \rm `find . -type f|xargs file |grep "ELF 32-bit"|cut -d":" -f1`
reassigning per previous comments.
*** Bug 231726 has been marked as a duplicate of this bug. ***
i dont think that last comment makes sense. the CPP output when using -m32 most certainly does not match the CPP output when using -m64 (or the default).
(In reply to comment #29) > i dont think that last comment makes sense. the CPP output when using -m32 > most certainly does not match the CPP output when using -m64 (or the default). > 32-bit objects did end up in my ccache, and 32-bit objects were returned. I had manually verified the configure run repeatedly. Then, I cleaned up the 32-bit objects with the command I posted and everything worked. It could be a ccache bug as well.
i'm not saying that didnt happen, i'm saying the proposed reasoning was flawed storing 32bit and 64bit objects in the same cache is OK do you have an example gcc commands where a 32bit goes in and then comes out when it should have been 64bit ?
(In reply to comment #31) > i'm not saying that didnt happen, i'm saying the proposed reasoning was flawed > > storing 32bit and 64bit objects in the same cache is OK > > do you have an example gcc commands where a 32bit goes in and then comes out > when it should have been 64bit ? > Now I don't. it was a long time ago.
this is probably due to how we handle ABI flags and PATH with ccache. ccache needs to appear in the PATH *after* our gcc-config wrapper. this example shows the problem: $ export PATH=`echo $PATH | sed 's|/usr/lib/ccache/bin:||g'` $ echo 'char foo[] = "'`head /dev/urandom | base64 | head -n1`'";' > test.c $ gcc -c test.c ; file test.o test.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped $ gcc -c test.c -m32 ; file test.o test.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped $ gcc -c test.c -m64 ; file test.o test.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped $ ABI=x86 CFLAGS_x86=-m32 ccache gcc -c test.c ; file test.o test.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped $ ccache gcc -c test.c ; file test.o test.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped but if ccache is in the right place (after the gcc-config wrapper), it's OK: $ export PATH=/usr/bin:/usr/lib/ccache/bin:$PATH $ echo 'char foo[] = "'`head /dev/urandom | base64 | head -n1`'";' > test.c $ ABI=x86 CFLAGS_x86=-m32 gcc -c test.c ; file test.o test.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped $ gcc -c test.c ; file test.o test.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped i imagine ccache first hashes the compiler flags used, and if the compiler timestamp is unchanged and the compiler flags are exactly the same, it uses the cached object. but if ccache is executed before gcc-config addes the CFLAGS_$ABI flags, the cache gets out of sync with reality. i think we can: - have gcc-config wrapper warn if we are being executed by ccache - make sure portage adds ccache dir to the right place in PATH
for example, this code in ebuild.sh needs to change i think: if [ -d /usr/lib/ccache/bin ]; then export PATH="/usr/lib/ccache/bin:${PATH}" elif [ -d /usr/bin/ccache ]; then export PATH="/usr/bin/ccache:${PATH}" fi to something like: if [ -d /usr/lib/ccache/bin ]; then export PATH="/usr/bin:/usr/lib/ccache/bin:${PATH}" elif [ -d /usr/bin/ccache ]; then export PATH="/usr/bin:/usr/bin/ccache:${PATH}" fi
(In reply to comment #34) It tested that with sys-apps/sandbox and an empty CCACHE_DIR. Apparently it didn't use ccache at all since CCACHE_DIR remained empty.
sorry, you're right ... i was thinking gcc-config crawled the $PATH, but it does that as a fallback now i guess we could set the multilib code to disable ccache in the eclass when it isnt targetting the native system
*** Bug 253825 has been marked as a duplicate of this bug. ***
*** Bug 253852 has been marked as a duplicate of this bug. ***
ccache is disabled automatically now when selecting a different multilib: http://sources.gentoo.org/eclass/multilib.eclass?r1=1.69&r2=1.70 long term solution is to rethink our multilib handling
*** Bug 254285 has been marked as a duplicate of this bug. ***
should be fixed now http://sources.gentoo.org/eclass/multilib.eclass?r1=1.71&r2=1.72
*** Bug 224123 has been marked as a duplicate of this bug. ***
*** Bug 276301 has been marked as a duplicate of this bug. ***
*** Bug 356449 has been marked as a duplicate of this bug. ***
*** Bug 358133 has been marked as a duplicate of this bug. ***