This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26-93-g1f14d0c


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  1f14d0c3ddce47f7021bbc0862fdb207891345dc (commit)
      from  fbdc1e3e8de7f49e439b6e274d3e7e07da78416e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1f14d0c3ddce47f7021bbc0862fdb207891345dc

commit 1f14d0c3ddce47f7021bbc0862fdb207891345dc
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Sun Aug 6 11:14:32 2017 -0300

    posix: Fix mmap for m68k and ia64 (BZ#21908)
    
    Default semantic for mmap2 syscall is to take the offset in 4096-byte
    units.  However m68k and ia64 mmap2 implementation take in the
    configured pageunit units and for both architecture it can be
    different values.
    
    This patch fixes the m68k runtime discover of mmap2 offset unit
    and adds the ia64 definition to find it at runtime.
    
    Checked the basic tst-mmap and tst-mmap-offset on m68k (the system
    is configured with 4k, so current code is already passing on this
    system) and a sanity check on x86_64-linux-gnu (which should not be
    affected by this change).  Sergei also states that ia64 loader now
    work correctly with this change.
    
    	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
    	Sergei Trofimovich  <slyfox@inbox.ru>
    
    	* sysdeps/unix/sysv/linux/m68k/mmap_internal.h (MMAP2_PAGE_SHIFT):
    	Rename to MMAP2_PAGE_UNIT.
    	* sysdeps/unix/sysv/linux/mmap.c: Include mmap_internal iff
    	__OFF_T_MATCHES_OFF64_T is not defined.
    	* sysdeps/unix/sysv/linux/mmap_internal.h (page_unit): Declare as
    	uint64_t.
    	(MMAP2_PAGE_UNIT) [MMAP2_PAGE_UNIT == -1]: Redefine to page_unit.
    	(page_unit) [MMAP2_PAGE_UNIT != -1]: Remove definition.

diff --git a/ChangeLog b/ChangeLog
index 2adb6bb..3de5a9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2017-08-14 Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+	    Sergei Trofimovich  <slyfox@inbox.ru>
+
+	[BZ #21908]
+	* sysdeps/unix/sysv/linux/m68k/mmap_internal.h (MMAP2_PAGE_SHIFT):
+	Rename to MMAP2_PAGE_UNIT.
+	* sysdeps/unix/sysv/linux/mmap.c: Include mmap_internal iff
+	__OFF_T_MATCHES_OFF64_T is not defined.
+	* sysdeps/unix/sysv/linux/mmap_internal.h (page_unit): Declare as
+	uint64_t.
+	(MMAP2_PAGE_UNIT) [MMAP2_PAGE_UNIT == -1]: Redefine to page_unit.
+	(page_unit) [MMAP2_PAGE_UNIT != -1]: Remove definition.
+
 2017-08-14  Florian Weimer  <fweimer@redhat.com>
 
 	i386: Do not set internal_function.
diff --git a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h b/sysdeps/unix/sysv/linux/ia64/mmap_internal.h
similarity index 70%
copy from sysdeps/unix/sysv/linux/m68k/mmap_internal.h
copy to sysdeps/unix/sysv/linux/ia64/mmap_internal.h
index bd8bd38..dbaaa3f 100644
--- a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/ia64/mmap_internal.h
@@ -1,4 +1,4 @@
-/* Common mmap definition for Linux implementation.  Linux/m68k version.
+/* Common mmap definition for Linux implementation.  Linux/ia64 version.
    Copyright (C) 2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -16,13 +16,13 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef MMAP_M68K_INTERNAL_LINUX_H
-#define MMAP_M68K_INTERNAL_LINUX_H
+#ifndef MMAP_IA64_INTERNAL_LINUX_H
+#define MMAP_IA64_INTERNAL_LINUX_H
 
-/* ColdFire and Sun 3 kernels have PAGE_SHIFT set to 13 and expect
-   mmap2 offset to be provided in 8K pages.  Determine the shift
-   dynamically with getpagesize.  */
-#define MMAP2_PAGE_SHIFT -1
+/* Linux allows PAGE_SHIFT in range of [12-16] and expect
+   mmap2 offset to be provided in based on the configured pagesize.
+   Determine the shift dynamically with getpagesize.  */
+#define MMAP2_PAGE_UNIT -1
 
 #include_next <mmap_internal.h>
 
diff --git a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
index bd8bd38..9fe9d91 100644
--- a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
@@ -22,7 +22,7 @@
 /* ColdFire and Sun 3 kernels have PAGE_SHIFT set to 13 and expect
    mmap2 offset to be provided in 8K pages.  Determine the shift
    dynamically with getpagesize.  */
-#define MMAP2_PAGE_SHIFT -1
+#define MMAP2_PAGE_UNIT -1
 
 #include_next <mmap_internal.h>
 
diff --git a/sysdeps/unix/sysv/linux/mmap.c b/sysdeps/unix/sysv/linux/mmap.c
index 2024bee..e9e68f0 100644
--- a/sysdeps/unix/sysv/linux/mmap.c
+++ b/sysdeps/unix/sysv/linux/mmap.c
@@ -21,9 +21,9 @@
 #include <sys/mman.h>
 #include <sysdep.h>
 #include <stdint.h>
-#include <mmap_internal.h>
 
 #ifndef __OFF_T_MATCHES_OFF64_T
+# include <mmap_internal.h>
 
 /* An architecture may override this.  */
 # ifndef MMAP_ADJUST_OFFSET
diff --git a/sysdeps/unix/sysv/linux/mmap_internal.h b/sysdeps/unix/sysv/linux/mmap_internal.h
index 499e389..47c0991 100644
--- a/sysdeps/unix/sysv/linux/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mmap_internal.h
@@ -27,13 +27,13 @@
 #endif
 
 #if MMAP2_PAGE_UNIT == -1
-static int page_unit;
-
+static uint64_t page_unit;
 # define MMAP_CHECK_PAGE_UNIT()			\
   if (page_unit == 0)				\
     page_unit = __getpagesize ();
+# undef MMAP2_PAGE_UNIT
+# define MMAP2_PAGE_UNIT page_unit
 #else
-# define page_unit MMAP2_PAGE_UNIT
 # define MMAP_CHECK_PAGE_UNIT()
 #endif
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   13 +++++++++++++
 .../unix/sysv/linux/{m68k => ia64}/mmap_internal.h |   14 +++++++-------
 sysdeps/unix/sysv/linux/m68k/mmap_internal.h       |    2 +-
 sysdeps/unix/sysv/linux/mmap.c                     |    2 +-
 sysdeps/unix/sysv/linux/mmap_internal.h            |    6 +++---
 5 files changed, 25 insertions(+), 12 deletions(-)
 copy sysdeps/unix/sysv/linux/{m68k => ia64}/mmap_internal.h (70%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]