This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.22-173-gf6b71ea
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 26 Aug 2015 15:17:13 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.22-173-gf6b71ea
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 f6b71eada3cfbaa13dd4019978e9bd29055bad9f (commit)
via b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc (commit)
from 38d22f9f48a84b441c5777aff103f5b980243b5f (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=f6b71eada3cfbaa13dd4019978e9bd29055bad9f
commit f6b71eada3cfbaa13dd4019978e9bd29055bad9f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Aug 26 08:00:47 2015 -0700
Replace BZERO_P/PIC with USE_AS_BZERO/SHARED
Replace BZERO_P with USE_AS_BZERO in i586/i686 memset.S to support i386
multi-arch memset. Also we should check SHARED not PIC for libc.so
since libc.a may be compiled with PIC.
* sysdeps/i386/i586/bzero.S (USE_AS_BZERO): New.
* sysdeps/i386/i686/bzero.S (USE_AS_BZERO): Likewise.
* sysdeps/i386/i586/memset.S (BZERO_P): Removed.
Check USE_AS_BZERO/SHARED instead of BZERO_P/PIC.
(__memset_zero_constant_len_parameter): New.
* sysdeps/i386/i686/memset.S (BZERO_P): Removed.
Check USE_AS_BZERO/SHARED instead of BZERO_P/PIC.
(__memset_zero_constant_len_parameter): Don't define if
__memset_chk or USE_AS_BZERO are defined.
diff --git a/ChangeLog b/ChangeLog
index a7ff93e..5d69000 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2015-08-26 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/i386/i586/bzero.S (USE_AS_BZERO): New.
+ * sysdeps/i386/i686/bzero.S (USE_AS_BZERO): Likewise.
+ * sysdeps/i386/i586/memset.S (BZERO_P): Removed.
+ Check USE_AS_BZERO/SHARED instead of BZERO_P/PIC.
+ (__memset_zero_constant_len_parameter): New.
+ * sysdeps/i386/i686/memset.S (BZERO_P): Removed.
+ Check USE_AS_BZERO/SHARED instead of BZERO_P/PIC.
+ (__memset_zero_constant_len_parameter): Don't define if
+ __memset_chk or USE_AS_BZERO are defined.
+
+2015-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/i386/i586/memcpy.S (MEMPCPY_P): Removed.
Check USE_AS_MEMPCPY/SHARED instead of MEMPCPY_P/PIC.
* sysdeps/i386/i586/mempcpy.S (USE_AS_MEMPCPY): New.
diff --git a/sysdeps/i386/i586/bzero.S b/sysdeps/i386/i586/bzero.S
index 84d2f70..2a10671 100644
--- a/sysdeps/i386/i586/bzero.S
+++ b/sysdeps/i386/i586/bzero.S
@@ -1,3 +1,4 @@
+#define USE_AS_BZERO
#define memset __bzero
#include <sysdeps/i386/i586/memset.S>
weak_alias (__bzero, bzero)
diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
index bc26501..82f7878 100644
--- a/sysdeps/i386/i586/memset.S
+++ b/sysdeps/i386/i586/memset.S
@@ -21,13 +21,10 @@
#include <sysdep.h>
#include "asm-syntax.h"
-/* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
-#define BZERO_P (defined memset)
-
#define PARMS 4+4 /* space for 1 saved reg */
#define RTN PARMS
#define DEST RTN
-#if BZERO_P
+#ifdef USE_AS_BZERO
# define LEN DEST+4
#else
# define CHR DEST+4
@@ -35,7 +32,7 @@
#endif
.text
-#if defined PIC && IS_IN (libc) && !BZERO_P
+#if defined SHARED && IS_IN (libc) && !defined USE_AS_BZERO
ENTRY (__memset_chk)
movl 12(%esp), %eax
cmpl %eax, 16(%esp)
@@ -50,7 +47,7 @@ ENTRY (memset)
movl DEST(%esp), %edi
cfi_rel_offset (edi, 0)
movl LEN(%esp), %edx
-#if BZERO_P
+#ifdef USE_AS_BZERO
xorl %eax, %eax /* we fill with 0 */
#else
movb CHR(%esp), %al
@@ -104,7 +101,7 @@ L(2): shrl $2, %ecx /* convert byte count to longword count */
rep
stosb
-#if !BZERO_P
+#ifndef USE_AS_BZERO
/* Load result (only if used as memset). */
movl DEST(%esp), %eax /* start address of destination is result */
#endif
@@ -112,10 +109,13 @@ L(2): shrl $2, %ecx /* convert byte count to longword count */
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
-#if BZERO_P
- ret
-#else
ret
-#endif
END (memset)
libc_hidden_builtin_def (memset)
+
+#if defined SHARED && IS_IN (libc) && !defined __memset_chk \
+ && !defined USE_AS_BZERO
+strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
+ .section .gnu.warning.__memset_zero_constant_len_parameter
+ .string "memset used with constant zero length parameter; this could be due to transposed parameters"
+#endif
diff --git a/sysdeps/i386/i686/bzero.S b/sysdeps/i386/i686/bzero.S
index 34b0faa..c7898f1 100644
--- a/sysdeps/i386/i686/bzero.S
+++ b/sysdeps/i386/i686/bzero.S
@@ -1,3 +1,4 @@
+#define USE_AS_BZERO
#define memset __bzero
#include <sysdeps/i386/i686/memset.S>
weak_alias (__bzero, bzero)
diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
index b6dbf2a..86c3010 100644
--- a/sysdeps/i386/i686/memset.S
+++ b/sysdeps/i386/i686/memset.S
@@ -21,11 +21,8 @@
#include <sysdep.h>
#include "asm-syntax.h"
-/* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
-#define BZERO_P (defined memset)
-
#define PARMS 4+4 /* space for 1 saved reg */
-#if BZERO_P
+#ifdef USE_AS_BZERO
# define DEST PARMS
# define LEN DEST+4
#else
@@ -36,7 +33,7 @@
#endif
.text
-#if defined PIC && IS_IN (libc) && !BZERO_P
+#if defined SHARED && IS_IN (libc) && !defined USE_AS_BZERO
ENTRY_CHK (__memset_chk)
movl 12(%esp), %eax
cmpl %eax, 16(%esp)
@@ -50,7 +47,7 @@ ENTRY (memset)
cfi_adjust_cfa_offset (4)
movl DEST(%esp), %edx
movl LEN(%esp), %ecx
-#if BZERO_P
+#ifdef USE_AS_BZERO
xorl %eax, %eax /* fill with 0 */
#else
movzbl CHR(%esp), %eax
@@ -74,7 +71,7 @@ ENTRY (memset)
2: movl %ecx, %edx
shrl $2, %ecx
andl $3, %edx
-#if !BZERO_P
+#ifndef USE_AS_BZERO
imul $0x01010101, %eax
#endif
rep
@@ -84,22 +81,19 @@ ENTRY (memset)
stosb
1:
-#if !BZERO_P
+#ifndef USE_AS_BZERO
movl DEST(%esp), %eax /* start address of destination is result */
#endif
popl %edi
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
-#if BZERO_P
- ret
-#else
ret
-#endif
END (memset)
libc_hidden_builtin_def (memset)
-#if defined PIC && IS_IN (libc) && !BZERO_P
+#if defined SHARED && IS_IN (libc) && !defined __memset_chk \
+ && !defined USE_AS_BZERO
strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
.section .gnu.warning.__memset_zero_constant_len_parameter
.string "memset used with constant zero length parameter; this could be due to transposed parameters"
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc
commit b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Aug 26 07:59:15 2015 -0700
Replace MEMPCPY_P/PIC with USE_AS_MEMPCPY/SHARED
Replace MEMPCPY_P with USE_AS_MEMPCPY in i586 memcpy.S to support i386
multi-arch memcpy. Also we should check SHARED not PIC for libc.so
since libc.a may be compiled with PIC.
* sysdeps/i386/i586/memcpy.S (MEMPCPY_P): Removed.
Check USE_AS_MEMPCPY/SHARED instead of MEMPCPY_P/PIC.
* sysdeps/i386/i586/mempcpy.S (USE_AS_MEMPCPY): New.
diff --git a/ChangeLog b/ChangeLog
index 478a009..a7ff93e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2015-08-26 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/i386/i586/memcpy.S (MEMPCPY_P): Removed.
+ Check USE_AS_MEMPCPY/SHARED instead of MEMPCPY_P/PIC.
+ * sysdeps/i386/i586/mempcpy.S (USE_AS_MEMPCPY): New.
+
+2015-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/x86/Makefile [$(subdir) == elf] (CFLAGS-.os,
tests-special, $(objpfx)tst-ld-sse-use.out): Moved to ...
* sysdeps/i386/Makefile [$(subdir) == elf] (CFLAGS-.os,
diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 9797365..e0ac692 100644
--- a/sysdeps/i386/i586/memcpy.S
+++ b/sysdeps/i386/i586/memcpy.S
@@ -20,11 +20,6 @@
#include <sysdep.h>
#include "asm-syntax.h"
-/* BEWARE: `#ifdef memcpy' means that memcpy is redefined as `mempcpy',
- and the return value is the byte after the last one copied in
- the destination. */
-#define MEMPCPY_P (defined memcpy)
-
#define PARMS 4+8 /* space for 2 saved regs */
#define RTN PARMS
#define DEST RTN
@@ -105,13 +100,13 @@ L(3): movl 28(%edi), %edx
/* Correct extra loop counter modification. */
L(2): addl $32, %ecx
-#if !MEMPCPY_P
+#ifndef USE_AS_MEMPCPY
movl DEST(%esp), %eax
#endif
L(1): rep; movsb
-#if MEMPCPY_P
+#ifdef USE_AS_MEMPCPY
movl %edi, %eax
#endif
@@ -124,6 +119,6 @@ L(1): rep; movsb
ret
END (memcpy)
-#if !MEMPCPY_P
+#ifndef USE_AS_MEMPCPY
libc_hidden_builtin_def (memcpy)
#endif
diff --git a/sysdeps/i386/i586/mempcpy.S b/sysdeps/i386/i586/mempcpy.S
index afc112d..720a4c0 100644
--- a/sysdeps/i386/i586/mempcpy.S
+++ b/sysdeps/i386/i586/mempcpy.S
@@ -1,3 +1,4 @@
+#define USE_AS_MEMPCPY
#define memcpy __mempcpy
#define __memcpy_chk __mempcpy_chk
#include <sysdeps/i386/i586/memcpy.S>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 18 ++++++++++++++++++
sysdeps/i386/i586/bzero.S | 1 +
sysdeps/i386/i586/memcpy.S | 11 +++--------
sysdeps/i386/i586/mempcpy.S | 1 +
sysdeps/i386/i586/memset.S | 22 +++++++++++-----------
sysdeps/i386/i686/bzero.S | 1 +
sysdeps/i386/i686/memset.S | 20 +++++++-------------
7 files changed, 42 insertions(+), 32 deletions(-)
hooks/post-receive
--
GNU C Library master sources