Summary: | eselect-compiler lists configurations for compilers that are not installed | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Mike Auty (RETIRED) <ikelos> |
Component: | Current packages | Assignee: | Jeremy Huddleston (RETIRED) <eradicator> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | jakub, toolchain |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Mike Auty (RETIRED)
2006-06-11 17:07:31 UTC
Just delete the files in /etc/eselect/compiler/*.conf . This is a problem stemming from portage not knowing it should delete files in /etc/eselect/compiler/* on unmerge until eselect-compiler is installed and the install not deleting all invalid profiles when you merge eselect-compiler. It tries to, but you probably still have /usr/lib/gcc-bin/$CHOST/<version> directories on your system for those profiles. [ Searching for file(s) /etc/eselect/compiler/i686-pc-linux-gnu-3.4.4.conf,/etc/eselect/compiler/i686-pc-linux-gnu-4.0.3.conf,/etc/eselect/compiler/i686-pc-linux-gnu-4.1.1.conf in *... ] sys-devel/gcc-3.4.4-r1 (/etc/eselect/compiler/i686-pc-linux-gnu-3.4.4.conf) sys-devel/gcc-4.0.3 (/etc/eselect/compiler/i686-pc-linux-gnu-4.0.3.conf) sys-devel/gcc-4.1.1 (/etc/eselect/compiler/i686-pc-linux-gnu-4.1.1.conf) So, why doesn't gcc create a CONFIG_PROTECT_MASK entry so that this cruft can be removed on uninstall? /etc/eselect/compiler was in CONFIG_PROJECT_MASK in base, but about a month ago that was being cleaned out and forced onto packages. vapier had me put it in eselect-compiler instead of gcc. True gcc installs the file, but you can have multiple versions of gcc installed at the same time and thus you'd have file collission. eselec-compiler clears out the invalid profiles whe it is first installed. I'm more curious why these didn't get removed when eselect-compiler was installed, but the likely reason is that portage didn't remove /usr/lib/gcc-bin/$CHOST/<version> when you unmerged the old compiler. Sorry, I forgot to get back to you about this. Removing the files worked fine. I checked for the /usr/lib/gcc-bin/$CHOST/<version> directories, I found one for the i386 CHOST, but not the one for 3.4.5... Anything I can do help you test it out? 5:) (In reply to comment #3) > True gcc installs the file, but you can have > multiple versions of gcc installed at the same time and thus you'd have file > collission. Erm, it's not one file for all of them - it's one file per slot, so there can't be any collisions there. Ok, well closing. I agree that the CONFIG_PROJECT_MASK should've been provided by gcc. It was originally in base, but vapier removed it and had me put it in eselect-compiler which made me need to come up with this hack around the problem. If you want to blame someone about that decision, blame him. Everything was working great when it was in base. |