From: Paolo 'Blaisorblade' Giarrusso GCC hardened introduces additional symbol refererences (for the canary and friends), also in modules - add weak export_symbols for them. We already tested that the weak declaration creates no problem on both GCC's providing the function definition and on GCC's which don't provide it. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton --- arch/um/os-Linux/user_syms.c | 7 +++++++ 1 files changed, 7 insertions(+) diff -puN arch/um/os-Linux/user_syms.c~uml-export-symbols-added-by-gcc-hardened arch/um/os-Linux/user_syms.c --- devel/arch/um/os-Linux/user_syms.c~uml-export-symbols-added-by-gcc-hardened 2006-04-30 13:23:24.000000000 -0700 +++ devel-akpm/arch/um/os-Linux/user_syms.c 2006-04-30 13:23:24.000000000 -0700 @@ -96,6 +96,13 @@ EXPORT_SYMBOL_PROTO(getuid); EXPORT_SYMBOL_PROTO(fsync); EXPORT_SYMBOL_PROTO(fdatasync); +/* Export symbols used by GCC for the stack protector. */ +extern void __stack_smash_handler(void *) __attribute__((weak)); +EXPORT_SYMBOL(__stack_smash_handler); + +extern long __guard __attribute__((weak)); +EXPORT_SYMBOL(__guard); + /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically _