patches/gcc/4.4.3/140-default-format-security.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/c-common.c gcc-4.4.0/gcc/c-common.c
     2 --- gcc-4.4.0.orig/gcc/c-common.c	2009-03-30 19:42:27.000000000 +0200
     3 +++ gcc-4.4.0/gcc/c-common.c	2009-05-27 21:38:08.000000000 +0200
     4 @@ -301,7 +301,7 @@
     5  /* Warn about format/argument anomalies in calls to formatted I/O functions
     6     (*printf, *scanf, strftime, strfmon, etc.).  */
     7  
     8 -int warn_format;
     9 +int warn_format = 1;
    10  
    11  /* Warn about using __null (as NULL in C++) as sentinel.  For code compiled
    12     with GCC this doesn't matter as __null is guaranteed to have the right
    13 diff -durN gcc-4.4.0.orig/gcc/c.opt gcc-4.4.0/gcc/c.opt
    14 --- gcc-4.4.0.orig/gcc/c.opt	2009-03-18 22:14:53.000000000 +0100
    15 +++ gcc-4.4.0/gcc/c.opt	2009-05-27 21:38:08.000000000 +0200
    16 @@ -236,7 +236,7 @@
    17  Warn about format strings that contain NUL bytes
    18  
    19  Wformat-security
    20 -C ObjC C++ ObjC++ Var(warn_format_security) Warning
    21 +C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning
    22  Warn about possible security problems with format functions
    23  
    24  Wformat-y2k
    25 diff -durN gcc-4.4.0.orig/gcc/doc/invoke.texi gcc-4.4.0/gcc/doc/invoke.texi
    26 --- gcc-4.4.0.orig/gcc/doc/invoke.texi	2009-04-01 09:18:47.000000000 +0200
    27 +++ gcc-4.4.0/gcc/doc/invoke.texi	2009-05-27 21:38:08.000000000 +0200
    28 @@ -2867,6 +2867,9 @@
    29  @option{-Wformat-nonliteral}, @option{-Wformat-security}, and
    30  @option{-Wformat=2} are available, but are not included in @option{-Wall}.
    31  
    32 +NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
    33 +To disable, use @option{-Wformat=0}.
    34 +
    35  @item -Wformat-y2k
    36  @opindex Wformat-y2k
    37  @opindex Wno-format-y2k
    38 @@ -2920,6 +2923,11 @@
    39  in future warnings may be added to @option{-Wformat-security} that are not
    40  included in @option{-Wformat-nonliteral}.)
    41  
    42 +NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
    43 +To disable, use @option{-Wno-format-security}, or disable all format warnings
    44 +with @option{-Wformat=0}.  To make format security warnings fatal, specify
    45 +@option{-Werror=format-security}.
    46 +
    47  @item -Wformat=2
    48  @opindex Wformat=2
    49  @opindex Wno-format=2