summaryrefslogtreecommitdiffstats
path: root/main/gcc/10_all_default-fortify-source.patch
blob: e74d60cc2c37bde3bc96d6753843e4a3be344dda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Enable -D_FORTIFY_SOURCE=2 by default.

Original patch from:
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/gcc/4.9.2/gentoo/10_all_default-fortify-source.patch

--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -951,6 +951,9 @@ c_cpp_builtins (cpp_reader *pfile)
   builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
   builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
 
+  /* Fortify Source enabled by default w/optimization.  */
+  cpp_define (pfile, "_FORTIFY_SOURCE=((defined __OPTIMIZE__ && __OPTIMIZE__ > 0) ? 2 : 0)");
+
   /* Misc.  */
   if (flag_gnu89_inline)
     cpp_define (pfile, "__GNUC_GNU_INLINE__");
--- a/gcc/doc/gcc.info
+++ b/gcc/doc/gcc.info
@@ -6255,6 +6255,11 @@ find out the exact set of optimizations that are enabled at each level.
      Please note the warning under '-fgcse' about invoking '-O2' on
      programs that use computed gotos.
 
+     NOTE: In Alpine Linux, `-D_FORTIFY_SOURCE=2' is set by default, and is
+     activated when `-Os' or `-O1' or higher is used.  This enables additional
+     compile-time and run-time checks for several libc functions.  To disable,
+     specify either `-U_FORTIFY_SOURCE' or `-D_FORTIFY_SOURCE=0'.
+
 '-O3'
      Optimize yet more.  '-O3' turns on all optimizations specified by
      '-O2' and also turns on the '-finline-functions',