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.25-653-g4e61a6b


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  4e61a6be446026c327aa70cef221c9082bf0085d (commit)
      from  a9270e673dcc1ef1d2c2d96fa09d468c59883d88 (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=4e61a6be446026c327aa70cef221c9082bf0085d

commit 4e61a6be446026c327aa70cef221c9082bf0085d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jun 30 09:11:08 2017 -0700

    i386: Increase MALLOC_ALIGNMENT to 16 [BZ #21120]
    
    GCC 7 changed the definition of max_align_t on i386:
    
    https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=9b5c49ef97e63cc63f1ffa13baf771368105ebe2
    
    As a result, glibc malloc no longer returns memory blocks which are as
    aligned as max_align_t requires.
    
    This causes malloc/tst-malloc-thread-fail to fail with an error like this
    one:
    
    error: allocation function 0, size 144 not aligned to 16
    
    This patch moves the MALLOC_ALIGNMENT definition to <malloc-alignment.h>
    and increases the malloc alignment to 16 for i386.
    
    	[BZ #21120]
    	* malloc/malloc-internal.h (MALLOC_ALIGNMENT): Moved to ...
    	* sysdeps/generic/malloc-alignment.h: Here.  New file.
    	* sysdeps/i386/malloc-alignment.h: Likewise.
    	* sysdeps/generic/malloc-machine.h: Include <malloc-alignment.h>.

diff --git a/ChangeLog b/ChangeLog
index a0a744e..4919c9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2017-06-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #21120]
+	* malloc/malloc-internal.h (MALLOC_ALIGNMENT): Moved to ...
+	* sysdeps/generic/malloc-alignment.h: Here.  New file.
+	* sysdeps/i386/malloc-alignment.h: Likewise.
+	* sysdeps/generic/malloc-machine.h: Include <malloc-alignment.h>.
+
 2017-06-30  Florian Weimer  <fweimer@redhat.com>
 
 	* resolv/tst-resolv-res_init-skeleton.c (test_init_names): New
diff --git a/malloc/malloc-internal.h b/malloc/malloc-internal.h
index dbd801a..6a62717 100644
--- a/malloc/malloc-internal.h
+++ b/malloc/malloc-internal.h
@@ -58,16 +58,6 @@
 /* The corresponding word size.  */
 #define SIZE_SZ (sizeof (INTERNAL_SIZE_T))
 
-/* MALLOC_ALIGNMENT is the minimum alignment for malloc'ed chunks.  It
-   must be a power of two at least 2 * SIZE_SZ, even on machines for
-   which smaller alignments would suffice. It may be defined as larger
-   than this though. Note however that code and data structures are
-   optimized for the case of 8-byte alignment.  */
-#ifndef MALLOC_ALIGNMENT
-# define MALLOC_ALIGNMENT (2 * SIZE_SZ < __alignof__ (long double) \
-                           ? __alignof__ (long double) : 2 * SIZE_SZ)
-#endif
-
 /* The corresponding bit mask value.  */
 #define MALLOC_ALIGN_MASK (MALLOC_ALIGNMENT - 1)
 
diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/generic/malloc-alignment.h
similarity index 51%
copy from sysdeps/generic/malloc-machine.h
copy to sysdeps/generic/malloc-alignment.h
index 21aa9fc..efd03fa 100644
--- a/sysdeps/generic/malloc-machine.h
+++ b/sysdeps/generic/malloc-alignment.h
@@ -1,6 +1,5 @@
-/* Basic platform-independent macro definitions for mutexes,
-   thread-specific data and parameters for malloc.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+/* Define MALLOC_ALIGNMENT for malloc.  Generic version.
+   Copyright (C) 2017 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
@@ -17,25 +16,16 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GENERIC_MALLOC_MACHINE_H
-#define _GENERIC_MALLOC_MACHINE_H
+#ifndef _GENERIC_MALLOC_ALIGNMENT_H
+#define _GENERIC_MALLOC_ALIGNMENT_H
 
-#include <atomic.h>
+/* MALLOC_ALIGNMENT is the minimum alignment for malloc'ed chunks.  It
+   must be a power of two at least 2 * SIZE_SZ, even on machines for
+   which smaller alignments would suffice. It may be defined as larger
+   than this though. Note however that code and data structures are
+   optimized for the case of 8-byte alignment.  */
+#define MALLOC_ALIGNMENT (2 * SIZE_SZ < __alignof__ (long double) \
+			  ? __alignof__ (long double) : 2 * SIZE_SZ)
 
-#ifndef atomic_full_barrier
-# define atomic_full_barrier() __asm ("" ::: "memory")
-#endif
 
-#ifndef atomic_read_barrier
-# define atomic_read_barrier() atomic_full_barrier ()
-#endif
-
-#ifndef atomic_write_barrier
-# define atomic_write_barrier() atomic_full_barrier ()
-#endif
-
-#ifndef DEFAULT_TOP_PAD
-# define DEFAULT_TOP_PAD 131072
-#endif
-
-#endif /* !defined(_GENERIC_MALLOC_MACHINE_H) */
+#endif /* !defined(_GENERIC_MALLOC_ALIGNMENT_H) */
diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/generic/malloc-machine.h
index 21aa9fc..4491b90 100644
--- a/sysdeps/generic/malloc-machine.h
+++ b/sysdeps/generic/malloc-machine.h
@@ -21,6 +21,7 @@
 #define _GENERIC_MALLOC_MACHINE_H
 
 #include <atomic.h>
+#include <malloc-alignment.h>
 
 #ifndef atomic_full_barrier
 # define atomic_full_barrier() __asm ("" ::: "memory")
diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/i386/malloc-alignment.h
similarity index 53%
copy from sysdeps/generic/malloc-machine.h
copy to sysdeps/i386/malloc-alignment.h
index 21aa9fc..f72f7a8 100644
--- a/sysdeps/generic/malloc-machine.h
+++ b/sysdeps/i386/malloc-alignment.h
@@ -1,6 +1,5 @@
-/* Basic platform-independent macro definitions for mutexes,
-   thread-specific data and parameters for malloc.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+/* Define MALLOC_ALIGNMENT for malloc.  i386 version.
+   Copyright (C) 2017 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
@@ -17,25 +16,9 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GENERIC_MALLOC_MACHINE_H
-#define _GENERIC_MALLOC_MACHINE_H
+#ifndef _I386_MALLOC_ALIGNMENT_H
+#define _I386_MALLOC_ALIGNMENT_H
 
-#include <atomic.h>
+#define MALLOC_ALIGNMENT 16
 
-#ifndef atomic_full_barrier
-# define atomic_full_barrier() __asm ("" ::: "memory")
-#endif
-
-#ifndef atomic_read_barrier
-# define atomic_read_barrier() atomic_full_barrier ()
-#endif
-
-#ifndef atomic_write_barrier
-# define atomic_write_barrier() atomic_full_barrier ()
-#endif
-
-#ifndef DEFAULT_TOP_PAD
-# define DEFAULT_TOP_PAD 131072
-#endif
-
-#endif /* !defined(_GENERIC_MALLOC_MACHINE_H) */
+#endif /* !defined(_I386_MALLOC_ALIGNMENT_H) */

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

Summary of changes:
 ChangeLog                                          |    8 ++++++++
 malloc/malloc-internal.h                           |   10 ----------
 .../generic/malloc-alignment.h                     |   19 +++++++++++--------
 sysdeps/generic/malloc-machine.h                   |    1 +
 .../locale_t.h => sysdeps/i386/malloc-alignment.h  |   12 +++++-------
 5 files changed, 25 insertions(+), 25 deletions(-)
 copy bits/uio-ext.h => sysdeps/generic/malloc-alignment.h (55%)
 copy locale/bits/types/locale_t.h => sysdeps/i386/malloc-alignment.h (80%)


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]