Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 467488 - sys-devel/binutils-config: --uninstall leaves behind FAKE_TARGETS symlinks in /usr/libexec/gcc/${CTARGET}/
Summary: sys-devel/binutils-config: --uninstall leaves behind FAKE_TARGETS symlinks in...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-27 12:44 UTC by Markos Chandras (RETIRED)
Modified: 2014-08-11 13:32 UTC (History)
5 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markos Chandras (RETIRED) gentoo-dev 2013-04-27 12:44:37 UTC
What I did was this

helix ~ # crossdev -t mips64-octeon-linux-gnu
helix ~ # crossdev -C mips64-octeon-linux-gnu
 * Uninstalling target 'mips64-octeon-linux-gnu' ...
cross-mips64-octeon-linux-gnu/binutils: 2.23.1 none none 
cross-mips64-octeon-linux-gnu/gcc: 4.7.2-r1 none none 
cross-mips64-octeon-linux-gnu/glibc: 2.17 none none 
cross-mips64-octeon-linux-gnu/linux-headers: 3.8 none none 

All selected packages: cross-mips64-octeon-linux-gnu/glibc-2.17 cross-mips64-octeon-linux-gnu/linux-headers-3.8 cross-mips64-octeon-linux-gnu/binutils-2.23.1 cross-mips64-octeon-linux-gnu/gcc-4.7.2-r1
>>> Unmerging (1 of 4) cross-mips64-octeon-linux-gnu/binutils-2.23.1...
>>> Unmerging (2 of 4) cross-mips64-octeon-linux-gnu/gcc-4.7.2-r1...
>>> Unmerging (3 of 4) cross-mips64-octeon-linux-gnu/glibc-2.17...
>>> Unmerging (4 of 4) cross-mips64-octeon-linux-gnu/linux-headers-3.8...
/usr/mips64-octeon-linux-gnu: directory still exists; remove recursively? [y/N] y

but then i realized that it did not remove everything

helix ~ # ls -la /usr/bin/|grep octeon
lrwxrwxrwx   1 root root         50 Apr 27 12:51 mips-octeon-linux-gnu-addr2line -> /usr/libexec/gcc/mips64-octeon-linux-gnu/addr2line
lrwxrwxrwx   1 root root         43 Apr 27 12:51 mips-octeon-linux-gnu-ar -> /usr/libexec/gcc/mips64-octeon-linux-gnu/ar
lrwxrwxrwx   1 root root         43 Apr 27 12:51 mips-octeon-linux-gnu-as -> /usr/libexec/gcc/mips64-octeon-linux-gnu/as
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips-octeon-linux-gnu-c++filt -> /usr/libexec/gcc/mips64-octeon-linux-gnu/c++filt
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips-octeon-linux-gnu-elfedit -> /usr/libexec/gcc/mips64-octeon-linux-gnu/elfedit
lrwxrwxrwx   1 root root         46 Apr 27 12:51 mips-octeon-linux-gnu-gprof -> /usr/libexec/gcc/mips64-octeon-linux-gnu/gprof
lrwxrwxrwx   1 root root         43 Apr 27 12:51 mips-octeon-linux-gnu-ld -> /usr/libexec/gcc/mips64-octeon-linux-gnu/ld
lrwxrwxrwx   1 root root         47 Apr 27 12:51 mips-octeon-linux-gnu-ld.bfd -> /usr/libexec/gcc/mips64-octeon-linux-gnu/ld.bfd
lrwxrwxrwx   1 root root         43 Apr 27 12:51 mips-octeon-linux-gnu-nm -> /usr/libexec/gcc/mips64-octeon-linux-gnu/nm
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips-octeon-linux-gnu-objcopy -> /usr/libexec/gcc/mips64-octeon-linux-gnu/objcopy
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips-octeon-linux-gnu-objdump -> /usr/libexec/gcc/mips64-octeon-linux-gnu/objdump
lrwxrwxrwx   1 root root         47 Apr 27 12:51 mips-octeon-linux-gnu-ranlib -> /usr/libexec/gcc/mips64-octeon-linux-gnu/ranlib
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips-octeon-linux-gnu-readelf -> /usr/libexec/gcc/mips64-octeon-linux-gnu/readelf
lrwxrwxrwx   1 root root         45 Apr 27 12:51 mips-octeon-linux-gnu-size -> /usr/libexec/gcc/mips64-octeon-linux-gnu/size
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips-octeon-linux-gnu-strings -> /usr/libexec/gcc/mips64-octeon-linux-gnu/strings
lrwxrwxrwx   1 root root         46 Apr 27 12:51 mips-octeon-linux-gnu-strip -> /usr/libexec/gcc/mips64-octeon-linux-gnu/strip
lrwxrwxrwx   1 root root         48 Apr 27 12:51 mips64-octeon-linux-gnu-elfedit -> /usr/libexec/gcc/mips64-octeon-linux-gnu/elfedit
-rwxr-xr-x   1 root root      10456 Apr 27 12:56 mips64-octeon-linux-gnu-gcc-ar
-rwxr-xr-x   1 root root      10456 Apr 27 12:56 mips64-octeon-linux-gnu-gcc-nm
-rwxr-xr-x   1 root root      10456 Apr 27 12:56 mips64-octeon-linux-gnu-gcc-ranlib
lrwxrwxrwx   1 root root         47 Apr 27 12:51 mips64-octeon-linux-gnu-ld.bfd -> /usr/libexec/gcc/mips64-octeon-linux-gnu/ld.bfd


I believe crossdev -C should remove these as well.
Comment 1 SpanKY gentoo-dev 2013-05-06 00:34:48 UTC
hmm, what version of binutils-config are you using ?  seems to me that binutils symlinks in /usr/bin/ and /usr/libexec/gcc/ are getting cleaned up.

my test:
crossdev -s0 mips64-octeon-linux-gnu
crossdev -C mips64-octeon-linux-gnu

i don't have anything left in /usr/bin/
Comment 2 Markos Chandras (RETIRED) gentoo-dev 2013-05-12 16:18:21 UTC
I used 3-r3.

If you say that it works for you I can try to reproduce it again. It may be possible the crossdev -t mips64-octeon-linux-gnu step did not succeed and then I tried to remove using crossdev -C whatever was already installed. I will try again.
Comment 3 SpanKY gentoo-dev 2013-05-22 04:51:57 UTC
(In reply to comment #2)

crossdev doesn't really matter here.  as long as binutils itself finishes installing, it should uninstall itself cleanly.
Comment 4 Markos Chandras (RETIRED) gentoo-dev 2013-06-08 22:59:07 UTC
Some updates

today I built a new mips64-unknown-linux-gnu like this:

crossdev -t mips64-unknown-linux-gnu

I notice that a mips-* appeared in /usr/bin along with the mips64-* expected one... I've no idea why.

lrwxrwxrwx 1 root root    51 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-addr2line -> /usr/libexec/gcc/mips64-unknown-linux-gnu/addr2line
lrwxrwxrwx 1 root root    44 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-ar -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ar
lrwxrwxrwx 1 root root    44 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-as -> /usr/libexec/gcc/mips64-unknown-linux-gnu/as
lrwxrwxrwx 1 root root    49 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-c++filt -> /usr/libexec/gcc/mips64-unknown-linux-gnu/c++filt
lrwxrwxrwx 1 root root    49 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-elfedit -> /usr/libexec/gcc/mips64-unknown-linux-gnu/elfedit
lrwxrwxrwx 1 root root    47 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-gprof -> /usr/libexec/gcc/mips64-unknown-linux-gnu/gprof
lrwxrwxrwx 1 root root    44 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-ld -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ld
lrwxrwxrwx 1 root root    48 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-ld.bfd -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ld.bfd
lrwxrwxrwx 1 root root    44 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-nm -> /usr/libexec/gcc/mips64-unknown-linux-gnu/nm
lrwxrwxrwx 1 root root    49 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-objcopy -> /usr/libexec/gcc/mips64-unknown-linux-gnu/objcopy
lrwxrwxrwx 1 root root    49 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-objdump -> /usr/libexec/gcc/mips64-unknown-linux-gnu/objdump
lrwxrwxrwx 1 root root    48 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-ranlib -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ranlib
lrwxrwxrwx 1 root root    49 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-readelf -> /usr/libexec/gcc/mips64-unknown-linux-gnu/readelf
lrwxrwxrwx 1 root root    46 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-size -> /usr/libexec/gcc/mips64-unknown-linux-gnu/size
lrwxrwxrwx 1 root root    49 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-strings -> /usr/libexec/gcc/mips64-unknown-linux-gnu/strings
lrwxrwxrwx 1 root root    47 Jun  8 23:07 /usr/bin/mips-unknown-linux-gnu-strip -> /usr/libexec/gcc/mips64-unknown-linux-gnu/strip


Is this expected? having mips-* along with mips64-* could be a bit confusing if you only requested a 64-bit toolchain (even though mips is a symlink to mips64)




Then I removed it like this but I still see mip64-* toolchain components in /usr/bin

helix ~ # crossdev -C mips64-unknown-linux-gnu
 * Uninstalling target 'mips64-unknown-linux-gnu' ...
cross-mips64-unknown-linux-gnu/binutils: 2.23.1 none none 
cross-mips64-unknown-linux-gnu/gcc: 4.7.3 none none 
cross-mips64-unknown-linux-gnu/glibc: 2.17 none none 
cross-mips64-unknown-linux-gnu/linux-headers: 3.9 none none 

All selected packages: cross-mips64-unknown-linux-gnu/linux-headers-3.9 cross-mips64-unknown-linux-gnu/glibc-2.17 cross-mips64-unknown-linux-gnu/gcc-4.7.3 cross-mips64-unknown-linux-gnu/binutils-2.23.1
>>> Unmerging (1 of 4) cross-mips64-unknown-linux-gnu/binutils-2.23.1...
>>> Unmerging (2 of 4) cross-mips64-unknown-linux-gnu/gcc-4.7.3...
>>> Unmerging (3 of 4) cross-mips64-unknown-linux-gnu/glibc-2.17...
>>> Unmerging (4 of 4) cross-mips64-unknown-linux-gnu/linux-headers-3.9...
/usr/mips64-unknown-linux-gnu: directory still exists; remove recursively? [y/N] y
helix ~ # ls -la /usr/bin/|grep mips
lrwxrwxrwx   1 root root         51 Jun  8 23:07 mips-unknown-linux-gnu-addr2line -> /usr/libexec/gcc/mips64-unknown-linux-gnu/addr2line
lrwxrwxrwx   1 root root         44 Jun  8 23:07 mips-unknown-linux-gnu-ar -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ar
lrwxrwxrwx   1 root root         44 Jun  8 23:07 mips-unknown-linux-gnu-as -> /usr/libexec/gcc/mips64-unknown-linux-gnu/as
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips-unknown-linux-gnu-c++filt -> /usr/libexec/gcc/mips64-unknown-linux-gnu/c++filt
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips-unknown-linux-gnu-elfedit -> /usr/libexec/gcc/mips64-unknown-linux-gnu/elfedit
lrwxrwxrwx   1 root root         47 Jun  8 23:07 mips-unknown-linux-gnu-gprof -> /usr/libexec/gcc/mips64-unknown-linux-gnu/gprof
lrwxrwxrwx   1 root root         44 Jun  8 23:07 mips-unknown-linux-gnu-ld -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ld
lrwxrwxrwx   1 root root         48 Jun  8 23:07 mips-unknown-linux-gnu-ld.bfd -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ld.bfd
lrwxrwxrwx   1 root root         44 Jun  8 23:07 mips-unknown-linux-gnu-nm -> /usr/libexec/gcc/mips64-unknown-linux-gnu/nm
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips-unknown-linux-gnu-objcopy -> /usr/libexec/gcc/mips64-unknown-linux-gnu/objcopy
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips-unknown-linux-gnu-objdump -> /usr/libexec/gcc/mips64-unknown-linux-gnu/objdump
lrwxrwxrwx   1 root root         48 Jun  8 23:07 mips-unknown-linux-gnu-ranlib -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ranlib
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips-unknown-linux-gnu-readelf -> /usr/libexec/gcc/mips64-unknown-linux-gnu/readelf
lrwxrwxrwx   1 root root         46 Jun  8 23:07 mips-unknown-linux-gnu-size -> /usr/libexec/gcc/mips64-unknown-linux-gnu/size
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips-unknown-linux-gnu-strings -> /usr/libexec/gcc/mips64-unknown-linux-gnu/strings
lrwxrwxrwx   1 root root         47 Jun  8 23:07 mips-unknown-linux-gnu-strip -> /usr/libexec/gcc/mips64-unknown-linux-gnu/strip
lrwxrwxrwx   1 root root         49 Jun  8 23:07 mips64-unknown-linux-gnu-elfedit -> /usr/libexec/gcc/mips64-unknown-linux-gnu/elfedit
-rwxr-xr-x   1 root root      10456 Jun  8 23:26 mips64-unknown-linux-gnu-gcc-ar
-rwxr-xr-x   1 root root      10456 Jun  8 23:26 mips64-unknown-linux-gnu-gcc-nm
-rwxr-xr-x   1 root root      10456 Jun  8 23:26 mips64-unknown-linux-gnu-gcc-ranlib
lrwxrwxrwx   1 root root         48 Jun  8 23:07 mips64-unknown-linux-gnu-ld.bfd -> /usr/libexec/gcc/mips64-unknown-linux-gnu/ld.bfd
Comment 5 SpanKY gentoo-dev 2013-06-23 07:31:18 UTC
(In reply to Markos Chandras from comment #4)

yes. the FAKE_TARGET stuff is known to not get cleaned up.  i wonder if that stuff is even really useful and maybe we should just punt it entirely.
Comment 6 SpanKY gentoo-dev 2014-07-29 10:04:04 UTC
i'm going to punt FAKE_TARGETS support from binutils as i think we've outlived it at this point.  gcc supports biarch for mips/powerpc/s390/sparc and has for a while now (w/sparc being the last one with gcc-4.4).  if the kernel doesn't build anymore, then we should spend cycles getting that fixed rather than continuing with this prefix hack.
Comment 7 SpanKY gentoo-dev 2014-07-29 11:16:01 UTC
i've cut binutils-config-4 now w/FAKE_TARGETS dropped.  it was added like 10 years ago, so i think it's safe to say it's past its prime ;).