patches/binutils/2.16.1/110-psignal.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Feb 21 23:39:46 2011 +0100 (2011-02-21)
changeset 2312 8b9938edd3d8
parent 402 197e1b49586e
permissions -rw-r--r--
libc/glibc: add fortify option

By default, recent versions of glibc and eglibc will build some
functions that take format strings (eg. printf, syslog...) with
run-time checks against some format string attacks. This is
called a fortified build.

Unfortunately, this fails somehow while building the instrumented
version of syslog, with some kind of circular dependency...

Disable fortified builds by default, and hide the enabling option
behind EXPERIMENTAL for daring users...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Make psignal prototype in libiberty match that in glibc.
     2 
     3 Fixes:
     4 
     5 gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c: In function `psignal':
     6 gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:563: argument `signo' doesn't match prototype
     7 /usr/include/signal.h:131: prototype declaration
     8 gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:563: argument `message' doesn't match prototype
     9 /usr/include/signal.h:131: prototype declaration
    10 gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:568: warning: comparison between signed and unsigned
    11 mprotect... make[1]: *** [strsignal.o] Error 1
    12 make[1]: Leaving directory `/export/hda3/dkegel/queue/jobdir.produser_cpsm17/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/build-binutils/libiberty'
    13 make: *** [all-libiberty] Error 2
    14 
    15 when building on red hat 7.1
    16 though it's a bit of a mystery why libiberty's psignal is being compiled at
    17 all, since red hat 7.1's glibc supports psignal (hence the error message)
    18 
    19 --- binutils-2.15/libiberty/strsignal.c.old	2005-04-18 13:57:40.000000000 -0700
    20 +++ binutils-2.15/libiberty/strsignal.c	2005-04-18 13:59:09.000000000 -0700
    21 @@ -544,7 +544,7 @@
    22  
    23  /*
    24  
    25 -@deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message})
    26 +@deftypefn Supplemental void psignal (int @var{signo}, const char *@var{message})
    27  
    28  Print @var{message} to the standard error, followed by a colon,
    29  followed by the description of the signal specified by @var{signo},
    30 @@ -557,9 +557,7 @@
    31  #ifndef HAVE_PSIGNAL
    32  
    33  void
    34 -psignal (signo, message)
    35 -  unsigned signo;
    36 -  char *message;
    37 +psignal (int signo, const char *message)
    38  {
    39    if (signal_names == NULL)
    40      {