Le 12/01/2017 à 19:07, Segher Boessenkool a écrit :
On Thu, Jan 12, 2017 at 09:20:47AM -0600, Benjamin Herrenschmidt wrote:
On Thu, 2017-01-12 at 15:42 +0100, Christophe LEROY wrote:
The 4.6.3 uses __stack_chk_guard, while the 4.4.4 and 4.8.3 use
-28680(r2)

Is it dependent on the way GCC is built ? Then do we have a way to
know,
when we compile, which method GCC will use ?

See details below for each of the 3 GCC versions.

I think it depends if you built it along with glibc (so it can produce
userspace binaries) or not.

Right.  Tony's compilers are built using a (modified version of) buildall,
and buildall goes out of its way to build without libc whatsoever, even
if the configuration (powerpc64-linux, for example) expects one.

Which leads to TARGET_LIBC_PROVIDES_SSP being undefined (it would normally
be true for glibc >= 2.4), and that is all.  Mystery solved.  Thanks!


Is there a way to know during compilation how the compiler will behave, in order to select the correct method ?

I have drafted a new approach in the kernel that uses -0x7008(r2) instead of the global __stack_chk_guard, but how can I select the proper approach during kernel compilation in line with the selected GCC ?

Christophe

Reply via email to