Warn if user requests __FORTIFY_SOURCE but it is disabled
authorRoland Mc Grath <roland@hack.frob.com>
Tue, 8 May 2012 17:44:57 +0000 (19:44 +0200)
committerAndreas Jaeger <jaegerandi@gmail.com>
Tue, 8 May 2012 17:44:57 +0000 (19:44 +0200)
[BZ #13979]
        * include/features.h: Warn if user requests __FORTIFY_SOURCE
        checking but the checks are disabled for any reason.

ChangeLog
NEWS
include/features.h

index 6d7759d..cd90025 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-08  Roland Mc Grath  <roland@hack.frob.com>
+
+        [BZ #13979]
+        * include/features.h: Warn if user requests __FORTIFY_SOURCE
+        checking but the checks are disabled for any reason.
+
 2012-05-08  H.J. Lu  <hongjiu.lu@intel.com>
 
        * sysdeps/x86_64/dl-machine.h: Replace Elf64_XXX with ElfW(XXX)
diff --git a/NEWS b/NEWS
index b2f8a4e..ec7eb92 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,8 +23,8 @@ Version 2.16
   13854, 13871, 13872, 13873, 13879, 13883, 13884, 13885, 13886, 13892,
   13895, 13908, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917,
   13918, 13919, 13920, 13921, 13922, 13923, 13924, 13926, 13927, 13928,
-  13938, 13941, 13942, 13963, 13967, 13970, 13973, 14027, 14033, 14034,
-  14040, 14049, 14055, 14064
+  13938, 13941, 13942, 13963, 13967, 13970, 13973, 13979, 14027, 14033,
+  14034, 14040, 14049, 14055, 14064
 
 * ISO C11 support:
 
index c347555..c700871 100644 (file)
 # define __USE_REENTRANT       1
 #endif
 
-#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
-    && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
-# if _FORTIFY_SOURCE > 1
+#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0
+# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0
+#  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
+# elif !__GNUC_PREREQ (4, 1)
+#  warning _FORTIFY_SOURCE requires GCC 4.1 or later
+# elif _FORTIFY_SOURCE > 1
 #  define __USE_FORTIFY_LEVEL 2
 # else
 #  define __USE_FORTIFY_LEVEL 1
 # endif
-#else
+#endif
+#ifndef __USE_FORTIFY_LEVEL
 # define __USE_FORTIFY_LEVEL 0
 #endif