This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ssp check
- From: "Peter S. Mazinger" <ps dot m at gmx dot net>
- To: gcc at gcc dot gnu dot org
- Date: Sat, 21 Jan 2006 13:20:38 +0100 (CET)
- Subject: ssp check
Hello!
The ssp check (gcc_cv_libc_provides_ssp) is glibc centric and the
ssp implementation itself assumes that if ssp is provided by libc/ld
combo, then the guard is for sure set up in TLS.
What would be an acceptable way to provide support for non-glibc/non-TLS?
1. provide 2 configure options, one that omits the above mentioned check
and the other that disables ssp in TLS
(GUARD_IS_NOT_IN_TLS) the latter being a guard in linux*.h, like
-#ifdef TARGET_LIBC_PROVIDES_SSP
+#if defined TARGET_LIBC_PROVIDES_SSP && !defined GUARD_IS_NOT_IN_TLS
#define TARGET_THREAD_SSP_OFFSET blah
#endif
2. replace the features.h grep w/ (or similar) with compiling a dummy test
file, get the used ld.so and libc.so from there and do something like
(works only for non-cross builds)
(nm -D --defined-only ld.so | grep __stack_chk_guard) && (nm -D
--defined-only libc.so.x | grep __stack_chk_fail)
This would cover the non-glibc version.
I have no idea how to check in TLS if __stack_chk_guard is there.
Thanks, Peter
PS: please CC to me.
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2