patches/gcc/4.4.2/140-default-format-security.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:38:18 2010 +0200 (2010-09-12)
changeset 2120 48de021b3a9e
parent 1544 2228ea3f6b79
permissions -rw-r--r--
arch/mips: add experimental mips64 samples

Both toolchains were tested to successfully:
- _build_ busybox, giving respectively an n32 and an n64 binary
although it has not been run-tested.
- build linux-2.6.36-rc3 for Loongson, giving an n64 vmlinux
(which is expected, due to the way the kernel is built),
and the kernel properly boots!

Credits are due to Julien MOUTHINO (julm on freenode#uClibc) for
testing that the kernel boots on his hardware! Cheers! ;-)

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