patches/glibc/ports-2.13/190-localedef-mmap.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Wed Dec 26 13:30:51 2012 +0100 (2012-12-26)
changeset 3145 598880dab0f3
permissions -rw-r--r--
libc/glibc: both glibc and eglibc have pkgversion and bugurl

Well, all eglibc version we support do, and latest glibc versions
we support do.

Not all glibc versions do, but older versions simply ignore the
unrecognised ./configure flags.

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