about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-05-23 12:42:28 -0400
committerMike Frysinger <vapier@gentoo.org>2013-06-24 20:26:58 -0400
commit17db6e8d6b12f55e312fcab46faf5d332c806fb6 (patch)
treeab95a1c4fdeda9d12e21260604045fd4518afb5a /sysdeps/generic
parentd605071ebf1fbbba5998a349540d4ad4e667f65e (diff)
downloadglibc-17db6e8d6b12f55e312fcab46faf5d332c806fb6.tar.gz
glibc-17db6e8d6b12f55e312fcab46faf5d332c806fb6.tar.xz
glibc-17db6e8d6b12f55e312fcab46faf5d332c806fb6.zip
[BZ #10283] localedef: align fixed maps to SHMLBA
Many Linux arches require fixed mmaps to be aligned higher than pagesize,
so use the SHMLBA define as it represents this quantity exactly.

This fixes spurious errors seen on those arches like:
cannot map archive header: Invalid argument

URL: http://sourceware.org/bugzilla/show_bug.cgi?id=10283
Reported-by: CHIKAMA Masaki <masaki.chikama@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/libc-mmap.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/sysdeps/generic/libc-mmap.h b/sysdeps/generic/libc-mmap.h
new file mode 100644
index 0000000000..0ddd20d42a
--- /dev/null
+++ b/sysdeps/generic/libc-mmap.h
@@ -0,0 +1,26 @@
+/* Internal logic for dealing with mmap quirks.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBC_MMAP_H
+#define _LIBC_MMAP_H 1
+
+/* Using MAP_FIXED with mmap sometimes requires larger alignment.  */
+#include <sys/shm.h>
+#define MAP_FIXED_ALIGNMENT SHMLBA
+
+#endif