[PATCH] powerpc: Fix stackprotector detection for non-glibc toolchains
Michael Ellerman
mpe at ellerman.id.au
Sat Oct 13 22:55:01 AEDT 2018
Christophe LEROY <christophe.leroy at c-s.fr> writes:
> Le 13/10/2018 à 00:58, Michael Ellerman a écrit :
>> 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
More information about the Linuxppc-dev
mailing list