diff options
author | 2018-08-24 18:36:57 +0100 | |
---|---|---|
committer | 2018-08-24 19:09:17 +0100 | |
commit | 9b907ef80bc421df23515afc4c306e4d96c67649 (patch) | |
tree | 2f3d5b775be75e931b3737e24d8793a372014f1d /tests/source | |
parent | README: document /etc/env.d/04gcc-${CTARGET} (diff) | |
download | gcc-config-9b907ef80bc421df23515afc4c306e4d96c67649.tar.gz gcc-config-9b907ef80bc421df23515afc4c306e4d96c67649.tar.bz2 gcc-config-9b907ef80bc421df23515afc4c306e4d96c67649.zip |
Convert binary wrapper to a symlink wrapper.v2.0
Before the change:
/usr/bin/gcc and friends were a copy of /usr/$(libexecdir)/misc/gcc-config
After the change:
/usr/bin/gcc is a symlink to a real compiler binary. Examples:
/usr/${CTARGET}/gcc-bin/${GCC_VER}/gcc (native)
/usr/${CHOST}/${CTARGET}/gcc-bin/${GCC_VER}/gcc (cross)
gcc-config is a binary wrapper that does (or did) a few things:
- [removed in 2011] injects additional CFLAGS_${ABI}
Removed in commit 7ac40f3eb8434961f70485247d883f5b3009dcf2
"Stop auto appending CFLAGS_<abi> from the env."
- traverses PATH for real compiler binary and reexecutes it.
- reads /etc/env.d/05gcc-${CTARGET} as a fallback if PATH is empty.
Today binary wrapper does only PATH resolution and re-execution.
This change has a few minor benefits:
- PATH will not contain explicit /usr/${CHOST}/${CTARGET}/gcc-bin/${GCC_VER}
entry. This will make PATH shorter for those who have mavy cross-compilers
installed.
- compiler switch will not require sourcing '. /etc/profile' as changes are
applied as soon an symlink is switched.
- ccache will see gcc binary changes directly and react accordingly.
Previously in default configuration ccache cache depended on state of
/usr/$(libexecdir)/misc/gcc-config
See bug #640958 where ccache did not notice USE=-pie -> USE=pie switch.
- Reasoning about PATH ordering is straightforward: all available binaries
(as symlinks) are in /usr/bin.
See bug #255695 where PATH ordering changed and bug #626606 where
people get confused on what is in /usr/bin/gcc binary.
Bug: https://bugs.gentoo.org/626606
Bug: https://bugs.gentoo.org/255695
Bug: https://bugs.gentoo.org/640958
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'tests/source')
-rw-r--r-- | tests/source/test.whitespace | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/source/test.whitespace b/tests/source/test.whitespace index 28108ae..26d1bdb 100644 --- a/tests/source/test.whitespace +++ b/tests/source/test.whitespace @@ -1,2 +1,2 @@ #!/bin/bash -! egrep -nH '[[:space:]]+$' "${TROOT}"/../{gcc-config,wrapper.c} +! egrep -nH '[[:space:]]+$' "${TROOT}"/../gcc-config |