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