yann@1625: sniped from Debian yann@1625: http://bugs.gentoo.org/289615 yann@1625: yann@1625: 2009-10-27 Aurelien Jarno yann@1625: yann@1625: * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory yann@1625: used later with MMAP_FIXED | MMAP_SHARED to cope with different yann@1625: alignment restrictions. yann@1625: yann@1625: diff -durN glibc-2.10.1.orig/locale/programs/locarchive.c glibc-2.10.1/locale/programs/locarchive.c yann@1625: --- glibc-2.10.1.orig/locale/programs/locarchive.c 2009-04-27 16:07:47.000000000 +0200 yann@1625: +++ glibc-2.10.1/locale/programs/locarchive.c 2009-11-13 00:50:01.000000000 +0100 yann@1625: @@ -134,7 +134,7 @@ yann@1625: size_t reserved = RESERVE_MMAP_SIZE; yann@1625: int xflags = 0; yann@1625: if (total < reserved yann@1625: - && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, yann@1625: + && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, yann@1625: -1, 0)) != MAP_FAILED)) yann@1625: xflags = MAP_FIXED; yann@1625: else yann@1625: @@ -396,7 +396,7 @@ yann@1625: size_t reserved = RESERVE_MMAP_SIZE; yann@1625: int xflags = 0; yann@1625: if (total < reserved yann@1625: - && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, yann@1625: + && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, yann@1625: -1, 0)) != MAP_FAILED)) yann@1625: xflags = MAP_FIXED; yann@1625: else yann@1625: @@ -614,7 +614,7 @@ yann@1625: int xflags = 0; yann@1625: void *p; yann@1625: if (st.st_size < reserved yann@1625: - && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, yann@1625: + && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, yann@1625: -1, 0)) != MAP_FAILED)) yann@1625: xflags = MAP_FIXED; yann@1625: else