patches/gcc/4.4.3/150-default-fortify-source.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 28 01:05:18 2011 +0200 (2011-03-28)
changeset 2362 0888065f8c4d
parent 1611 e2516bba8fe5
permissions -rw-r--r--
cc/gcc: cleanup the _or_later logic

So far, we've had a version always select appropriate _or_later option,
which in turn would select all previous _or_later options.

Because the dependencies on companion libs were cumulative, that was
working OK. But the upcoming 4.6 will no longer depend on libelf, so
we can't keep the cumulative scheme we've been using so far.

Have each release family select the corresponding dependencies, instead
of relying on selecting previous _or_later.

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