Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 196243 - ccache sometimes returns 32bit objects to a 64bit build
Summary: ccache sometimes returns 32bit objects to a 64bit build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal major (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
: 196301 196364 197142 197499 197563 198584 199129 199147 199417 201743 203009 209496 220869 224123 231726 253825 253852 254285 276301 356449 358133 (view as bug list)
Depends on:
Blocks: 255585
  Show dependency tree
 
Reported: 2007-10-18 06:37 UTC by Konstantin Shabanov
Modified: 2011-03-10 08:42 UTC (History)
30 users (show)

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


Attachments
gtksourceview-2.0.1-r1 config.log (config.log,48.67 KB, text/plain)
2007-10-30 21:36 UTC, Nathan Caldwell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Shabanov 2007-10-18 06:37:12 UTC
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
Comment 1 Konstantin Shabanov 2007-10-18 07:15:03 UTC
Completely the same (/libtool: eval: line 4336: syntax error near unexpected token `|') problem with libgtop and net-misc/neon.
Comment 2 Konstantin Shabanov 2007-10-18 09:28:17 UTC
The same with gst-plugins-*, libidn and others.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2007-10-18 17:46:05 UTC
Post the output of `grep global_symbol_pipe /usr/bin/libtool` please.
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2007-10-19 07:29:54 UTC
*** Bug 196301 has been marked as a duplicate of this bug. ***
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2007-10-19 08:21:11 UTC
*** Bug 196364 has been marked as a duplicate of this bug. ***
Comment 6 Gilles Dartiguelongue (RETIRED) gentoo-dev 2007-10-19 10:15:54 UTC
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 ?
Comment 7 Roman Garnett 2007-10-21 12:03:01 UTC
(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"
Comment 8 Jakub Moc (RETIRED) gentoo-dev 2007-10-26 18:25:15 UTC
*** Bug 197142 has been marked as a duplicate of this bug. ***
Comment 9 Gilles Dartiguelongue (RETIRED) gentoo-dev 2007-10-27 09:35:58 UTC
@herd, looking at the duplicates (thanks jakub) this bug seems to be triggered by ccache. Any suggestions on how to fix that ?
Comment 10 Daniel Gryniewicz (RETIRED) gentoo-dev 2007-10-27 14:56:05 UTC
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.
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2007-10-30 12:47:46 UTC
*** Bug 197499 has been marked as a duplicate of this bug. ***
Comment 12 Jakub Moc (RETIRED) gentoo-dev 2007-10-30 12:49:17 UTC
(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. 

Comment 13 Jakub Moc (RETIRED) gentoo-dev 2007-10-30 21:30:31 UTC
*** Bug 197563 has been marked as a duplicate of this bug. ***
Comment 14 Nathan Caldwell 2007-10-30 21:36:30 UTC
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.
Comment 15 Jakub Moc (RETIRED) gentoo-dev 2007-11-09 18:18:54 UTC
*** Bug 198584 has been marked as a duplicate of this bug. ***
Comment 16 Jakub Moc (RETIRED) gentoo-dev 2007-11-14 10:28:11 UTC
*** Bug 199129 has been marked as a duplicate of this bug. ***
Comment 17 Jakub Moc (RETIRED) gentoo-dev 2007-11-14 19:20:27 UTC
*** Bug 199147 has been marked as a duplicate of this bug. ***
Comment 18 Jakub Moc (RETIRED) gentoo-dev 2007-11-17 09:21:43 UTC
*** Bug 199417 has been marked as a duplicate of this bug. ***
Comment 19 Jakub Moc (RETIRED) gentoo-dev 2007-12-09 08:53:45 UTC
*** Bug 201743 has been marked as a duplicate of this bug. ***
Comment 20 Tyler Mandry 2007-12-09 19:32:02 UTC
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.
Comment 21 Jakub Moc (RETIRED) gentoo-dev 2007-12-22 13:35:34 UTC
*** Bug 203009 has been marked as a duplicate of this bug. ***
Comment 22 Jakub Moc (RETIRED) gentoo-dev 2008-02-10 08:30:40 UTC
*** Bug 209496 has been marked as a duplicate of this bug. ***
Comment 23 Chris Ribble 2008-03-25 00:17:07 UTC
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.
Comment 24 Jan Kundrát (RETIRED) gentoo-dev 2008-05-08 08:24:27 UTC
*** Bug 220869 has been marked as a duplicate of this bug. ***
Comment 25 devsk 2008-05-24 02:24:54 UTC
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.
Comment 26 devsk 2008-05-24 02:48:49 UTC
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`
Comment 27 Gilles Dartiguelongue (RETIRED) gentoo-dev 2008-05-24 11:21:57 UTC
reassigning per previous comments.
Comment 28 Gilles Dartiguelongue (RETIRED) gentoo-dev 2008-07-16 07:08:03 UTC
*** Bug 231726 has been marked as a duplicate of this bug. ***
Comment 29 SpanKY gentoo-dev 2008-11-08 14:51:03 UTC
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).
Comment 30 devsk 2008-11-08 18:13:21 UTC
(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.
Comment 31 SpanKY gentoo-dev 2008-11-08 22:19:24 UTC
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 ?
Comment 32 devsk 2008-11-08 22:28:32 UTC
(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.
Comment 33 SpanKY gentoo-dev 2008-12-31 08:48:48 UTC
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
Comment 34 SpanKY gentoo-dev 2008-12-31 08:50:58 UTC
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
Comment 35 Zac Medico gentoo-dev 2009-01-01 23:12:24 UTC
(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.
Comment 36 SpanKY gentoo-dev 2009-01-02 00:30:40 UTC
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
Comment 37 Mik B. Shvets 2009-01-05 12:28:46 UTC
*** Bug 253825 has been marked as a duplicate of this bug. ***
Comment 38 Daniel Gryniewicz (RETIRED) gentoo-dev 2009-01-07 19:53:22 UTC
*** Bug 253852 has been marked as a duplicate of this bug. ***
Comment 39 SpanKY gentoo-dev 2009-01-09 07:00:15 UTC
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
Comment 40 Derek Dolney 2009-01-09 17:29:49 UTC
*** Bug 254285 has been marked as a duplicate of this bug. ***
Comment 41 SpanKY gentoo-dev 2009-02-20 23:21:23 UTC
should be fixed now

http://sources.gentoo.org/eclass/multilib.eclass?r1=1.71&r2=1.72
Comment 42 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2009-05-09 21:56:10 UTC
*** Bug 224123 has been marked as a duplicate of this bug. ***
Comment 43 SpanKY gentoo-dev 2009-10-26 09:52:02 UTC
*** Bug 276301 has been marked as a duplicate of this bug. ***
Comment 44 Ryan Hill (RETIRED) gentoo-dev 2011-02-26 16:32:00 UTC
*** Bug 356449 has been marked as a duplicate of this bug. ***
Comment 45 SpanKY gentoo-dev 2011-03-10 08:42:33 UTC
*** Bug 358133 has been marked as a duplicate of this bug. ***