Summary: | eselect compiler mixes crossbuild libraries into ld.so.conf | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Torsten Kaiser <Storklerk> |
Component: | [OLD] Core system | Assignee: | Jeremy Huddleston (RETIRED) <eradicator> |
Status: | RESOLVED WONTFIX | ||
Severity: | critical | CC: | agaffney, bug.hunter, drwook, m.debruijne, quantumdigit, sgtphou, solar, toolchain, yvasilev |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 143697 | ||
Attachments: | unset COMPILER_CONFIG_LDPATH when not the native ctarget |
Description
Torsten Kaiser
2006-06-25 02:07:54 UTC
(In reply to comment #0) > I emerge arm-softfloat-linux-gnu-gcc in version 4.1.1 and 3.4.6 onto an ~x86 > system. > After using eselect compiler to switch between these two arm-gccs some programs > no longer work: > > ariolc ~ # eix -e glibc > eix: error while loading shared libraries: > /usr/lib/gcc/arm-softfloat-linux-gnu/4.1.1/libgcc_s.so.1: ELF file OS ABI > invalid > > The cause of this error is, that ld.so.conf contains: > ... > /usr/lib/gcc/arm-softfloat-linux-gnu/4.1.1 > /usr/lib/gcc/i686-pc-linux-gnu/4.1.1 > ... > > So ld.so will try to load the wrong library first. > > The cause of this seems to be, that [a]rm comes before [i]686 when eselect > rebuilds /etc/env.d/05compiler and then /etc/ld.so.conf. > > /etc/env.d/gcc contains the following files: > arm-softfloat-linux-gnu-3.4.6 > arm-softfloat-linux-gnu-3.4.6-hardenednopiessp > arm-softfloat-linux-gnu-4.1.1 > config > config- > config-i686-pc-linux-gnu > i686-pc-linux-gnu-3.4.6 > i686-pc-linux-gnu-3.4.6-hardened > i686-pc-linux-gnu-3.4.6-hardenednopie > i686-pc-linux-gnu-3.4.6-hardenednopiessp > i686-pc-linux-gnu-3.4.6-hardenednossp > i686-pc-linux-gnu-4.0.3 > i686-pc-linux-gnu-4.1.1 > I've been having the same problem here for a ages. I have been working with experimental cross-arm-eabi toolchains, emerging directly with an overlay so I wasn't sure if it was something I did wrong somewhere. Given you're having the same problem I think it needs fixing here in eselect compiler. Only "native" gcc libraries should be merged into the LDPATH entry in 05compiler. I'll see if I can make a patch for it... Created attachment 93574 [details, diff]
unset COMPILER_CONFIG_LDPATH when not the native ctarget
*** Bug 143096 has been marked as a duplicate of this bug. *** eradicator, I'm going to p.mask this package if you dont fix this like real soon. It's been sitting here for two months untouched. This thing just needs to be p.mask'd anyway until it can be proven to not be a steaming pile of crap. >=sys-devel/gcc-config-2 and app-admin/eselect-compiler masked till these
bugs are resolved.
Of course, now it's masked and emerge -auvDN world is giving a nice friendly error; !!! All ebuilds that could satisfy "app-admin/eselect-compiler" have been masked. !!! One of the following masked packages is required to complete your request: - app-admin/eselect-compiler-2.0.0_rc1-r6 (masked by: package.mask) # Ned Ludd <solar/gentoo.org> (Aug 14 2006) # This this breaks working systems and eradicator # has gone MIA yet again. Bug 137917 - app-admin/eselect-compiler-2.0.0_rc2 (masked by: package.mask) - app-admin/eselect-compiler-2.0.0_rc2-r1 (masked by: package.mask) For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. (dependency required by "sys-libs/glibc-2.4-r3" [ebuild]) On ~amd64 at least. I looked at the glibc ebuild to see exactly what it depends on and am guessing the recommendation would be going back to gcc-config-1.3.13-r3 ? If so might be worth adding that to the comments for the mask so a load of unnecessary bugs don't get logged... So downgrade gcc-config and unmerge eselect-compiler. Solar, this is the bug I was telling you about. It can be "fixed" by just p.mask'ing gcc-config-2 and leaving eselect-compiler alone. In most cases, this is enough. (In reply to comment #8) > So downgrade gcc-config and unmerge eselect-compiler. > Of course, I was suggesting mentioning it in the package.mask comments might prevent unnecessary bugs being logged .... TBH I'll just be unmasking what you masked, but figured it'd be in everyones interest to prevent silly bugs being opened. I take it the patch I posted above is unacceptable? OK it is a little hacky, it does do the job nicely though. Steven, see bug #143697 for a more complete list of problems. eselect-compiler is dead for the time being |