This function does not find what it awk's for if the gcc-output is localized. I do not really know if that many people that does not use kevquinns overlay has got bitten by this yet, but this is the reason why "filter-flags -fPIE" broke for a lot of us using it. Proposed fix: _gcc-install-dir() { - echo "$($(tc-getCC) -print-search-dirs 2> /dev/null |\ + echo "$(LC_ALL="C" $(tc-getCC) -print-search-dirs 2> /dev/null |\ awk '$1=="install:" {print $2}')"
Nope, it is not only kevquinns overlay that got this issue. I will leave this as "RESOLVE LATER" becouse I think only hardened uses function '_gcc-install-dir()' and as there is no hardened gcc-4 in portage user of portages toolchain will not get bitten by this currently. BUT this is breakage that exist in portage/eclass/toolchain-funcs.eclass and that is that it does not respect localization (in this case always expect "install:" in the output to be "install:"). Why people in kevquinns overlay got bitten by this is becouse gcc-4 has not the same output as gcc-3 whith at least LC_ALL="sv_SE" (have checked with LC_ALL="C" and that output is the same for both versions) as shown here (output of intrest prefixed with "@@"): gcc-4 from unchanged stage3-x86 2008_beta: # gcc -print-search-dirs @@installation: /usr/lib/gcc/i486-pc-linux-gnu/4.1.2/ program: =/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/:/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/:/usr/libexec/gcc/i486-pc-linux-gnu/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/:/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/:/usr/libexec/gcc/i486-pc-linux-gnu/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/../../../../i486-pc-linux-gnu/bin/i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/../../../../i486-pc-linux-gnu/bin/ bibliotek: =/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/../../../../i486-pc-linux-gnu/lib/i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/../../../../i486-pc-linux-gnu/lib/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/../../../i486-pc-linux-gnu/4.1.2/:/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/../../../:/lib/i486-pc-linux-gnu/4.1.2/:/lib/:/usr/lib/i486-pc-linux-gnu/4.1.2/:/usr/lib/ gcc-3.4 from unchanged hardened stage3-i686 2008_beta1: # gcc -print-search-dirs @@install: /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/ program: =/usr/libexec/gcc/i686-pc-linux-gnu/3.4.6/:/usr/libexec/gcc/i686-pc-linux-gnu/3.4.6/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/libexec/gcc/i686-pc-linux-gnu/3.4.6/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/bin/i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/bin/ bibliotek: =/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/lib/i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/lib/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../i686-pc-linux-gnu/3.4.6/:/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../:/lib/i686-pc-linux-gnu/3.4.6/:/lib/:/usr/lib/i686-pc-linux-gnu/3.4.6/:/usr/lib/
i was looking at toolchain.eclass, not toolchain-funcs.eclass ...
http://sources.gentoo.org/eclass/toolchain-funcs.eclass?r1=1.75&r2=1.76