patches/glibc/2.7/160-build_wcs_upper_buffer.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 744 4bf8448536d5
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 Matthias Kaehlcke <matthias at kaehlcke dot net> writes:
     2 
     3 A compilation of an ARM toolchain with glibc 2.7 using crosstool-ng
     4 failed with a gcc error in glibc-2.7/posix/regex_internal.c, more
     5 concretly in the function build_wcs_upper_buffer(). The return type of
     6 the function prototype in regex_internal.h doesn't correspond with the
     7 return type of this function in regex_internal.c.
     8 
     9 The attached patch corrects the return type of the function prototype
    10 in regex_internal.h
    11 
    12 --- glibc-2.7/posix/regex_internal.h.org	2008-05-30 11:16:01.000000000 +0200
    13 +++ glibc-2.7/posix/regex_internal.h	2008-05-30 11:16:35.000000000 +0200
    14 @@ -391,7 +391,7 @@
    15       internal_function;
    16  # ifdef RE_ENABLE_I18N
    17  static void build_wcs_buffer (re_string_t *pstr) internal_function;
    18 -static int build_wcs_upper_buffer (re_string_t *pstr) internal_function;
    19 +static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr) internal_function;
    20  # endif /* RE_ENABLE_I18N */
    21  static void build_upper_buffer (re_string_t *pstr) internal_function;
    22  static void re_string_translate_buffer (re_string_t *pstr) internal_function;