Summary: | eselect compiler: Error determining reference timestamp for binaries | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Togge <togge.gentoo> |
Component: | Current packages | Assignee: | Jeremy Huddleston (RETIRED) <eradicator> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | amd64, toolchain |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | i686-pc-linux-gnu-3.4.6.conf |
Description
Togge
2006-08-07 02:34:54 UTC
Reopen with 'eselect compiler list' and gcc-config -l output. root@explosive /usr/lib/distcc/bin 0 $ eselect compiler list Available compilers for CTARGET i686-pc-linux-gnu [1] i686-pc-linux-gnu-3.4.6/hardened [2] i686-pc-linux-gnu-3.4.6/hardenednopie [3] i686-pc-linux-gnu-3.4.6/hardenednopiessp [4] i686-pc-linux-gnu-3.4.6/hardenednossp [5] i686-pc-linux-gnu-3.4.6/vanilla [6] x86_64-pc-linux-gnu-3.4.6/x86-hardened [7] x86_64-pc-linux-gnu-3.4.6/x86-hardenednopie [8] x86_64-pc-linux-gnu-3.4.6/x86-hardenednopiessp [9] x86_64-pc-linux-gnu-3.4.6/x86-hardenednossp [10] x86_64-pc-linux-gnu-3.4.6/x86-vanilla [11] x86_64-pc-linux-gnu-4.1.1/x86-vanilla Available compilers for CTARGET x86_64-pc-linux-gnu [12] x86_64-pc-linux-gnu-3.4.6/amd64-hardened [13] x86_64-pc-linux-gnu-3.4.6/amd64-hardenednopie [14] x86_64-pc-linux-gnu-3.4.6/amd64-hardenednopiessp [15] x86_64-pc-linux-gnu-3.4.6/amd64-hardenednossp [16] x86_64-pc-linux-gnu-3.4.6/amd64-vanilla [17] x86_64-pc-linux-gnu-4.1.1/amd64-vanilla Activated profiles: i686 i686-pc-linux-gnu-3.4.6/vanilla i686-pc-linux-gnu i686-pc-linux-gnu-3.4.6/vanilla x86_64-pc-linux-gnu * x86_64-pc-linux-gnu-4.1.1/amd64-vanilla root@explosive /usr/lib/distcc/bin 0 $ gcc-config -l Available compilers for CTARGET i686-pc-linux-gnu [1] i686-pc-linux-gnu-3.4.6/hardened [2] i686-pc-linux-gnu-3.4.6/hardenednopie [3] i686-pc-linux-gnu-3.4.6/hardenednopiessp [4] i686-pc-linux-gnu-3.4.6/hardenednossp [5] i686-pc-linux-gnu-3.4.6/vanilla [6] x86_64-pc-linux-gnu-3.4.6/x86-hardened [7] x86_64-pc-linux-gnu-3.4.6/x86-hardenednopie [8] x86_64-pc-linux-gnu-3.4.6/x86-hardenednopiessp [9] x86_64-pc-linux-gnu-3.4.6/x86-hardenednossp [10] x86_64-pc-linux-gnu-3.4.6/x86-vanilla [11] x86_64-pc-linux-gnu-4.1.1/x86-vanilla Available compilers for CTARGET x86_64-pc-linux-gnu [12] x86_64-pc-linux-gnu-3.4.6/amd64-hardened [13] x86_64-pc-linux-gnu-3.4.6/amd64-hardenednopie [14] x86_64-pc-linux-gnu-3.4.6/amd64-hardenednopiessp [15] x86_64-pc-linux-gnu-3.4.6/amd64-hardenednossp [16] x86_64-pc-linux-gnu-3.4.6/amd64-vanilla [17] x86_64-pc-linux-gnu-4.1.1/amd64-vanilla Activated profiles: i686 i686-pc-linux-gnu-3.4.6/vanilla i686-pc-linux-gnu i686-pc-linux-gnu-3.4.6/vanilla x86_64-pc-linux-gnu * x86_64-pc-linux-gnu-4.1.1/amd64-vanilla Could you edit /usr/share/modules/compiler.eselect, and change line 487 (or thereabouts) which should currently be: die -q "Error determining reference timestamp for binaries. Please file a bug report at http://bugs.gentoo.org." to: die -q "Error determining reference timestamp for ${bin} (ref ${ref})." then run eselect compiler again and post the result? I take it that it was: /usr/share/eselect/modules/compiler.eselect you ment :) naga@explosive ~/code/tmp 0 tis 06:33:13 $ sudo eselect compiler set 5 !!! Error: Error determining reference timestamp for cc (ref gcc). exiting. Thanks for working on this! :) yeah - that's what I was looking for. Could you also attach /etc/eselect/compiler/i686-pc-linux-gnu-3.4.6.conf, and the output of: $ ls /usr/i686-pc-linux-gnu/gcc-bin/3.4.6 (or the directory set as "binpath" in the above .conf file if it is different) Created attachment 93742 [details]
i686-pc-linux-gnu-3.4.6.conf
Think you hit the nails head with that one... /usr/i686-... doesn't exist.
Now to figure out how that has happened (I know I haven't removed it manually)...
I'm not up on what multilib does with compilers (so I'm CC'ing amd64 who can correct me if I'm wrong, as can other toolchain members), but it seems odd you have: i686-pc-linux-gnu-3.4.6/* and x86_64-pc-linux-gnu-3.4.6/x86-* present. I'd guess on multilib amd64 you should just have x86_64-pc-linux-gnu-3.4.6/x86-* and x86_64-pc-linux-gnu-3.4.6/amd64-*. Did you change profiles any time recently? I'm trying to think of a way you'd end up with i686-pc-linux-gnu-3.4.6/*, and I think that would normally occur when the profile is x86 (rather than amd64), and the x86_64-pc-linux-gnu-3.4.6/x86-* and x86_64-pc-linux-gnu-3.4.6/amd64-* occur on multilib amd64 profiles. This might explain how you've ended up with a config file for i686-pc-linux-gnu - if this is the case, that config file should have been deleted when you built the multilib x86_64 compiler so that would be the bug in eselect-compiler. To clear the problem up for now, I think you should just remove /etc/eselect/compiler/i686-pc-linux-gnu-3.4.6.conf, since you don't actually have the compiler installed anyway. If you want to build 32-bit stuff, you don't need an i686 compiler, you just need to choose from x86_64-pc-linux-gnu-3.4.6/x86-*. If you really really want an i686-linux-pc-gnu compiler I think it needs to be built as a cross-compiler (see crossdev), but I doubt you really want that. amd64: can you confirm I'm giving good advice here (in particular that x86_64-pc-linux-gnu-3.4.6/x86-* are for building 32-bit x86 binaries - does it need "-march=i686" or similar as well in CFLAGS?) I'm pretty sure it came when I did "crossdev -t i686-pc..." (using this box as a distcc host for i686 machines), but how it came to be deleted... And no profile change since first install. (btw the /usr/i686-... dir came back when I rebuilt the crossdev compiler, and now eselect compiler works again) From my point of view this bug is solved. Thanks again for all help! Yeah, that profile was there from when you installed that compiler with crossdev, and the profile wasn't removed when you unmerged that compiler because of some items in the base profile that were transitioned out by vapier. The env.d entry installed by eselect-compiler attempts to correct this problem, but doesn't always work 100% |