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-452-g18b10de


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  18b10de7ced9e9c3843299fb600e40b11af3e0af (commit)
      from  d99431e519fdeb16edb1222b77430ac9853a2334 (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=18b10de7ced9e9c3843299fb600e40b11af3e0af

commit 18b10de7ced9e9c3843299fb600e40b11af3e0af
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Mon Jun 12 15:19:38 2017 +0100

    2017-06-12  Wilco Dijkstra  <wdijkstr@arm.com>
    
    There is no longer a need for string2.h, so remove it and all mention of it.
    Move the redirect for __stpcpy to include/string.h since it is still required
    until all internal uses have been renamed.
    This fixes several linknamespace/localplt failures when building with -Os.
    
    	[BZ #15105]
    	[BZ #19463]
    	* include/string.h: Add internal redirect for __stpcpy.
    	* string/Makefile: Remove bits/string2.h.
    	* string/string.h: Update comment.
    	* string/string-inlines.c: Remove bits/string2.h include and comment.
    	* string/bits/string2.h: Remove file.

diff --git a/ChangeLog b/ChangeLog
index c66785d..5f9e5c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2017-06-12  Wilco Dijkstra  <wdijkstr@arm.com>
 
+	[BZ #15105]
+	[BZ #19463]
+	* include/string.h: Add internal redirect for __stpcpy.
+	* string/Makefile: Remove bits/string2.h.
+	* string/string.h: Update comment.
+	* string/string-inlines.c: Remove bits/string2.h include and comment.
+	* string/bits/string2.h: Remove file.
+
+2017-06-12  Wilco Dijkstra  <wdijkstr@arm.com>
+
 	* sunrpc/bindrsvprt.c (bindresvport): Change __bzero to memset.
 	* sunrpc/clnt_gen.c (clnt_create): Likewise.
 	* sunrpc/des_impl.c (_des_crypt): Likewise.
diff --git a/include/string.h b/include/string.h
index ce71674..2bf2944 100644
--- a/include/string.h
+++ b/include/string.h
@@ -162,6 +162,11 @@ extern __typeof (mempcpy) mempcpy __asm__ ("__mempcpy");
 extern __typeof (stpcpy) stpcpy __asm__ ("__stpcpy");
 #endif
 
+/* Redirect internal calls to builtins.  */
+#ifndef __stpcpy
+# define __stpcpy(dest, src) __builtin_stpcpy (dest, src)
+#endif
+
 extern void *__memcpy_chk (void *__restrict __dest,
 			   const void *__restrict __src, size_t __len,
 			   size_t __destlen) __THROW;
diff --git a/string/Makefile b/string/Makefile
index f317d02..8d0d6b0 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -24,8 +24,8 @@ include ../Makeconfig
 
 headers	:= string.h strings.h memory.h endian.h bits/endian.h \
 	   argz.h envz.h byteswap.h bits/byteswap.h bits/byteswap-16.h \
-	   bits/string.h bits/string2.h bits/string3.h \
-	   bits/strings_fortified.h bits/uintn-identity.h
+	   bits/string.h bits/string3.h bits/strings_fortified.h \
+	   bits/uintn-identity.h
 
 routines	:= strcat strchr strcmp strcoll strcpy strcspn		\
 		   strverscmp strdup strndup				\
diff --git a/string/bits/string2.h b/string/bits/string2.h
deleted file mode 100644
index 6a26e2b..0000000
--- a/string/bits/string2.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Machine-independant string function optimizations.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
-   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, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _STRING_H
-# error "Never use <bits/string2.h> directly; include <string.h> instead."
-#endif
-
-#ifndef __NO_STRING_INLINES
-
-/* Unlike the definitions in the header <bits/string.h> the
-   definitions contained here are not optimized down to assembler
-   level.  Those optimizations are not always a good idea since this
-   means the code size increases a lot.  Instead the definitions here
-   optimize some functions in a way which do not dramatically
-   increase the code size and which do not use assembler.  The main
-   trick is to use GCC's `__builtin_constant_p' function.
-
-   Every function XXX which has a defined version in
-   <bits/string.h> must be accompanied by a symbol _HAVE_STRING_ARCH_XXX
-   to make sure we don't get redefinitions.
-
-   We must use here macros instead of inline functions since the
-   trick won't work with the latter.  */
-
-#ifndef __STRING_INLINE
-# ifdef __cplusplus
-#  define __STRING_INLINE inline
-# else
-#  define __STRING_INLINE __extern_inline
-# endif
-#endif
-
-/* Dereferencing a pointer arg to run sizeof on it fails for the void
-   pointer case, so we use this instead.
-   Note that __x is evaluated twice. */
-#define __string2_1bptr_p(__x) \
-  ((size_t)(const void *)((__x) + 1) - (size_t)(const void *)(__x) == 1)
-
-/* Set N bytes of S to 0.  */
-#if !defined _HAVE_STRING_ARCH_memset
-# define __bzero(s, n) __builtin_memset (s, '\0', n)
-#endif
-
-
-/* Copy SRC to DEST, returning pointer to final NUL byte.  */
-#ifdef __USE_GNU
-# ifndef _HAVE_STRING_ARCH_stpcpy
-#  define __stpcpy(dest, src) __builtin_stpcpy (dest, src)
-/* In glibc we use this function frequently but for namespace reasons
-   we have to use the name `__stpcpy'.  */
-#  define stpcpy(dest, src) __stpcpy (dest, src)
-# endif
-#endif
-
-
-/* Copy no more than N characters of SRC to DEST.  */
-#ifndef _HAVE_STRING_ARCH_strncpy
-# define strncpy(dest, src, n) __builtin_strncpy (dest, src, n)
-#endif
-
-
-/* Append no more than N characters from SRC onto DEST.  */
-#ifndef _HAVE_STRING_ARCH_strncat
-# ifdef _USE_STRING_ARCH_strchr
-#  define strncat(dest, src, n) \
-  (__extension__ ({ char *__dest = (dest);				      \
-		    __builtin_constant_p (src) && __builtin_constant_p (n)    \
-		    ? (strlen (src) < ((size_t) (n))			      \
-		       ? strcat (__dest, src)				      \
-		       : (*((char *) __mempcpy (strchr (__dest, '\0'),	      \
-						src, n)) = '\0', __dest))     \
-		    : strncat (dest, src, n); }))
-# else
-#  define strncat(dest, src, n) __builtin_strncat (dest, src, n)
-# endif
-#endif
-
-
-/* Return the length of the initial segment of S which
-   consists entirely of characters not in REJECT.  */
-#ifndef _HAVE_STRING_ARCH_strcspn
-# define strcspn(s, reject) __builtin_strcspn (s, reject)
-#endif
-
-
-/* Return the length of the initial segment of S which
-   consists entirely of characters in ACCEPT.  */
-#ifndef _HAVE_STRING_ARCH_strspn
-# define strspn(s, accept) __builtin_strspn (s, accept)
-#endif
-
-
-/* Find the first occurrence in S of any character in ACCEPT.  */
-#ifndef _HAVE_STRING_ARCH_strpbrk
-# define strpbrk(s, accept) __builtin_strpbrk (s, accept)
-#endif
-
-
-#ifndef _FORCE_INLINES
-# undef __STRING_INLINE
-#endif
-
-#endif /* No string inlines.  */
diff --git a/string/string-inlines.c b/string/string-inlines.c
index fa4a159..55c9984 100644
--- a/string/string-inlines.c
+++ b/string/string-inlines.c
@@ -15,9 +15,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-/*  <bits/string.h> and <bits/string2.h> declare some extern inline
-    functions.  These functions are declared additionally here if
-    inlining is not possible.  */
+/*  <bits/string.h> may declare some extern inline functions.
+    These functions are defined here if inlining is not possible.  */
 
 #undef __USE_STRING_INLINES
 #define __USE_STRING_INLINES
@@ -31,8 +30,6 @@
 
 #undef __NO_INLINE__
 #include <bits/string.h>
-#include <bits/string2.h>
-
 #include "shlib-compat.h"
 
 #if SHLIB_COMPAT (libc, GLIBC_2_1_1, GLIBC_2_25)
diff --git a/string/string.h b/string/string.h
index 8eed67d..d1a2746 100644
--- a/string/string.h
+++ b/string/string.h
@@ -501,19 +501,11 @@ extern char *basename (const char *__filename) __THROW __nonnull ((1));
 	__USE_STRING_INLINES
      is defined before including this header.
 
-   - machine-independent optimizations which do not increase the
-     code size significantly and which optimize mainly situations
-     where one or more arguments are compile-time constants.
-     These optimizations are used always when the compiler is
-     taught to optimize.
-
    One can inhibit all optimizations by defining __NO_STRING_INLINES.  */
 
 /* Get the machine-dependent optimizations (if any).  */
 #  include <bits/string.h>
 
-/* These are generic optimizations which do not add too much inline code.  */
-#  include <bits/string2.h>
 # endif
 
 # if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function

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

Summary of changes:
 ChangeLog               |   10 ++++
 include/string.h        |    5 ++
 string/Makefile         |    4 +-
 string/bits/string2.h   |  119 -----------------------------------------------
 string/string-inlines.c |    7 +--
 string/string.h         |    8 ---
 6 files changed, 19 insertions(+), 134 deletions(-)
 delete mode 100644 string/bits/string2.h


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]