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-106-gae65d4f


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  ae65d4f3c3995279ca458c460ebf8bab1885fa03 (commit)
      from  53a4608f8de7a89a41917ffeba9cd2098d6dec86 (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=ae65d4f3c3995279ca458c460ebf8bab1885fa03

commit ae65d4f3c3995279ca458c460ebf8bab1885fa03
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Mon Mar 13 18:42:35 2017 +0000

     Remove the str(n)dup inlines from string/bits/string2.h.  Although inlining
    calls with constant strings shows a small (~10%) performance gain, strdup is
    typically used in error reporting code, so not performance critical.
    Remove the now unused __need_malloc_and_calloc related defines from stdlib.h.
    
    Rename existing uses of str(n)dup to __str(n)dup so it no longer needs to be
    redirected to a builtin.  Also building GLIBC with -Os now no longer shows
    localplt or linkname space failures (partial fix for BZ #15105 and BZ #19463).
    
            [BZ #15105]
            [BZ #19463]
            * elf/dl-cache.c (_dl_load_cache_lookup): Use __strdup.
            * inet/rcmd.c (rcmd_af): Likewise.
            * inet/rexec.c   (rexec_af): Likewise.
            * intl/dcigettext.c (_LIBC): Likewise.
            * intl/finddomain.c (_nl_find_domain): Use strdup expansion.
            * locale/loadarchive.c (_nl_load_locale_from_archive): Use __strdup.
            * locale/setlocale.c (setlocale): Likewise.
            * posix/spawn_faction_addopen.c
            (posix_spawn_file_actions_addopen): Likewise.
            * stdlib/putenv.c (putenv): Use __strndup.
            * sunrpc/svc_simple.c (__registerrpc): Use __strdup.
            * sysdeps/posix/getaddrinfo.c (gaih_inet): Use __strdup/__strndup.
            * include/stdlib.h (__need_malloc_and_calloc): Remove uses.
            (__Need_M_And_C) Remove define/undef.
            * stdlib/stdlib.h (__need_malloc_and_calloc): Remove uses.
            (__malloc_and_calloc_defined): Remove define.
            * string/bits/string2.h (__strdup): Remove define.
            (strdup): Likewise.
            (__strndup): Likewise.
            (strndup): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 4ae0038..44dec7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2017-03-13  Wilco Dijkstra  <wdijkstr@arm.com>
+
+	[BZ #15105]
+	[BZ #19463]
+	* elf/dl-cache.c (_dl_load_cache_lookup): Use __strdup.
+	* inet/rcmd.c (rcmd_af): Likewise.
+	* inet/rexec.c   (rexec_af): Likewise.
+	* intl/dcigettext.c (_LIBC): Likewise.
+	* intl/finddomain.c (_nl_find_domain): Use strdup expansion.
+	* locale/loadarchive.c (_nl_load_locale_from_archive): Use __strdup.
+	* locale/setlocale.c (setlocale): Likewise.
+	* posix/spawn_faction_addopen.c
+	(posix_spawn_file_actions_addopen): Likewise.
+	* stdlib/putenv.c (putenv): Use __strndup.
+	* sunrpc/svc_simple.c (__registerrpc): Use __strdup.
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Use __strdup/__strndup.
+	* include/stdlib.h (__need_malloc_and_calloc): Remove uses.
+	(__Need_M_And_C) Remove define/undef.
+	* stdlib/stdlib.h (__need_malloc_and_calloc): Remove uses.
+	(__malloc_and_calloc_defined): Remove define.
+	* string/bits/string2.h (__strdup): Remove define.
+	(strdup): Likewise.
+	(__strndup): Likewise.
+	(strndup): Likewise.
+
 2017-03-13  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/bits/in.h (IPV6_AUTOFLOWLABEL): New
diff --git a/elf/dl-cache.c b/elf/dl-cache.c
index 1ac7524..017c78a 100644
--- a/elf/dl-cache.c
+++ b/elf/dl-cache.c
@@ -302,7 +302,7 @@ _dl_load_cache_lookup (const char *name)
   char *temp;
   temp = alloca (strlen (best) + 1);
   strcpy (temp, best);
-  return strdup (temp);
+  return __strdup (temp);
 }
 
 #ifndef MAP_COPY
diff --git a/include/stdlib.h b/include/stdlib.h
index 352339e..929cead 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -1,16 +1,12 @@
 #ifndef _STDLIB_H
 
-#ifdef __need_malloc_and_calloc
-#define __Need_M_And_C
-#endif
-
 #ifndef _ISOMAC
 # include <stddef.h>
 #endif
 #include <stdlib/stdlib.h>
 
 /* Now define the internal interfaces.  */
-#if !defined __Need_M_And_C && !defined _ISOMAC
+#if !defined _ISOMAC
 # include <sys/stat.h>
 
 __BEGIN_DECLS
@@ -269,6 +265,4 @@ __END_DECLS
 
 #endif
 
-#undef __Need_M_And_C
-
 #endif  /* include/stdlib.h */
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 8613d96..b7cc7a8 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -149,7 +149,7 @@ rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
 
 	if (res->ai_canonname){
 		free (ahostbuf);
-		ahostbuf = strdup (res->ai_canonname);
+		ahostbuf = __strdup (res->ai_canonname);
 		if (ahostbuf == NULL) {
 			__fxprintf(NULL, "%s",
 				   _("rcmd: Cannot allocate memory\n"));
diff --git a/inet/rexec.c b/inet/rexec.c
index 24ac4b1..43fb67b 100644
--- a/inet/rexec.c
+++ b/inet/rexec.c
@@ -73,7 +73,7 @@ rexec_af (char **ahost, int rport, const char *name, const char *pass,
 
 	if (res0->ai_canonname){
 		free (ahostbuf);
-		ahostbuf = strdup (res0->ai_canonname);
+		ahostbuf = __strdup (res0->ai_canonname);
 		if (ahostbuf == NULL) {
 			perror ("rexec: strdup");
 			return (-1);
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index 95fa72b..3843b7c 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -131,6 +131,7 @@ extern int errno;
 /* Rename the non ANSI C functions.  This is required by the standard
    because some ANSI C functions will require linking with this object
    file and the name space must not be polluted.  */
+# define strdup __strdup
 # define getcwd __getcwd
 # ifndef stpcpy
 #  define stpcpy __stpcpy
diff --git a/intl/finddomain.c b/intl/finddomain.c
index cb61a0c..88fd880 100644
--- a/intl/finddomain.c
+++ b/intl/finddomain.c
@@ -124,18 +124,12 @@ _nl_find_domain (const char *dirname, char *locale,
   alias_value = _nl_expand_alias (locale);
   if (alias_value != NULL)
     {
-#if defined _LIBC || defined HAVE_STRDUP
-      locale = strdup (alias_value);
-      if (locale == NULL)
-	return NULL;
-#else
       size_t len = strlen (alias_value) + 1;
       locale = (char *) malloc (len);
       if (locale == NULL)
 	return NULL;
 
       memcpy (locale, alias_value, len);
-#endif
     }
 
   /* Now we determine the single parts of the locale name.  First
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
index fc6fb32..e6e1a05 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -462,7 +462,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
   if (__glibc_unlikely (lia == NULL))
     return NULL;
 
-  lia->name = strdup (*namep);
+  lia->name = __strdup (*namep);
   if (__glibc_unlikely (lia->name == NULL))
     {
       free (lia);
diff --git a/locale/setlocale.c b/locale/setlocale.c
index 1603ef3..19acc4b 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -283,7 +283,7 @@ setlocale (int category, const char *locale)
       if (__glibc_unlikely (strchr (locale, ';') != NULL))
 	{
 	  /* This is a composite name.  Make a copy and split it up.  */
-	  locale_copy = strdup (locale);
+	  locale_copy = __strdup (locale);
 	  if (__glibc_unlikely (locale_copy == NULL))
 	    {
 	      __libc_rwlock_unlock (__libc_setlocale_lock);
diff --git a/posix/spawn_faction_addopen.c b/posix/spawn_faction_addopen.c
index 9511168..cbb3584 100644
--- a/posix/spawn_faction_addopen.c
+++ b/posix/spawn_faction_addopen.c
@@ -34,7 +34,7 @@ posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions,
   if (!__spawn_valid_fd (fd))
     return EBADF;
 
-  char *path_copy = strdup (path);
+  char *path_copy = __strdup (path);
   if (path_copy == NULL)
     return ENOMEM;
 
diff --git a/stdlib/putenv.c b/stdlib/putenv.c
index 85890fe..c0488fc 100644
--- a/stdlib/putenv.c
+++ b/stdlib/putenv.c
@@ -60,7 +60,7 @@ putenv (char *string)
       int use_malloc = !__libc_use_alloca (name_end - string + 1);
       if (__builtin_expect (use_malloc, 0))
 	{
-	  name = strndup (string, name_end - string);
+	  name = __strndup (string, name_end - string);
 	  if (name == NULL)
 	    return -1;
 	}
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 292c6a2..7cfbcaf 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -25,16 +25,13 @@
 #include <bits/libc-header-start.h>
 
 /* Get size_t, wchar_t and NULL from <stddef.h>.  */
-#define		__need_size_t
-#ifndef __need_malloc_and_calloc
-# define	__need_wchar_t
-# define	__need_NULL
-#endif
+#define __need_size_t
+#define __need_wchar_t
+#define __need_NULL
 #include <stddef.h>
 
 __BEGIN_DECLS
 
-#ifndef __need_malloc_and_calloc
 #define	_STDLIB_H	1
 
 #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H
@@ -434,10 +431,6 @@ extern int lcong48_r (unsigned short int __param[7],
 # endif	/* Use misc.  */
 #endif	/* Use misc or X/Open.  */
 
-#endif /* don't just need malloc and calloc */
-
-#ifndef __malloc_and_calloc_defined
-# define __malloc_and_calloc_defined
 __BEGIN_NAMESPACE_STD
 /* Allocate SIZE bytes of memory.  */
 extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
@@ -445,9 +438,7 @@ extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
 extern void *calloc (size_t __nmemb, size_t __size)
      __THROW __attribute_malloc__ __wur;
 __END_NAMESPACE_STD
-#endif
 
-#ifndef __need_malloc_and_calloc
 __BEGIN_NAMESPACE_STD
 /* Re-allocate the previously allocated block
    in PTR, making the new block SIZE bytes long.  */
@@ -944,9 +935,6 @@ extern int ttyslot (void) __THROW;
 # include <bits/stdlib-ldbl.h>
 #endif
 
-#endif /* don't just need malloc and calloc */
-#undef __need_malloc_and_calloc
-
 __END_DECLS
 
 #endif /* stdlib.h  */
diff --git a/string/bits/string2.h b/string/bits/string2.h
index 2d4eb41..6a26e2b 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -112,65 +112,6 @@
 #endif
 
 
-/* We need the memory allocation functions for inline strdup().
-   Referring to stdlib.h (even minimally) is not allowed
-   in any of the tight standards compliant modes.  */
-#ifdef __USE_MISC
-
-# if !defined _HAVE_STRING_ARCH_strdup || !defined _HAVE_STRING_ARCH_strndup
-#  define __need_malloc_and_calloc
-#  include <stdlib.h>
-# endif
-
-# ifndef _HAVE_STRING_ARCH_strdup
-
-extern char *__strdup (const char *__string) __THROW __attribute_malloc__;
-#  define __strdup(s) \
-  (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s)	      \
-		  ? (((const char *) (s))[0] == '\0'			      \
-		     ? (char *) calloc ((size_t) 1, (size_t) 1)		      \
-		     : ({ size_t __len = strlen (s) + 1;		      \
-			  char *__retval = (char *) malloc (__len);	      \
-			  if (__retval != NULL)				      \
-			    __retval = (char *) memcpy (__retval, s, __len);  \
-			  __retval; }))					      \
-		  : __strdup (s)))
-
-#  if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
-#   define strdup(s) __strdup (s)
-#  endif
-# endif
-
-# ifndef _HAVE_STRING_ARCH_strndup
-
-extern char *__strndup (const char *__string, size_t __n)
-     __THROW __attribute_malloc__;
-#  define __strndup(s, n) \
-  (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s)	      \
-		  ? (((const char *) (s))[0] == '\0'			      \
-		     ? (char *) calloc ((size_t) 1, (size_t) 1)		      \
-		     : ({ size_t __len = strlen (s) + 1;		      \
-			  size_t __n = (n);				      \
-			  char *__retval;				      \
-			  if (__n < __len)				      \
-			    __len = __n + 1;				      \
-			  __retval = (char *) malloc (__len);		      \
-			  if (__retval != NULL)				      \
-			    {						      \
-			      __retval[__len - 1] = '\0';		      \
-			      __retval = (char *) memcpy (__retval, s,	      \
-							  __len - 1);	      \
-			    }						      \
-			  __retval; }))					      \
-		  : __strndup (s, n)))
-
-#  ifdef __USE_XOPEN2K8
-#   define strndup(s, n) __strndup (s, n)
-#  endif
-# endif
-
-#endif /* Use misc. or use GNU.  */
-
 #ifndef _FORCE_INLINES
 # undef __STRING_INLINE
 #endif
diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c
index baa177e..acc9b9d 100644
--- a/sunrpc/svc_simple.c
+++ b/sunrpc/svc_simple.c
@@ -87,7 +87,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum,
       transp = svcudp_create (RPC_ANYSOCK);
       if (transp == NULL)
 	{
-	  buf = strdup (_("couldn't create an rpc server\n"));
+	  buf = __strdup (_("couldn't create an rpc server\n"));
 	  goto err_out;
 	}
     }
@@ -103,7 +103,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum,
   pl = (struct proglst_ *) malloc (sizeof (struct proglst_));
   if (pl == NULL)
     {
-      buf = strdup (_("registerrpc: out of memory\n"));
+      buf = __strdup (_("registerrpc: out of memory\n"));
       goto err_out;
     }
   pl->p_progname = progname;
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 43eb313..eed7264 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -536,7 +536,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
 		      }
 		    else
 		      {
-			namebuf = strndup (name, scope_delim - name);
+			namebuf = __strndup (name, scope_delim - name);
 			if (namebuf == NULL)
 			  {
 			    assert (!malloc_name);
@@ -1141,7 +1141,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
 		  malloc_canonbuf = false;
 		else
 		  {
-		    canon = strdup (canon);
+		    canon = __strdup (canon);
 		    if (canon == NULL)
 		      {
 			result = -EAI_MEMORY;

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

Summary of changes:
 ChangeLog                     |   25 +++++++++++++++++
 elf/dl-cache.c                |    2 +-
 include/stdlib.h              |    8 +-----
 inet/rcmd.c                   |    2 +-
 inet/rexec.c                  |    2 +-
 intl/dcigettext.c             |    1 +
 intl/finddomain.c             |    6 ----
 locale/loadarchive.c          |    2 +-
 locale/setlocale.c            |    2 +-
 posix/spawn_faction_addopen.c |    2 +-
 stdlib/putenv.c               |    2 +-
 stdlib/stdlib.h               |   18 ++----------
 string/bits/string2.h         |   59 -----------------------------------------
 sunrpc/svc_simple.c           |    4 +-
 sysdeps/posix/getaddrinfo.c   |    4 +-
 15 files changed, 41 insertions(+), 98 deletions(-)


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]