On Sat, 7 May 2011, Christos Zoulas wrote: > Add a no_stack_protector function attribute to localize the effect > of disabling stack protection on a function-by-function level, as > opposed to per source file.
how should we enable use of this, is the patch below ok or should it have additional restrictions? (kernel scope only? __SSP__/__SSP_ALL__?) also, anybody with FSF privileges prepared to push the gcc addition upstream? iain Index: cdefs.h =================================================================== RCS file: /cvsroot/src/sys/sys/cdefs.h,v retrieving revision 1.84 diff -u -p -r1.84 cdefs.h --- cdefs.h 19 Feb 2011 02:21:21 -0000 1.84 +++ cdefs.h 13 May 2011 07:56:42 -0000 @@ -266,6 +266,12 @@ #define __BEGIN_DECLS __BEGIN_PUBLIC_DECLS #define __END_DECLS __END_PUBLIC_DECLS +#if __GNUC_PREREQ__(4, 1) +#define __nossp __attribute__((__no_stack_protector__)) +#else +#define __nossp /* nothing */ +#endif + /* * Non-static C99 inline functions are optional bodies. They don't * create global symbols if not used, but can be replaced if desirable.