diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-08-26 07:59:15 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-08-26 07:59:32 -0700 |
commit | b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc (patch) | |
tree | 8c131ae17edab03b1a093b04039f1dd4ab9202ad | |
parent | 38d22f9f48a84b441c5777aff103f5b980243b5f (diff) | |
download | glibc-b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc.tar.gz glibc-b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc.tar.xz glibc-b6e19c4bdcb6b7093a3913ce26f6ec50b9a6e0dc.zip |
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.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/i386/i586/memcpy.S | 11 | ||||
-rw-r--r-- | sysdeps/i386/i586/mempcpy.S | 1 |
3 files changed, 10 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index 478a009657..a7ff93e3d7 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 97973658b6..e0ac6928f1 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 afc112d9d7..720a4c0923 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> |