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.13-65-g0354e35


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  0354e355014b7bfda32622e0255399d859862fcd (commit)
      from  8593482f5ec33daa90fca63db380edc8283c39df (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0354e355014b7bfda32622e0255399d859862fcd

commit 0354e355014b7bfda32622e0255399d859862fcd
Author: H.J. Lu <hongjiu.lu@intel.com>
Date:   Fri Apr 1 19:38:21 2011 -0400

    Work around old buggy program which cannot cope with memcpy semantics.

diff --git a/ChangeLog b/ChangeLog
index f093d9a..ff87466 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+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]
diff --git a/NEWS b/NEWS
index 711e11f..23be0b3 100644
--- a/NEWS
+++ b/NEWS
@@ -11,8 +11,8 @@ Version 2.14
 
 * 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
 
 Version 2.13
 
diff --git a/sysdeps/x86_64/Versions b/sysdeps/x86_64/Versions
index 253a65f..a437f85 100644
--- a/sysdeps/x86_64/Versions
+++ b/sysdeps/x86_64/Versions
@@ -1,3 +1,8 @@
+libc {
+  GLIBC_2.14 {
+    memcpy;
+  }
+}
 libm {
   GLIBC_2.1 {
     # A generic bug got this omitted from other configurations' version
diff --git a/sysdeps/x86_64/memcpy.S b/sysdeps/x86_64/memcpy.S
index b4545ac..724d44e 100644
--- a/sysdeps/x86_64/memcpy.S
+++ b/sysdeps/x86_64/memcpy.S
@@ -31,6 +31,12 @@
 #  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)
@@ -571,4 +577,9 @@ END(memcpy)
 
 #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
diff --git a/sysdeps/x86_64/multiarch/memmove.c b/sysdeps/x86_64/memmove.c
similarity index 55%
copy from sysdeps/x86_64/multiarch/memmove.c
copy to sysdeps/x86_64/memmove.c
index 3798627..1a6f87d 100644
--- a/sysdeps/x86_64/multiarch/memmove.c
+++ b/sysdeps/x86_64/memmove.c
@@ -1,5 +1,4 @@
-/* Multiple versions of memmove.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+/* 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
@@ -17,29 +16,12 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <string.h>
+#include "string/memmove.c"
 
-#ifndef NOT_IN_libc
-#include "init-arch.h"
+#if !defined memmove && !defined NOT_IN_libc
+#include <shlib-compat.h>
 
-#define MEMMOVE __memmove_sse2
-#ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
-  __hidden_ver1 (__memmove_sse2, __GI_memmove, __memmove_sse2);
-#endif
+#if SHLIB_COMPAT (libc, GLIBC_2_2_5, GLIBC_2_14)
+compat_symbol (libc, memmove, memcpy, GLIBC_2_2_5);
 #endif
-
-extern __typeof (memmove) __memmove_sse2 attribute_hidden;
-extern __typeof (memmove) __memmove_ssse3 attribute_hidden;
-extern __typeof (memmove) __memmove_ssse3_back attribute_hidden;
-
-#include "string/memmove.c"
-
-#ifndef NOT_IN_libc
-libc_ifunc (memmove,
-	    HAS_SSSE3
-	    ? (HAS_FAST_COPY_BACKWARD
-	       ? __memmove_ssse3_back : __memmove_ssse3)
-	    : __memmove_sse2);
 #endif
diff --git a/sysdeps/x86_64/multiarch/memcpy.S b/sysdeps/x86_64/multiarch/memcpy.S
index 8e9fb19..9863014 100644
--- a/sysdeps/x86_64/multiarch/memcpy.S
+++ b/sysdeps/x86_64/multiarch/memcpy.S
@@ -1,5 +1,6 @@
 /* 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.
 
@@ -19,6 +20,7 @@
    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
@@ -26,8 +28,8 @@
    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
@@ -39,7 +41,7 @@ ENTRY(memcpy)
 	jz	2f
 	leaq	__memcpy_ssse3_back(%rip), %rax
 2:	ret
-END(memcpy)
+END(__new_memcpy)
 
 # undef ENTRY
 # define ENTRY(name) \
@@ -68,6 +70,8 @@ END(memcpy)
    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"
diff --git a/sysdeps/x86_64/multiarch/memmove.c b/sysdeps/x86_64/multiarch/memmove.c
index 3798627..04de891 100644
--- a/sysdeps/x86_64/multiarch/memmove.c
+++ b/sysdeps/x86_64/multiarch/memmove.c
@@ -1,5 +1,6 @@
 /* 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
@@ -20,6 +21,7 @@
 #include <string.h>
 
 #ifndef NOT_IN_libc
+#include <shlib-compat.h>
 #include "init-arch.h"
 
 #define MEMMOVE __memmove_sse2
@@ -42,4 +44,8 @@ libc_ifunc (memmove,
 	    ? (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

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

Summary of changes:
 ChangeLog                                 |   13 +++++++++++++
 NEWS                                      |    4 ++--
 sysdeps/x86_64/Versions                   |    5 +++++
 sysdeps/x86_64/memcpy.S                   |   11 +++++++++++
 misc/syncfs.c => sysdeps/x86_64/memmove.c |   20 +++++++-------------
 sysdeps/x86_64/multiarch/memcpy.S         |   12 ++++++++----
 sysdeps/x86_64/multiarch/memmove.c        |    8 +++++++-
 7 files changed, 53 insertions(+), 20 deletions(-)
 copy misc/syncfs.c => sysdeps/x86_64/memmove.c (77%)


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]