patches/gcc/4.4.2/150-default-fortify-source.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Feb 13 21:47:25 2012 +0100 (2012-02-13)
changeset 2883 cea814c9932a
parent 1544 2228ea3f6b79
permissions -rw-r--r--
libc/glibc: do not consume parameters when parsing them

Currently, there are two constructs used to parse arguments in
glibc backends, one that consumes args as they are parsed, and
one that does not.

Always use the construct that does not eat args as they are parsed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 diff -durN gcc-4.4.0.orig/gcc/doc/invoke.texi gcc-4.4.0/gcc/doc/invoke.texi
     2 --- gcc-4.4.0.orig/gcc/doc/invoke.texi	2009-05-27 21:38:11.000000000 +0200
     3 +++ gcc-4.4.0/gcc/doc/invoke.texi	2009-05-27 21:38:11.000000000 +0200
     4 @@ -5411,6 +5411,11 @@
     5  Please note the warning under @option{-fgcse} about
     6  invoking @option{-O2} on programs that use computed gotos.
     7  
     8 +NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is
     9 +activated when @option{-O} is set to 2 or higher.  This enables additional
    10 +compile-time and run-time checks for several libc functions.  To disable,
    11 +specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}.
    12 +
    13  @item -O3
    14  @opindex O3
    15  Optimize yet more.  @option{-O3} turns on all optimizations specified
    16 diff -durN gcc-4.4.0.orig/gcc/gcc.c gcc-4.4.0/gcc/gcc.c
    17 --- gcc-4.4.0.orig/gcc/gcc.c	2009-03-17 22:25:59.000000000 +0100
    18 +++ gcc-4.4.0/gcc/gcc.c	2009-05-27 21:38:11.000000000 +0200
    19 @@ -807,6 +807,7 @@
    20   %{H} %C %{D*&U*&A*} %{i*} %Z %i\
    21   %{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
    22   %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
    23 + %{!D_FORTIFY_SOURCE:%{!D_FORTIFY_SOURCE=*:%{!U_FORTIFY_SOURCE:-D_FORTIFY_SOURCE=2}}}\
    24   %{E|M|MM:%W{o*}}";
    25  
    26  /* This contains cpp options which are common with cc1_options and are passed