bootx_init.c:88: undefined reference to `__stack_chk_fail_local'
Segher Boessenkool
segher at kernel.crashing.org
Wed Jan 4 19:40:03 AEDT 2017
On Wed, Jan 04, 2017 at 09:23:47AM +0100, Christophe LEROY wrote:
> >The way gcc implements the stack protector has some serious
> >incompatibilities with the way the Linux kernel uses r13, I wouldn't
> >even try until we sort that out...
>
> Yes indeed, it looks like recent versions of GCC don't use anymore the
> global __stack_chk_guard variable but a hard coded offset relative to r2
> or r13:
>
> On 32 bits, it uses -7008(r2)
> On 64 bits, it uses -7010(r13)
This is https://gcc.gnu.org/PR78875 . It should have been this way since
forever; if it really wasn't, it is unclear why not.
Either way, we (i.e. GCC) will add some compiler option to make this work
for the kernel. It will be part of 7 and we'll probably backport it to
6.4 and 5.5 .
For bootx_init.c, this probably should be compiled with -fno-stack-protector
just like all the other boot time stuff.
Segher
More information about the Linuxppc-dev
mailing list