Re: [PATCH] powerpc: Fix stackprotector detection for non-glibc toolchains
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2018-10-13 11:57:05
Christophe LEROY [off-list ref] writes:
Le 13/10/2018 à 00:58, Michael Ellerman a écrit :quoted
If GCC is not built with glibc support then we must explicitly tell it which register to use for TLS mode stack protector, otherwise it will error out and the cc-option check will fail.Oh ? I didn't encounter such a problem with the nolibc GCC from https://mirrors.edge.kernel.org/pub/tools/crosstool/
Yes, you're right. $ /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc -o empty.o -Wall -c empty.c -mstack-protector-guard=tls $ echo $? 0 But with mine: $ /home/kerkins/toolchains/ppc/gcc-8-branch/powerpc-linux/bin/powerpc-linux-gcc -o empty.o -Wall -c empty.c -mstack-protector-guard=tls cc1: error: ‘-mstack-protector-guard=tls’ needs a valid base register So it's only my cross compilers that don't work. The kernel.org ones are: Configured with: /home/arnd/git/gcc/configure --target=powerpc64-linux --enable-targets=all --prefix=/home/arnd/cross/x86_64/gcc-8.1.0-nolibc/powerpc64-linux --enable-languages=c --without-headers --disable-bootstrap --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-decimal-float --disable-libquadmath --disable-libatomic --disable-libcc1 --disable-libmpx --enable-checking=release Whereas mine is: Configured with: ../../src/gcc/configure --prefix=/home/kerkins/workspace/gcc-build/gcc/gcc-8-branch/target/ppc/build/install/powerpc-linux --disable-multilib --disable-bootstrap --enable-languages=c --with-pkgversion='Custom 2c79ff811dfcee1c' --target=powerpc-linux --enable-targets=all So I wonder if something in there is making the difference? I guess I'll just rewrite the change log to say "some toolchains". cheers