about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-07-19 15:35:50 +0000
committerUlrich Drepper <drepper@redhat.com>2005-07-19 15:35:50 +0000
commit401a9ec9cad6fe21a6471f926152dbaff64d2212 (patch)
treeda140fef4d5b44878ceea97383512f64c25818a3
parentbe686f1876c5ebbf95801b270522066bfebb0905 (diff)
downloadglibc-401a9ec9cad6fe21a6471f926152dbaff64d2212.tar.gz
glibc-401a9ec9cad6fe21a6471f926152dbaff64d2212.tar.xz
glibc-401a9ec9cad6fe21a6471f926152dbaff64d2212.zip
* configure.in: Check for -fstack-protector gcc option.
	* config.make.in (have-ssp): Add template.
	* nscd/Makefile (nscd-cflags): Add -fstack-protector if supported.

	* nscd/nscd.c (main): Don't ignore result of chdir call.
-rw-r--r--ChangeLog8
-rw-r--r--config.make.in1
-rw-r--r--configure.in15
-rw-r--r--nscd/Makefile3
4 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a3edf5d787..72659d6fbf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-07-19  Ulrich Drepper  <drepper@redhat.com>
+
+	* configure.in: Check for -fstack-protector gcc option.
+	* config.make.in (have-ssp): Add template.
+	* nscd/Makefile (nscd-cflags): Add -fstack-protector if supported.
+
+	* nscd/nscd.c (main): Don't ignore result of chdir call.
+
 2005-07-18  Roland McGrath  <roland@redhat.com>
 
 	[BZ #869]
diff --git a/config.make.in b/config.make.in
index 1ab4bfbfc4..3687507a17 100644
--- a/config.make.in
+++ b/config.make.in
@@ -58,6 +58,7 @@ have-cpp-asm-debuginfo = @libc_cv_cpp_asm_debuginfo@
 enable-check-abi = @enable_check_abi@
 have-forced-unwind = @libc_cv_forced_unwind@
 have-fpie = @libc_cv_fpie@
+have-ssp = @libc_cv_ssp@
 have-selinux = @have_selinux@
 have-libaudit = @have_libaudit@
 have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
diff --git a/configure.in b/configure.in
index 4396891db5..21756e00a8 100644
--- a/configure.in
+++ b/configure.in
@@ -1508,6 +1508,21 @@ if test $libc_cv_fno_unit_at_a_time = yes; then
 fi
 AC_SUBST(fno_unit_at_a_time)
 
+AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
+cat > conftest.c <<EOF
+int foo;
+main () { return 0;}
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fstack-protector
+			    -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
+then
+  libc_cv_ssp=yes
+else
+  libc_cv_ssp=no
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_ssp)
+
 if test $elf != yes; then
   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
 		 [AC_TRY_COMPILE(, [asm (".section .init");
diff --git a/nscd/Makefile b/nscd/Makefile
index 4b6f2967a5..5a2d29a0a5 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -88,6 +88,9 @@ nscd-cflags = -DIS_IN_nscd=1 -D_FORTIFY_SOURCE=2
 ifeq (yesyes,$(have-fpie)$(build-shared))
 nscd-cflags += -fpie
 endif
+ifeq (yes,$(have-ssp))
+nscd-cflags += -fstack-protector
+endif
 
 CFLAGS-nscd.c += $(nscd-cflags)
 CFLAGS-connections.c += $(nscd-cflags)