Summary: | gcc-4.7.2: updating from 4.7.1 kills system (ARM) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alexander Holler <aholler> |
Component: | [OLD] Core system | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED DUPLICATE | ||
Severity: | critical | CC: | bugzie, martin |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Alexander Holler
2012-10-03 08:58:57 UTC
This seems neither related with arm nor with a particular gcc version (I can and could reproduce it on amd64 and x86 with several gcc versions) unless you compile a lot of progams with USE=static. I was very surprised that this is the first report on the issue that I see; maybe the problem does not occur if one does not set LD_BIND_NOW and if one do not use -Wl,z,now (both I never tried for security reasons). The problem occurs (at least with LD_BIND_NOW) reproducable if the slot of the running compiler version is upgraded: In this case, portage removes the old compiler and then calls gcc-config to configure the new. Unfortunately, gcc-config fails after the removal because programs like "ln" break since they are linked against libgcc_s.so.1 which is no longer in the library path of the old gcc (since that was removed). A manual workaround is to use busybox to create in /usr/lib/gcc/$ARCH a symlink from the old compiler version to the new and then call gcc-config. Afterwards the symlink can be removed. It might also be possible to call gcc-config from bb; I have not tried this yet and made no research whether bb is available in all systems. If this is the case, maybe a proper fix is making gcc-config a #!/bin/bb binary (and if necessary making compatibility changes in that code). Another fix might be to make gcc-config a statically linked binary (which should not be that hard to do...). Yet another fix might be to call gcc-config before portage removes the old compiler - I do not know whether this is possible. *** This bug has been marked as a duplicate of bug 433161 *** |