First, make sure you're using a reasonably up to date snapshot. You're up to date if "nm /usr/lib/crtbegin.o" mentions __guard_local.
Next, apply the patch below to GCC, recompile, and install: $ cd /usr/src/gnu/gcc/gcc $ patch < /path/to/diff $ cd /usr/src/gnu/usr.bin/cc $ make depend && make && make install Finally, test that stuff still works after you build it. :) In particular, make sure that you can still do a full "make build" by following release(8). Please email me back with test reports. I'm interested in getting a variety of (ELF) architectures before committing this. Thanks! Index: targhooks.c =================================================================== RCS file: /cvs/src/gnu/gcc/gcc/targhooks.c,v retrieving revision 1.2 diff -u -p -r1.2 targhooks.c --- targhooks.c 9 May 2010 11:48:50 -0000 1.2 +++ targhooks.c 29 Aug 2012 18:05:48 -0000 @@ -372,7 +372,7 @@ default_stack_protect_guard (void) if (t == NULL) { - t = build_decl (VAR_DECL, get_identifier ("__guard"), ptr_type_node); + t = build_decl (VAR_DECL, get_identifier ("__guard_local"), ptr_type_node); TREE_STATIC (t) = 1; TREE_PUBLIC (t) = 1; DECL_EXTERNAL (t) = 1; @@ -380,6 +380,8 @@ default_stack_protect_guard (void) TREE_THIS_VOLATILE (t) = 1; DECL_ARTIFICIAL (t) = 1; DECL_IGNORED_P (t) = 1; + DECL_VISIBILITY (t) = VISIBILITY_HIDDEN; + DECL_VISIBILITY_SPECIFIED (t) = 1; stack_chk_guard_decl = t; }