patches/glibc/ports-2.12.1/190-localedef-mmap.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:46:47 2011 +0200 (2011-07-17)
changeset 2892 aa934ec4b4ee
permissions -rw-r--r--
cc/gcc: add the backend/frontend infra for final gcc

Currently, we issue the bare-metal compiler from the pass_1 & pass_2
core compilers, because the final gcc breaks while doing so.

This implies we have to build some libces during the start_files step,
instead of the standard libc step. This is the case for newlib.

By adding a backend/frontend infra to the final gcc, we can abstract
what backend to call: the standard backend for non-bare-metal gcc,
and the core backend for bare-metal.

This patch is just an no-op, it just adds the final backend and
frontend without changing the way bare-metal is built, to come in a
subsequent patch.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 sniped from Debian
     2 http://bugs.gentoo.org/289615
     3 
     4 2009-10-27  Aurelien Jarno  <aurelien@aurel32.net>
     5 
     6 	* locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
     7 	used later with MMAP_FIXED | MMAP_SHARED to cope with different
     8 	alignment restrictions.
     9 
    10 diff -durN glibc-2.12.1.orig/locale/programs/locarchive.c glibc-2.12.1/locale/programs/locarchive.c
    11 --- glibc-2.12.1.orig/locale/programs/locarchive.c	2009-04-27 16:07:47.000000000 +0200
    12 +++ glibc-2.12.1/locale/programs/locarchive.c	2009-11-13 00:50:01.000000000 +0100
    13 @@ -134,7 +134,7 @@
    14    size_t reserved = RESERVE_MMAP_SIZE;
    15    int xflags = 0;
    16    if (total < reserved
    17 -      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
    18 +      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
    19  		       -1, 0)) != MAP_FAILED))
    20      xflags = MAP_FIXED;
    21    else
    22 @@ -396,7 +396,7 @@
    23    size_t reserved = RESERVE_MMAP_SIZE;
    24    int xflags = 0;
    25    if (total < reserved
    26 -      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
    27 +      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
    28  		       -1, 0)) != MAP_FAILED))
    29      xflags = MAP_FIXED;
    30    else
    31 @@ -614,7 +614,7 @@
    32    int xflags = 0;
    33    void *p;
    34    if (st.st_size < reserved
    35 -      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
    36 +      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
    37  		       -1, 0)) != MAP_FAILED))
    38      xflags = MAP_FIXED;
    39    else