2 # Copyright 1999-2015 Gentoo Foundation
3 # Distributed under the terms of the GNU General Public License v2
7 inherit toolchain-funcs
10 # TEST: tc-arch-kernel
12 test-tc-arch-kernel() {
15 for CHOST in "$@" ; do
18 actual=$(tc-arch-kernel)
20 if [[ ${actual} != ${exp:-${CHOST}} ]] ; then
21 eerror "Failure for CHOST: ${CHOST} Expected: ${exp} != Actual: ${actual}"
27 tbegin "tc-arch-kernel() (KV=2.6.30)"
28 test-tc-arch-kernel 2.6.30 \
29 i{3..6}86:x86 x86_64:x86 \
30 powerpc{,64}:powerpc i{3..6}86-gentoo-freebsd:i386
39 alpha arm{,eb}:arm avr32:avr bfin cris hppa i{3..6}86:x86 ia64 m68k \
40 mips{,eb}:mips nios2 powerpc:ppc powerpc64:ppc64 s390{,x}:s390 \
41 sh{1..4}{,eb}:sh sparc{,64}:sparc vax x86_64:amd64
47 if [[ ${actual} != ${exp:-${CHOST}} ]] ; then
48 eerror "Failure for CHOST: ${CHOST} Expected: ${exp} != Actual: ${actual}"
57 tbegin "tc-ld-is-gold (ld=bfd cc=bfd)"
58 LD=ld.bfd LDFLAGS=-fuse-ld=bfd tc-ld-is-gold && ret=1 || ret=0
61 tbegin "tc-ld-is-gold (ld=gold cc=default)"
62 LD=ld.gold tc-ld-is-gold
66 tbegin "tc-ld-is-gold (ld=gold cc=bfd)"
67 LD=ld.gold LDFLAGS=-fuse-ld=bfd tc-ld-is-gold
71 tbegin "tc-ld-is-gold (ld=bfd cc=gold)"
72 LD=ld.bfd LDFLAGS=-fuse-ld=gold tc-ld-is-gold
77 # TEST: tc-ld-disable-gold
79 tbegin "tc-ld-disable-gold (bfd selected)"
81 export LD=ld.bfd LDFLAGS=-fuse-ld=bfd
84 [[ ${LD} == "ld.bfd" && ${LDFLAGS} == "-fuse-ld=bfd" ]]
88 tbegin "tc-ld-disable-gold (ld=gold)"
90 export LD=ld.gold LDFLAGS=
93 [[ ${LD} == "ld.bfd" || ${LDFLAGS} == *"-fuse-ld=bfd"* ]]
97 tbegin "tc-ld-disable-gold (cc=gold)"
99 export LD= LDFLAGS="-fuse-ld=gold"
102 [[ ${LD} == *"/ld.bfd" || ${LDFLAGS} == "-fuse-ld=gold -fuse-ld=bfd" ]]
108 tbegin "tc-get-compiler-type (gcc)"
111 [[ $(tc-get-compiler-type) == gcc ]]
115 tbegin "tc-is-gcc (gcc)"
122 tbegin "! tc-is-clang (gcc)"
129 if type -P clang &>/dev/null; then
130 tbegin "tc-get-compiler-type (clang)"
133 [[ $(tc-get-compiler-type) == clang ]]
137 tbegin "! tc-is-gcc (clang)"
144 tbegin "tc-is-clang (clang)"
152 if type -P pathcc &>/dev/null; then
153 tbegin "tc-get-compiler-type (pathcc)"
156 [[ $(tc-get-compiler-type) == pathcc ]]
160 tbegin "! tc-is-gcc (pathcc)"
167 tbegin "! tc-is-clang (pathcc)"
175 for compiler in gcc clang not-really-a-compiler; do
176 if type -P ${compiler} &>/dev/null; then
177 tbegin "tc-cpp-is-true ($compiler, defined)"
179 export CC=${compiler}
180 tc-cpp-is-true "defined(SOME_DEFINED_SYMBOL)" -DSOME_DEFINED_SYMBOL
183 tbegin "tc-cpp-is-true ($compiler, not defined)"
185 export CC=${compiler}
186 ! tc-cpp-is-true "defined(SOME_UNDEFINED_SYMBOL)"
190 tbegin "tc-cpp-is-true ($compiler, defined on -ggdb3)"
192 export CC=${compiler}
193 tc-cpp-is-true "defined(SOME_DEFINED_SYMBOL)" -DSOME_DEFINED_SYMBOL -ggdb3