sniped from Debian
http://bugs.gentoo.org/289615

2009-10-27  Aurelien Jarno  <aurelien@aurel32.net>

	* locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
	used later with MMAP_FIXED | MMAP_SHARED to cope with different
	alignment restrictions.

diff -durN glibc-2.13.orig/locale/programs/locarchive.c glibc-2.13/locale/programs/locarchive.c
--- glibc-2.13.orig/locale/programs/locarchive.c	2009-04-27 16:07:47.000000000 +0200
+++ glibc-2.13/locale/programs/locarchive.c	2009-11-13 00:50:01.000000000 +0100
@@ -134,7 +134,7 @@
   size_t reserved = RESERVE_MMAP_SIZE;
   int xflags = 0;
   if (total < reserved
-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
+      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
 		       -1, 0)) != MAP_FAILED))
     xflags = MAP_FIXED;
   else
@@ -396,7 +396,7 @@
   size_t reserved = RESERVE_MMAP_SIZE;
   int xflags = 0;
   if (total < reserved
-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
+      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
 		       -1, 0)) != MAP_FAILED))
     xflags = MAP_FIXED;
   else
@@ -614,7 +614,7 @@
   int xflags = 0;
   void *p;
   if (st.st_size < reserved
-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
+      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
 		       -1, 0)) != MAP_FAILED))
     xflags = MAP_FIXED;
   else
