+2011-03-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #12518]
+ * sysdeps/x86_64/Versions: Add memcpy to GLIBC_2.14.
+ * sysdeps/x86_64/memcpy.S: Provide GLIBC_2_14 memcpy.
+ * sysdeps/x86_64/memmove.c: New file.
+ * sysdeps/x86_64/multiarch/memcpy.S: Include <shlib-compat.h>.
+ (memcpy): Renamed to ...
+ (__new_memcpy): This.
+ (memcpy): Provide GLIBC_2_14 memcpy.
+ * sysdeps/x86_64/multiarch/memmove.c: Include <shlib-compat.h>.
+ (memcpy): Provide GLIBC_2_2_5 memcpy.
+
2011-04-01 Ulrich Drepper <drepper@gmail.com>
[BZ #12631]
* The following bugs are resolved with this release:
- 11724, 12445, 12454, 12460, 12469, 12489, 12509, 12510, 12583, 12587, 12597,
- 12631
+ 11724, 12445, 12454, 12460, 12469, 12489, 12509, 12510, 12518, 12583, 12587,
+ 12597, 12631
\f
Version 2.13
+libc {
+ GLIBC_2.14 {
+ memcpy;
+ }
+}
libm {
GLIBC_2.1 {
# A generic bug got this omitted from other configurations' version
# define RETVAL (0)
#else
# define RETVAL (-8)
+# if defined SHARED && !defined USE_MULTIARCH && !defined NOT_IN_libc
+# define memcpy __memcpy
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ .globl __GI_memcpy; __GI_memcpy = __memcpy
+# endif
#endif
#define SAVE0 (RETVAL - 8)
#define SAVE1 (SAVE0 - 8)
#ifndef USE_AS_MEMPCPY
libc_hidden_builtin_def (memcpy)
+# if defined SHARED && !defined USE_MULTIARCH && !defined NOT_IN_libc
+# undef memcpy
+# include <shlib-compat.h>
+versioned_symbol (libc, __memcpy, memcpy, GLIBC_2_14);
+# endif
#endif
--- /dev/null
+/* Copyright (C) 2011 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include "string/memmove.c"
+
+#if !defined memmove && !defined NOT_IN_libc
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_2_5, GLIBC_2_14)
+compat_symbol (libc, memmove, memcpy, GLIBC_2_2_5);
+#endif
+#endif
/* Multiple versions of memcpy
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011
+ Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
02111-1307 USA. */
#include <sysdep.h>
+#include <shlib-compat.h>
#include <init-arch.h>
/* Define multiple versions only for the definition in lib and for
happened. */
#if defined SHARED && !defined NOT_IN_libc
.text
-ENTRY(memcpy)
- .type memcpy, @gnu_indirect_function
+ENTRY(__new_memcpy)
+ .type __new_memcpy, @gnu_indirect_function
cmpl $0, KIND_OFFSET+__cpu_features(%rip)
jne 1f
call __init_cpu_features
jz 2f
leaq __memcpy_ssse3_back(%rip), %rax
2: ret
-END(memcpy)
+END(__new_memcpy)
# undef ENTRY
# define ENTRY(name) \
by the indirect call in the PLT. */
# define libc_hidden_builtin_def(name) \
.globl __GI_memcpy; __GI_memcpy = __memcpy_sse2
+
+versioned_symbol (libc, __new_memcpy, memcpy, GLIBC_2_14);
#endif
#include "../memcpy.S"
/* Multiple versions of memmove.
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011
+ 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
#include <string.h>
#ifndef NOT_IN_libc
+#include <shlib-compat.h>
#include "init-arch.h"
#define MEMMOVE __memmove_sse2
? (HAS_FAST_COPY_BACKWARD
? __memmove_ssse3_back : __memmove_ssse3)
: __memmove_sse2);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_2_5, GLIBC_2_14)
+compat_symbol (libc, memmove, memcpy, GLIBC_2_2_5);
+#endif
#endif