patches/glibc/ports-2.10.1/190-localedef-mmap.patch
author Arnaud Lacombe <lacombar@gmail.com>
Thu Aug 05 17:59:49 2010 +0200 (2010-08-05)
changeset 2067 477c7955e6b0
permissions -rw-r--r--
complibs/ppl: fix PPL build with GMP 5.x.x

From http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commitdiff;h=9c19bc2b318a35016e0189f9552c98910be37f53

Author: Roberto Bagnara <bagnara@cs.unipr.it>
Revision log: Added support for GMP 5.0.

Adapted manually to match and not having to re-generate the configure script.

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