"Travis Tilley" <ttilley@xxxxxxxxx> writes: > i have stack smashing protection patched into glibc, and all binaries compiled with stack protector need it: > > ayanami root # readelf -s /bin/bash | grep guard > 1688: 0000000000000000 64 OBJECT GLOBAL DEFAULT UND __guard@xxxxxxxxxxx (5) > > when compiled with gcc 3.3.x, glibc works as expected: > > ayanami root # readelf -s /lib/libc.so.6 | grep guard > 695: 0000000000216680 64 OBJECT GLOBAL DEFAULT 29 __guard@@GLIBC_2.3.2 > 850: 000000000001d440 130 FUNC GLOBAL DEFAULT 11 __guard_setup@@GLIBC_2.3.2 > > gcc 3.4 nukes these symbols entirely. when i marked __guard and __guard_setup as __attribute__((used)), they became local instead of global... what am i doing wrong here? I think you should try gcc at gcc.gnu.org, or the glibc mailing list.