[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r25241 - in /branches/eglibc-2_15: ./ libc/ libc/elf/ libc/include/ libc/nis/ libc/stdio-common/ libc/stdlib/ libc/sunrpc/



Author: joseph
Date: Fri Feb  7 13:13:28 2014
New Revision: 25241

Log:
Merge changes between r25091 and r25240 from /fsf/glibc-2_15-branch.

Added:
    branches/eglibc-2_15/libc/elf/tst-relsort1.c
      - copied unchanged from r25240, fsf/glibc-2_15-branch/libc/elf/tst-relsort1.c
    branches/eglibc-2_15/libc/elf/tst-relsort1mod1.c
      - copied unchanged from r25240, fsf/glibc-2_15-branch/libc/elf/tst-relsort1mod1.c
    branches/eglibc-2_15/libc/elf/tst-relsort1mod2.c
      - copied unchanged from r25240, fsf/glibc-2_15-branch/libc/elf/tst-relsort1mod2.c
Modified:
    branches/eglibc-2_15/   (props changed)
    branches/eglibc-2_15/libc/ChangeLog
    branches/eglibc-2_15/libc/Makeconfig
    branches/eglibc-2_15/libc/Makefile
    branches/eglibc-2_15/libc/NEWS
    branches/eglibc-2_15/libc/config.h.in
    branches/eglibc-2_15/libc/config.make.in
    branches/eglibc-2_15/libc/configure
    branches/eglibc-2_15/libc/configure.in
    branches/eglibc-2_15/libc/elf/Makefile
    branches/eglibc-2_15/libc/elf/dl-close.c
    branches/eglibc-2_15/libc/elf/dl-deps.c
    branches/eglibc-2_15/libc/elf/dl-libc.c
    branches/eglibc-2_15/libc/elf/dl-open.c
    branches/eglibc-2_15/libc/elf/rtld.c
    branches/eglibc-2_15/libc/include/libc-symbols.h
    branches/eglibc-2_15/libc/include/link.h
    branches/eglibc-2_15/libc/nis/Makefile
    branches/eglibc-2_15/libc/stdio-common/Makefile
    branches/eglibc-2_15/libc/stdio-common/tst-sprintf.c
    branches/eglibc-2_15/libc/stdio-common/vfprintf.c
    branches/eglibc-2_15/libc/stdlib/fmtmsg.c
    branches/eglibc-2_15/libc/sunrpc/Makefile
    branches/eglibc-2_15/libc/sunrpc/auth_des.c
    branches/eglibc-2_15/libc/sunrpc/auth_none.c
    branches/eglibc-2_15/libc/sunrpc/auth_unix.c
    branches/eglibc-2_15/libc/sunrpc/authdes_prot.c
    branches/eglibc-2_15/libc/sunrpc/authuxprot.c
    branches/eglibc-2_15/libc/sunrpc/clnt_gen.c
    branches/eglibc-2_15/libc/sunrpc/clnt_perr.c
    branches/eglibc-2_15/libc/sunrpc/clnt_raw.c
    branches/eglibc-2_15/libc/sunrpc/clnt_simp.c
    branches/eglibc-2_15/libc/sunrpc/clnt_tcp.c
    branches/eglibc-2_15/libc/sunrpc/clnt_udp.c
    branches/eglibc-2_15/libc/sunrpc/clnt_unix.c
    branches/eglibc-2_15/libc/sunrpc/des_crypt.c
    branches/eglibc-2_15/libc/sunrpc/des_soft.c
    branches/eglibc-2_15/libc/sunrpc/get_myaddr.c
    branches/eglibc-2_15/libc/sunrpc/key_call.c
    branches/eglibc-2_15/libc/sunrpc/key_prot.c
    branches/eglibc-2_15/libc/sunrpc/netname.c
    branches/eglibc-2_15/libc/sunrpc/pm_getmaps.c
    branches/eglibc-2_15/libc/sunrpc/pm_getport.c
    branches/eglibc-2_15/libc/sunrpc/pmap_clnt.c
    branches/eglibc-2_15/libc/sunrpc/pmap_prot.c
    branches/eglibc-2_15/libc/sunrpc/pmap_prot2.c
    branches/eglibc-2_15/libc/sunrpc/pmap_rmt.c
    branches/eglibc-2_15/libc/sunrpc/publickey.c
    branches/eglibc-2_15/libc/sunrpc/rpc_cmsg.c
    branches/eglibc-2_15/libc/sunrpc/rpc_common.c
    branches/eglibc-2_15/libc/sunrpc/rpc_dtable.c
    branches/eglibc-2_15/libc/sunrpc/rpc_prot.c
    branches/eglibc-2_15/libc/sunrpc/rpc_thread.c
    branches/eglibc-2_15/libc/sunrpc/rtime.c
    branches/eglibc-2_15/libc/sunrpc/svc.c
    branches/eglibc-2_15/libc/sunrpc/svc_auth.c
    branches/eglibc-2_15/libc/sunrpc/svc_raw.c
    branches/eglibc-2_15/libc/sunrpc/svc_run.c
    branches/eglibc-2_15/libc/sunrpc/svc_tcp.c
    branches/eglibc-2_15/libc/sunrpc/svc_udp.c
    branches/eglibc-2_15/libc/sunrpc/svc_unix.c
    branches/eglibc-2_15/libc/sunrpc/svcauth_des.c
    branches/eglibc-2_15/libc/sunrpc/xcrypt.c
    branches/eglibc-2_15/libc/sunrpc/xdr.c
    branches/eglibc-2_15/libc/sunrpc/xdr_array.c
    branches/eglibc-2_15/libc/sunrpc/xdr_float.c
    branches/eglibc-2_15/libc/sunrpc/xdr_intXX_t.c
    branches/eglibc-2_15/libc/sunrpc/xdr_mem.c
    branches/eglibc-2_15/libc/sunrpc/xdr_rec.c
    branches/eglibc-2_15/libc/sunrpc/xdr_ref.c
    branches/eglibc-2_15/libc/sunrpc/xdr_sizeof.c
    branches/eglibc-2_15/libc/sunrpc/xdr_stdio.c

Propchange: branches/eglibc-2_15/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb  7 13:13:28 2014
@@ -1,2 +1,2 @@
-/fsf/glibc-2_15-branch:16509-25091
+/fsf/glibc-2_15-branch:16509-25240
 /fsf/trunk:15224-16494

Modified: branches/eglibc-2_15/libc/ChangeLog
==============================================================================
--- branches/eglibc-2_15/libc/ChangeLog (original)
+++ branches/eglibc-2_15/libc/ChangeLog Fri Feb  7 13:13:28 2014
@@ -1,3 +1,44 @@
+2012-09-28  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	[BZ #6530]
+	* stdio-common/vfprintf.c (process_string_arg): Revert
+	2000-07-22 change.
+
+2011-09-28  Jonathan Nieder  <jrnieder@xxxxxxxxx>
+
+	* stdio-common/Makefile (tst-sprintf-ENV): Set environment
+	for testcase.
+	* stdio-common/tst-sprintf.c: Include <locale.h>
+	(main): Test sprintf's handling of incomplete multibyte
+	characters.
+
+2012-06-22  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	[BZ #13579]
+	* include/link.h (struct link_map): Add l_free_initfini.
+	* elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
+	l_initfini.
+	* elf/dl-close.c (_dl_close_worker): Don't free l_initfini.
+	* elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
+	* elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
+	set.
+
+2012-02-24  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* stdlib/fmtmsg.c (fmtmsg): Lock around use of severity list.
+	Reported by Peng Haitao <penght@xxxxxxxxxxxxxx>.
+
+2012-01-27  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #13618]
+	* elf/dl-open.c (dl_open_worker): Sort objects by dependency before
+	relocation.
+	* Makeconfig (libm): Define.
+	* elf/Makefile: Add rules to build and run tst-relsort1.
+	* elf/tst-relsort1.c: New file.
+	* elf/tst-relsort1mod1.c: New file.
+	* elf/tst-relsort1mod2.c: New file.
+
 2014-01-04  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxx>
 	    OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
 

Modified: branches/eglibc-2_15/libc/Makeconfig
==============================================================================
--- branches/eglibc-2_15/libc/Makeconfig (original)
+++ branches/eglibc-2_15/libc/Makeconfig Fri Feb  7 13:13:28 2014
@@ -958,6 +958,12 @@
 endif
 endif
 
+ifeq ($(build-shared),yes)
+libm = $(common-objpfx)math/libm.so$(libm.so-version)
+else
+libm = $(common-objpfx)math/libm.a
+endif
+
 # Generate a header file that #defines preprocessor symbols indicating
 # which option groups are enabled.  Note that the option-groups.config file
 # may not exist at all.

Modified: branches/eglibc-2_15/libc/Makefile
==============================================================================
--- branches/eglibc-2_15/libc/Makefile (original)
+++ branches/eglibc-2_15/libc/Makefile Fri Feb  7 13:13:28 2014
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2002,2003,2004,2005,2006,2008,2009,2011
+# Copyright (C) 1991-2002,2003,2004,2005,2006,2008,2009,2011,2012
 #	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 

Modified: branches/eglibc-2_15/libc/NEWS
==============================================================================
--- branches/eglibc-2_15/libc/NEWS (original)
+++ branches/eglibc-2_15/libc/NEWS Fri Feb  7 13:13:28 2014
@@ -1,5 +1,5 @@
 GNU C Library NEWS -- history of user-visible changes.  2011-12-23
-Copyright (C) 1992-2012 Free Software Foundation, Inc.
+Copyright (C) 1992-2014 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
@@ -9,9 +9,10 @@
 
 * The following bugs are resolved with this release:
 
-  411, 2547, 2548, 11261, 11365, 11494, 13583, 13731, 13732, 13733, 13747,
-  13748, 13749, 13753, 13754, 13771, 13773, 13774, 13786, 14048, 14059,
-  14167, 14273, 14459, 14621, 14648, 14040, 15073
+  411, 2547, 2548, 6530, 11261, 11365, 11494, 13583, 13618, 13731, 13732,
+  13733, 13747, 13748, 13749, 13753, 13754, 13756, 13765, 13771, 13773,
+  13774, 13786, 14048, 14059, 14167, 14273, 14284, 14459, 14621, 14648,
+  14040, 14287, 15073
 
 Version 2.15
 

Modified: branches/eglibc-2_15/libc/config.h.in
==============================================================================
--- branches/eglibc-2_15/libc/config.h.in (original)
+++ branches/eglibc-2_15/libc/config.h.in Fri Feb  7 13:13:28 2014
@@ -196,6 +196,9 @@
 /* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
 #undef	NO_CTORS_DTORS_SECTIONS
 
+/* Define if obsolete RPC code should be made available for user-level code
+   to link against.  */
+#undef LINK_OBSOLETE_RPC
 /*
  */
 

Modified: branches/eglibc-2_15/libc/config.make.in
==============================================================================
--- branches/eglibc-2_15/libc/config.make.in (original)
+++ branches/eglibc-2_15/libc/config.make.in Fri Feb  7 13:13:28 2014
@@ -103,6 +103,7 @@
 sysdeps-add-ons = @sysdeps_add_ons@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
+link-obsolete-rpc = @link_obsolete_rpc@
 
 # Build tools.
 CC = @CC@

Modified: branches/eglibc-2_15/libc/configure
==============================================================================
--- branches/eglibc-2_15/libc/configure (original)
+++ branches/eglibc-2_15/libc/configure Fri Feb  7 13:13:28 2014
@@ -731,6 +731,7 @@
 base_machine
 add_on_subdirs
 add_ons
+link_obsolete_rpc
 libc_cv_nss_crypt
 REPORT_BUGS_TEXI
 REPORT_BUGS_TO
@@ -834,6 +835,7 @@
 with_bugurl
 enable_multi_arch
 enable_nss_crypt
+enable_obsolete_rpc
 with_cpu
 '
       ac_precious_vars='build_alias
@@ -1503,6 +1505,8 @@
   --enable-multi-arch     enable single DSO with optimizations for multiple
                           architectures
   --enable-nss-crypt      enable libcrypt to use nss
+  --enable-obsolete-rpc   build and install the obsolete RPC code for
+                          link-time usage
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -3974,6 +3978,20 @@
   libc_cv_nss_crypt=no
 fi
 
+
+# Check whether --enable-obsolete-rpc was given.
+if test "${enable_obsolete_rpc+set}" = set; then :
+  enableval=$enable_obsolete_rpc; link_obsolete_rpc=$enableval
+else
+  link_obsolete_rpc=no
+fi
+
+
+
+if test "$link_obsolete_rpc" = yes; then
+  $as_echo "#define LINK_OBSOLETE_RPC 1" >>confdefs.h
+
+fi
 
 # The way shlib-versions is used to generate soversions.mk uses a
 # fairly simplistic model for name recognition that can't distinguish

Modified: branches/eglibc-2_15/libc/configure.in
==============================================================================
--- branches/eglibc-2_15/libc/configure.in (original)
+++ branches/eglibc-2_15/libc/configure.in Fri Feb  7 13:13:28 2014
@@ -294,6 +294,17 @@
   libc_cv_nss_crypt=no
 fi
 AC_SUBST(libc_cv_nss_crypt)
+
+AC_ARG_ENABLE([obsolete-rpc],
+              AC_HELP_STRING([--enable-obsolete-rpc],
+                             [build and install the obsolete RPC code for link-time usage]),
+              [link_obsolete_rpc=$enableval],
+              [link_obsolete_rpc=no])
+AC_SUBST(link_obsolete_rpc)
+
+if test "$link_obsolete_rpc" = yes; then
+  AC_DEFINE(LINK_OBSOLETE_RPC)
+fi
 
 # The way shlib-versions is used to generate soversions.mk uses a
 # fairly simplistic model for name recognition that can't distinguish

Modified: branches/eglibc-2_15/libc/elf/Makefile
==============================================================================
--- branches/eglibc-2_15/libc/elf/Makefile (original)
+++ branches/eglibc-2_15/libc/elf/Makefile Fri Feb  7 13:13:28 2014
@@ -124,7 +124,8 @@
 		   tst-initordera1.c tst-initordera2.c tst-initorderb1.c \
 		   tst-initorderb2.c tst-initordera3.c tst-initordera4.c \
 		   tst-initorder.c \
-		   tst-initorder2.c
+		   tst-initorder2.c \
+		   tst-relsort1.c tst-relsort1mod1.c tst-relsort1mod2.c
 
 CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables
@@ -233,7 +234,7 @@
 	 tst-audit1 tst-audit2 \
 	 tst-stackguard1 tst-addr1 tst-thrlock \
 	 tst-unique1 tst-unique2 tst-unique3 tst-unique4 \
-	 tst-initorder tst-initorder2
+	 tst-initorder tst-initorder2 tst-relsort1
 #	 reldep9
 test-srcs = tst-pathopt
 selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
@@ -296,7 +297,9 @@
 		tst-initordera1 tst-initorderb1 \
 		tst-initordera2 tst-initorderb2 \
 		tst-initordera3 tst-initordera4 \
-		tst-initorder2a tst-initorder2b tst-initorder2c tst-initorder2d
+		tst-initorder2a tst-initorder2b tst-initorder2c \
+		tst-initorder2d \
+		tst-relsort1mod1 tst-relsort1mod2
 ifeq (yes,$(have-initfini-array))
 modules-names += tst-array2dep tst-array5dep
 endif
@@ -1217,3 +1220,9 @@
 CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
 CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
 endif
+
+$(objpfx)tst-relsort1: $(libdl)
+$(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
+$(objpfx)tst-relsort1mod2.so: $(libm)
+$(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
+			   $(objpfx)tst-relsort1mod2.so

Modified: branches/eglibc-2_15/libc/elf/dl-close.c
==============================================================================
--- branches/eglibc-2_15/libc/elf/dl-close.c (original)
+++ branches/eglibc-2_15/libc/elf/dl-close.c Fri Feb  7 13:13:28 2014
@@ -1,5 +1,5 @@
 /* Close a shared object opened by `_dl_open'.
-   Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 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
@@ -119,17 +119,8 @@
   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
       || dl_close_state != not_pending)
     {
-      if (map->l_direct_opencount == 0)
-	{
-	  if (map->l_type == lt_loaded)
-	    dl_close_state = rerun;
-	  else if (map->l_type == lt_library)
-	    {
-	      struct link_map **oldp = map->l_initfini;
-	      map->l_initfini = map->l_orig_initfini;
-	      _dl_scope_free (oldp);
-	    }
-	}
+      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
+	dl_close_state = rerun;
 
       /* There are still references to this object.  Do nothing more.  */
       if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_FILES, 0))

Modified: branches/eglibc-2_15/libc/elf/dl-deps.c
==============================================================================
--- branches/eglibc-2_15/libc/elf/dl-deps.c (original)
+++ branches/eglibc-2_15/libc/elf/dl-deps.c Fri Feb  7 13:13:28 2014
@@ -1,6 +1,5 @@
 /* Load the dependencies of a mapped object.
-   Copyright (C) 1996-2003, 2004, 2005, 2006, 2007, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 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
@@ -489,6 +488,7 @@
 		  nneeded * sizeof needed[0]);
 	  atomic_write_barrier ();
 	  l->l_initfini = l_initfini;
+	  l->l_free_initfini = 1;
 	}
 
       /* If we have no auxiliary objects just go on to the next map.  */
@@ -689,6 +689,7 @@
   l_initfini[nlist] = NULL;
   atomic_write_barrier ();
   map->l_initfini = l_initfini;
+  map->l_free_initfini = 1;
   if (l_reldeps != NULL)
     {
       atomic_write_barrier ();
@@ -697,7 +698,7 @@
       _dl_scope_free (old_l_reldeps);
     }
   if (old_l_initfini != NULL)
-      map->l_orig_initfini = old_l_initfini;
+    _dl_scope_free (old_l_initfini);
 
   if (errno_reason)
     _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,

Modified: branches/eglibc-2_15/libc/elf/dl-libc.c
==============================================================================
--- branches/eglibc-2_15/libc/elf/dl-libc.c (original)
+++ branches/eglibc-2_15/libc/elf/dl-libc.c Fri Feb  7 13:13:28 2014
@@ -1,6 +1,5 @@
 /* Handle loading and unloading shared objects for internal libc purposes.
-   Copyright (C) 1999-2002,2004-2006,2009,2010,2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Zack Weinberg <zack@xxxxxxxxxxxxxxxxx>, 1999.
 
@@ -270,13 +269,13 @@
 
   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
     {
-      /* Remove all additional names added to the objects.  */
       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
 	{
 	  struct libname_list *lnp = l->l_libname->next;
 
 	  l->l_libname->next = NULL;
 
+	  /* Remove all additional names added to the objects.  */
 	  while (lnp != NULL)
 	    {
 	      struct libname_list *old = lnp;
@@ -284,6 +283,10 @@
 	      if (! old->dont_free)
 		free (old);
 	    }
+
+	  /* Free the initfini dependency list.  */
+	  if (l->l_free_initfini)
+	    free (l->l_initfini);
 	}
 
       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0

Modified: branches/eglibc-2_15/libc/elf/dl-open.c
==============================================================================
--- branches/eglibc-2_15/libc/elf/dl-open.c (original)
+++ branches/eglibc-2_15/libc/elf/dl-open.c Fri Feb  7 13:13:28 2014
@@ -1,5 +1,5 @@
 /* Load a shared object at runtime, relocate it, and run its initializer.
-   Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009, 2010, 2011, 2012 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
@@ -302,45 +302,109 @@
   if (GLRO(dl_lazy))
     reloc_mode |= mode & RTLD_LAZY;
 
-  /* Relocate the objects loaded.  We do this in reverse order so that copy
-     relocs of earlier objects overwrite the data written by later objects.  */
-
+  /* Sort the objects by dependency for the relocation process.  This
+     allows IFUNC relocations to work and it also means copy
+     relocation of dependencies are if necessary overwritten.  */
+  size_t nmaps = 0;
   struct link_map *l = new;
-  while (l->l_next)
-    l = l->l_next;
-  while (1)
+  do
     {
       if (! l->l_real->l_relocated)
-	{
+	++nmaps;
+      l = l->l_next;
+    }
+  while (l != NULL);
+  struct link_map *maps[nmaps];
+  nmaps = 0;
+  l = new;
+  do
+    {
+      if (! l->l_real->l_relocated)
+	maps[nmaps++] = l;
+      l = l->l_next;
+    }
+  while (l != NULL);
+  if (nmaps > 1)
+    {
+      char seen[nmaps];
+      memset (seen, '\0', nmaps);
+      size_t i = 0;
+      while (1)
+	{
+	  ++seen[i];
+	  struct link_map *thisp = maps[i];
+
+	  /* Find the last object in the list for which the current one is
+	     a dependency and move the current object behind the object
+	     with the dependency.  */
+	  size_t k = nmaps - 1;
+	  while (k > i)
+	    {
+	      struct link_map **runp = maps[k]->l_initfini;
+	      if (runp != NULL)
+		/* Look through the dependencies of the object.  */
+		while (*runp != NULL)
+		  if (__builtin_expect (*runp++ == thisp, 0))
+		    {
+		      /* Move the current object to the back past the last
+			 object with it as the dependency.  */
+		      memmove (&maps[i], &maps[i + 1],
+			       (k - i) * sizeof (maps[0]));
+		      maps[k] = thisp;
+
+		      if (seen[i + 1] > 1)
+			{
+			  ++i;
+			  goto next_clear;
+			}
+
+		      char this_seen = seen[i];
+		      memmove (&seen[i], &seen[i + 1],
+			       (k - i) * sizeof (seen[0]));
+		      seen[k] = this_seen;
+
+		      goto next;
+		    }
+
+	      --k;
+	    }
+
+	  if (++i == nmaps)
+	    break;
+	next_clear:
+	  memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
+	next:;
+	}
+    }
+
+  for (size_t i = nmaps; i-- > 0; )
+    {
+      l = maps[i];
+
 #ifdef SHARED
-	  if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
+      if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
+	{
+	  /* If this here is the shared object which we want to profile
+	     make sure the profile is started.  We can find out whether
+	     this is necessary or not by observing the `_dl_profile_map'
+	     variable.  If it was NULL but is not NULL afterwars we must
+	     start the profiling.  */
+	  struct link_map *old_profile_map = GL(dl_profile_map);
+
+	  _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
+
+	  if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
 	    {
-	      /* If this here is the shared object which we want to profile
-		 make sure the profile is started.  We can find out whether
-		 this is necessary or not by observing the `_dl_profile_map'
-		 variable.  If was NULL but is not NULL afterwars we must
-		 start the profiling.  */
-	      struct link_map *old_profile_map = GL(dl_profile_map);
-
-	      _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
-
-	      if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
-		{
-		  /* We must prepare the profiling.  */
-		  _dl_start_profile ();
-
-		  /* Prevent unloading the object.  */
-		  GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
-		}
+	      /* We must prepare the profiling.  */
+	      _dl_start_profile ();
+
+	      /* Prevent unloading the object.  */
+	      GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
 	    }
-	  else
-#endif
-	    _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
-	}
-
-      if (l == new)
-	break;
-      l = l->l_prev;
+	}
+      else
+#endif
+	_dl_relocate_object (l, l->l_scope, reloc_mode, 0);
     }
 
   /* If the file is not loaded now as a dependency, add the search

Modified: branches/eglibc-2_15/libc/elf/rtld.c
==============================================================================
--- branches/eglibc-2_15/libc/elf/rtld.c (original)
+++ branches/eglibc-2_15/libc/elf/rtld.c Fri Feb  7 13:13:28 2014
@@ -2277,6 +2277,8 @@
 	      lnp->dont_free = 1;
 	      lnp = lnp->next;
 	    }
+	  /* Also allocated with the fake malloc().  */
+	  l->l_free_initfini = 0;
 
 	  if (l != &GL(dl_rtld_map))
 	    _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,

Modified: branches/eglibc-2_15/libc/include/libc-symbols.h
==============================================================================
--- branches/eglibc-2_15/libc/include/libc-symbols.h (original)
+++ branches/eglibc-2_15/libc/include/libc-symbols.h Fri Feb  7 13:13:28 2014
@@ -1,6 +1,6 @@
 /* Support macros for making weak and strong aliases for symbols,
    and for using symbol sets and linker warnings with GNU ld.
-   Copyright (C) 1995-1998,2000-2006,2008,2009,2011
+   Copyright (C) 1995-1998,2000-2006,2008,2009,2011,2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -647,7 +647,12 @@
 # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
 # define libc_hidden_def(name) hidden_def (name)
 # define libc_hidden_weak(name) hidden_weak (name)
-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
+# ifdef LINK_OBSOLETE_RPC
+   /* libc_hidden_nolink_sunrpc should only get used in sunrpc code.  */
+#  define libc_hidden_nolink_sunrpc(name, version) hidden_def (name)
+# else
+#  define libc_hidden_nolink_sunrpc(name, version) hidden_nolink (name, libc, version)
+# endif
 # define libc_hidden_ver(local, name) hidden_ver (local, name)
 # define libc_hidden_data_def(name) hidden_data_def (name)
 # define libc_hidden_data_weak(name) hidden_data_weak (name)

Modified: branches/eglibc-2_15/libc/include/link.h
==============================================================================
--- branches/eglibc-2_15/libc/include/link.h (original)
+++ branches/eglibc-2_15/libc/include/link.h Fri Feb  7 13:13:28 2014
@@ -1,6 +1,6 @@
 /* Data structure for communication from the run-time dynamic linker for
    loaded ELF shared objects.
-   Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1995-2012 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
@@ -192,6 +192,9 @@
 						 during LD_TRACE_PRELINKING=1
 						 contains any DT_SYMBOLIC
 						 libraries.  */
+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
+				       freed, ie. not allocated with
+				       the dummy malloc in ld.so.  */
 
     /* Collected information about own RPATH directories.  */
     struct r_search_path_struct l_rpath_dirs;
@@ -240,9 +243,6 @@
 
     /* List of object in order of the init and fini calls.  */
     struct link_map **l_initfini;
-    /* The init and fini list generated at startup, saved when the
-       object is also loaded dynamically.  */
-    struct link_map **l_orig_initfini;
 
     /* List of the dependencies introduced through symbol binding.  */
     struct link_map_reldeps

Modified: branches/eglibc-2_15/libc/nis/Makefile
==============================================================================
--- branches/eglibc-2_15/libc/nis/Makefile (original)
+++ branches/eglibc-2_15/libc/nis/Makefile Fri Feb  7 13:13:28 2014
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-1998,2001,2004,2006,2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998,2001,2004,2006,2011,2012 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
@@ -25,9 +25,11 @@
 
 aux			:= nis_hash
 
-distribute		:= nss-nis.h nss-nisplus.h nis_intern.h Banner \
-			   nisplus-parser.h nis_xdr.h nss \
-			   $(wildcard rpcsvc/*.[hx])
+include ../Makeconfig
+
+ifeq ($(link-obsolete-rpc),yes)
+headers			:= $(wildcard rpcsvc/*.[hx])
+endif
 
 # These are the databases available for the nis (and perhaps later nisplus)
 # service.  This must be a superset of the services in nss.

Modified: branches/eglibc-2_15/libc/stdio-common/Makefile
==============================================================================
--- branches/eglibc-2_15/libc/stdio-common/Makefile (original)
+++ branches/eglibc-2_15/libc/stdio-common/Makefile Fri Feb  7 13:13:28 2014
@@ -136,6 +136,7 @@
 
 # We know the test has a format string problem.
 CFLAGS-tst-sprintf.c = -Wno-format
+tst-sprintf-ENV = LOCPATH=$(common-objpfx)localedata
 tst-sscanf-ENV = LOCPATH=$(common-objpfx)localedata
 tst-swprintf-ENV = LOCPATH=$(common-objpfx)localedata
 test-vfprintf-ENV = LOCPATH=$(common-objpfx)localedata

Modified: branches/eglibc-2_15/libc/stdio-common/tst-sprintf.c
==============================================================================
--- branches/eglibc-2_15/libc/stdio-common/tst-sprintf.c (original)
+++ branches/eglibc-2_15/libc/stdio-common/tst-sprintf.c Fri Feb  7 13:13:28 2014
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <locale.h>
 #include <string.h>
 #include <gnu/option-groups.h>
 
@@ -61,5 +62,17 @@
       result = 1;
     }
 
+  if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
+    {
+      puts ("cannot set locale");
+      result = 1;
+    }
+  else if (sprintf (buf, "%.8s\n", "Foo: \277") != 7
+	   || strcmp (buf, "Foo: \277\n") != 0)
+    {
+      printf ("sprintf (buf, \"%%.8s\\n\", \"Foo: \\277\") produced '%s' output\n", buf);
+      result = 1;
+    }
+
   return result;
 }

Modified: branches/eglibc-2_15/libc/stdio-common/vfprintf.c
==============================================================================
--- branches/eglibc-2_15/libc/stdio-common/vfprintf.c (original)
+++ branches/eglibc-2_15/libc/stdio-common/vfprintf.c Fri Feb  7 13:13:28 2014
@@ -1178,42 +1178,9 @@
 	else if (!is_long && spec != L_('S'))				      \
 	  {								      \
 	    if (prec != -1)						      \
-	      {								      \
-		/* Search for the end of the string, but don't search past    \
-		   the length (in bytes) specified by the precision.  Also    \
-		   don't use incomplete characters.  */			      \
-		if (! LOCALE_SUPPORT                                          \
-                    ||_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX) == 1) \
-		  len = __strnlen (string, prec);			      \
-		else							      \
-		  {							      \
-		    /* In case we have a multibyte character set the	      \
-		       situation is more complicated.  We must not copy	      \
-		       bytes at the end which form an incomplete character. */\
-		    size_t ignore_size = (unsigned) prec > 1024 ? 1024 : prec;\
-		    wchar_t ignore[ignore_size];			      \
-		    const char *str2 = string;				      \
-		    const char *strend = string + prec;			      \
-		    if (strend < string)				      \
-		      strend = (const char *) UINTPTR_MAX;		      \
-									      \
-		    mbstate_t ps;					      \
-		    memset (&ps, '\0', sizeof (ps));			      \
-									      \
-		    while (str2 != NULL && str2 < strend)		      \
-		      if (__mbsnrtowcs (ignore, &str2, strend - str2,	      \
-					ignore_size, &ps) == (size_t) -1)     \
-			{						      \
-			  done = -1;					      \
-			  goto all_done;				      \
-			}						      \
-									      \
-		    if (str2 == NULL)					      \
-		      len = strlen (string);				      \
-		    else						      \
-		      len = str2 - string - (ps.__count & 7);		      \
-		  }							      \
-	      }								      \
+	      /* Search for the end of the string, but don't search past      \
+		 the length (in bytes) specified by the precision.  */	      \
+	      len = __strnlen (string, prec);				      \
 	    else							      \
 	      len = strlen (string);					      \
 	  }								      \

Modified: branches/eglibc-2_15/libc/stdlib/fmtmsg.c
==============================================================================
--- branches/eglibc-2_15/libc/stdlib/fmtmsg.c (original)
+++ branches/eglibc-2_15/libc/stdlib/fmtmsg.c Fri Feb  7 13:13:28 2014
@@ -103,7 +103,6 @@
 	const char *text, const char *action, const char *tag)
 {
   __libc_once_define (static, once);
-  int result = MM_OK;
   struct severity_info *severity_rec;
 
   /* Make sure everything is initialized.  */
@@ -123,17 +122,6 @@
 	  || strlen (cp + 1) > 14)
 	return MM_NOTOK;
     }
-
-  for (severity_rec = severity_list; severity_rec != NULL;
-       severity_rec = severity_rec->next)
-    if (severity == severity_rec->severity)
-      /* Bingo.  */
-      break;
-
-  /* If we don't know anything about the severity level return an error.  */
-  if (severity_rec == NULL)
-    return MM_NOTOK;
-
 
 #ifdef __libc_ptf_call
   /* We do not want this call to be cut short by a thread
@@ -143,53 +131,72 @@
 		   0);
 #endif
 
-  /* Now we can print.  */
-  if (classification & MM_PRINT)
-    {
-      int do_label = (print & label_mask) && label != MM_NULLLBL;
-      int do_severity = (print & severity_mask) && severity != MM_NULLSEV;
-      int do_text = (print & text_mask) && text != MM_NULLTXT;
-      int do_action = (print & action_mask) && action != MM_NULLACT;
-      int do_tag = (print & tag_mask) && tag != MM_NULLTAG;
-
-      if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n",
-		      do_label ? label : "",
-		      do_label && (do_severity | do_text | do_action | do_tag)
-		      ? ": " : "",
-		      do_severity ? severity_rec->string : "",
-		      do_severity && (do_text | do_action | do_tag)
-		      ? ": " : "",
-		      do_text ? text : "",
-		      do_text && (do_action | do_tag) ? "\n" : "",
-		      do_action ? "TO FIX: " : "",
-		      do_action ? action : "",
-		      do_action && do_tag ? "  " : "",
-		      do_tag ? tag : "") < 0)
-	/* Oh, oh.  An error occurred during the output.  */
-	result = MM_NOMSG;
-    }
-
-  if (classification & MM_CONSOLE)
-    {
-      int do_label = label != MM_NULLLBL;
-      int do_severity = severity != MM_NULLSEV;
-      int do_text = text != MM_NULLTXT;
-      int do_action = action != MM_NULLACT;
-      int do_tag = tag != MM_NULLTAG;
-
-      syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n",
-	      do_label ? label : "",
-	      do_label && (do_severity | do_text | do_action | do_tag)
-	      ? ": " : "",
-	      do_severity ? severity_rec->string : "",
-	      do_severity && (do_text | do_action | do_tag) ? ": " : "",
-	      do_text ? text : "",
-	      do_text && (do_action | do_tag) ? "\n" : "",
-	      do_action ? "TO FIX: " : "",
-	      do_action ? action : "",
-	      do_action && do_tag ? "  " : "",
-	      do_tag ? tag : "");
-    }
+  __libc_lock_lock (lock);
+
+  for (severity_rec = severity_list; severity_rec != NULL;
+       severity_rec = severity_rec->next)
+    if (severity == severity_rec->severity)
+      /* Bingo.  */
+      break;
+
+  /* If we don't know anything about the severity level return an error.  */
+  int result = MM_NOTOK;
+  if (severity_rec != NULL)
+    {
+      result = MM_OK;
+
+      /* Now we can print.  */
+      if (classification & MM_PRINT)
+	{
+	  int do_label = (print & label_mask) && label != MM_NULLLBL;
+	  int do_severity = (print & severity_mask) && severity != MM_NULLSEV;
+	  int do_text = (print & text_mask) && text != MM_NULLTXT;
+	  int do_action = (print & action_mask) && action != MM_NULLACT;
+	  int do_tag = (print & tag_mask) && tag != MM_NULLTAG;
+	  int need_colon = (do_label
+			    && (do_severity | do_text | do_action | do_tag));
+
+	  if (__fxprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n",
+			  do_label ? label : "",
+			  need_colon ? ": " : "",
+			  do_severity ? severity_rec->string : "",
+			  do_severity && (do_text | do_action | do_tag)
+			  ? ": " : "",
+			  do_text ? text : "",
+			  do_text && (do_action | do_tag) ? "\n" : "",
+			  do_action ? "TO FIX: " : "",
+			  do_action ? action : "",
+			  do_action && do_tag ? "  " : "",
+			  do_tag ? tag : "") < 0)
+	    /* Oh, oh.  An error occurred during the output.  */
+	    result = MM_NOMSG;
+	}
+
+      if (classification & MM_CONSOLE)
+	{
+	  int do_label = label != MM_NULLLBL;
+	  int do_severity = severity != MM_NULLSEV;
+	  int do_text = text != MM_NULLTXT;
+	  int do_action = action != MM_NULLACT;
+	  int do_tag = tag != MM_NULLTAG;
+	  int need_colon = (do_label
+			    && (do_severity | do_text | do_action | do_tag));
+
+	  syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n",
+		  do_label ? label : "",
+		  need_colon ? ": " : "",
+		  do_severity ? severity_rec->string : "",
+		  do_severity && (do_text | do_action | do_tag) ? ": " : "",
+		  do_text ? text : "",
+		  do_text && (do_action | do_tag) ? "\n" : "",
+		  do_action ? "TO FIX: " : "",
+		  do_action ? action : "",
+		  do_action && do_tag ? "  " : "",
+		  do_tag ? tag : "");
+	}
+    }
+
+  __libc_lock_unlock (lock);
 
 #ifdef __libc_ptf_call
   __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);

Modified: branches/eglibc-2_15/libc/sunrpc/Makefile
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/Makefile (original)
+++ branches/eglibc-2_15/libc/sunrpc/Makefile Fri Feb  7 13:13:28 2014
@@ -1,4 +1,4 @@
-# Copyright (C) 1994-2004, 2005, 2006, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1994-2004, 2005, 2006, 2011, 2012 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
@@ -62,6 +62,10 @@
 
 include ../Makeconfig
 
+ifeq ($(link-obsolete-rpc),yes)
+headers += $(headers-in-tirpc) $(headers-not-in-tirpc)
+endif
+
 ifeq ($(versioning),yes)
 need-export-routines-$(OPTION_EGLIBC_SUNRPC) += \
 			auth_des auth_unix clnt_gen clnt_perr clnt_tcp \
@@ -85,8 +89,10 @@
 # xdecrypt is also used by nss/nss_files/files-key.c.
 routines-y += des_crypt des_impl des_soft $(need-export-routines)
 
+ifneq ($(link-obsolete-rpc),yes)
 # We only add the RPC for compatibility to libc.so.
 shared-only-routines = $(routines)
+endif
 endif
 
 # We do not build rpcinfo anymore.  It is not needed for a bootstrap

Modified: branches/eglibc-2_15/libc/sunrpc/auth_des.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/auth_des.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/auth_des.c Fri Feb  7 13:13:28 2014
@@ -117,7 +117,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (authdes_create)
 #else
-libc_hidden_nolink (authdes_create, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (authdes_create, GLIBC_2_1)
 #endif
 
 AUTH *
@@ -211,7 +211,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (authdes_pk_create)
 #else
-libc_hidden_nolink (authdes_pk_create, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (authdes_pk_create, GLIBC_2_1)
 #endif
 
 /*

Modified: branches/eglibc-2_15/libc/sunrpc/auth_none.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/auth_none.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/auth_none.c Fri Feb  7 13:13:28 2014
@@ -95,7 +95,7 @@
   __libc_once (authnone_private_guard, authnone_create_once);
   return &authnone_private.no_client;
 }
-libc_hidden_nolink (authnone_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (authnone_create, GLIBC_2_0)
 
 static bool_t
 authnone_marshal (AUTH *client, XDR *xdrs)

Modified: branches/eglibc-2_15/libc/sunrpc/auth_unix.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/auth_unix.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/auth_unix.c Fri Feb  7 13:13:28 2014
@@ -149,7 +149,7 @@
   marshal_new_auth (auth);
   return auth;
 }
-libc_hidden_nolink (authunix_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (authunix_create, GLIBC_2_0)
 
 /*
  * Returns an auth handle with parameters determined by doing lots of
@@ -216,7 +216,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (authunix_create_default)
 #else
-libc_hidden_nolink (authunix_create_default, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (authunix_create_default, GLIBC_2_0)
 #endif
 
 /*

Modified: branches/eglibc-2_15/libc/sunrpc/authdes_prot.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/authdes_prot.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/authdes_prot.c Fri Feb  7 13:13:28 2014
@@ -63,7 +63,7 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_authdes_cred, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_authdes_cred, GLIBC_2_1)
 
 
 bool_t
@@ -78,4 +78,4 @@
 		       sizeof (verf->adv_int_u)));
   return TRUE;
 }
-libc_hidden_nolink (xdr_authdes_verf, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_authdes_verf, GLIBC_2_1)

Modified: branches/eglibc-2_15/libc/sunrpc/authuxprot.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/authuxprot.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/authuxprot.c Fri Feb  7 13:13:28 2014
@@ -63,4 +63,4 @@
     }
   return FALSE;
 }
-libc_hidden_nolink (xdr_authunix_parms, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_authunix_parms, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_gen.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_gen.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_gen.c Fri Feb  7 13:13:28 2014
@@ -175,5 +175,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (clnt_create)
 #else
-libc_hidden_nolink (clnt_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_create, GLIBC_2_0)
 #endif

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_perr.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_perr.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_perr.c Fri Feb  7 13:13:28 2014
@@ -127,7 +127,7 @@
 
   return str;
 }
-libc_hidden_nolink (clnt_sperror, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_sperror, GLIBC_2_0)
 
 void
 clnt_perror (CLIENT * rpch, const char *msg)
@@ -137,7 +137,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (clnt_perror)
 #else
-libc_hidden_nolink (clnt_perror, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_perror, GLIBC_2_0)
 #endif
 
 
@@ -270,7 +270,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (clnt_perrno)
 #else
-libc_hidden_nolink (clnt_perrno, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_perrno, GLIBC_2_0)
 #endif
 
 char *
@@ -308,7 +308,7 @@
 
   return str;
 }
-libc_hidden_nolink (clnt_spcreateerror, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_spcreateerror, GLIBC_2_0)
 
 void
 clnt_pcreateerror (const char *msg)
@@ -318,7 +318,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (clnt_pcreateerror)
 #else
-libc_hidden_nolink (clnt_pcreateerror, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_pcreateerror, GLIBC_2_0)
 #endif
 
 struct auth_errtab

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_raw.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_raw.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_raw.c Fri Feb  7 13:13:28 2014
@@ -129,7 +129,7 @@
   client->cl_auth = authnone_create ();
   return client;
 }
-libc_hidden_nolink (clntraw_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clntraw_create, GLIBC_2_0)
 
 static enum clnt_stat
 clntraw_call (h, proc, xargs, argsp, xresults, resultsp, timeout)

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_simp.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_simp.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_simp.c Fri Feb  7 13:13:28 2014
@@ -139,7 +139,7 @@
     crp->valid = 0;
   return (int) clnt_stat;
 }
-libc_hidden_nolink (callrpc, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (callrpc, GLIBC_2_0)
 
 #ifdef _RPC_THREAD_SAFE_
 void

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_tcp.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_tcp.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_tcp.c Fri Feb  7 13:13:28 2014
@@ -220,7 +220,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (clnttcp_create)
 #else
-libc_hidden_nolink (clnttcp_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnttcp_create, GLIBC_2_0)
 #endif
 
 static enum clnt_stat

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_udp.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_udp.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_udp.c Fri Feb  7 13:13:28 2014
@@ -239,7 +239,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (__libc_clntudp_bufcreate)
 #else
-libc_hidden_nolink (__libc_clntudp_bufcreate, GLIBC_PRIVATE)
+libc_hidden_nolink_sunrpc (__libc_clntudp_bufcreate, GLIBC_PRIVATE)
 #endif
 
 CLIENT *
@@ -250,7 +250,7 @@
   return __libc_clntudp_bufcreate (raddr, program, version, wait,
 				   sockp, sendsz, recvsz, 0);
 }
-libc_hidden_nolink (clntudp_bufcreate, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clntudp_bufcreate, GLIBC_2_0)
 
 CLIENT *
 clntudp_create (raddr, program, version, wait, sockp)
@@ -266,7 +266,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (clntudp_create)
 #else
-libc_hidden_nolink (clntudp_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clntudp_create, GLIBC_2_0)
 #endif
 
 static int

Modified: branches/eglibc-2_15/libc/sunrpc/clnt_unix.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/clnt_unix.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/clnt_unix.c Fri Feb  7 13:13:28 2014
@@ -200,7 +200,7 @@
   mem_free ((caddr_t) h, sizeof (CLIENT));
   return (CLIENT *) NULL;
 }
-libc_hidden_nolink (clntunix_create, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (clntunix_create, GLIBC_2_1)
 
 static enum clnt_stat
 clntunix_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)

Modified: branches/eglibc-2_15/libc/sunrpc/des_crypt.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/des_crypt.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/des_crypt.c Fri Feb  7 13:13:28 2014
@@ -102,7 +102,7 @@
   COPY8 (dp.des_ivec, ivec);
   return err;
 }
-libc_hidden_nolink (cbc_crypt, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (cbc_crypt, GLIBC_2_1)
 
 /*
  * ECB mode encryption
@@ -115,4 +115,4 @@
   dp.des_mode = ECB;
   return common_crypt (key, buf, len, mode, &dp);
 }
-libc_hidden_nolink (ecb_crypt, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (ecb_crypt, GLIBC_2_1)

Modified: branches/eglibc-2_15/libc/sunrpc/des_soft.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/des_soft.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/des_soft.c Fri Feb  7 13:13:28 2014
@@ -70,4 +70,4 @@
       p++;
     }
 }
-libc_hidden_nolink (des_setparity, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (des_setparity, GLIBC_2_1)

Modified: branches/eglibc-2_15/libc/sunrpc/get_myaddr.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/get_myaddr.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/get_myaddr.c Fri Feb  7 13:13:28 2014
@@ -99,5 +99,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (get_myaddress)
 #else
-libc_hidden_nolink (get_myaddress, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (get_myaddress, GLIBC_2_0)
 #endif

Modified: branches/eglibc-2_15/libc/sunrpc/key_call.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/key_call.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/key_call.c Fri Feb  7 13:13:28 2014
@@ -80,7 +80,7 @@
     }
   return 0;
 }
-libc_hidden_nolink (key_setsecret, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_setsecret, GLIBC_2_1)
 
 /* key_secretkey_is_set() returns 1 if the keyserver has a secret key
  * stored for the caller's effective uid; it returns 0 otherwise
@@ -109,7 +109,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (key_secretkey_is_set)
 #else
-libc_hidden_nolink (key_secretkey_is_set, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_secretkey_is_set, GLIBC_2_1)
 #endif
 
 int
@@ -133,7 +133,7 @@
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
-libc_hidden_nolink (key_encryptsession, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_encryptsession, GLIBC_2_1)
 
 int
 key_decryptsession (char *remotename, des_block *deskey)
@@ -155,7 +155,7 @@
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
-libc_hidden_nolink (key_decryptsession, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_decryptsession, GLIBC_2_1)
 
 int
 key_encryptsession_pk (char *remotename, netobj *remotekey,
@@ -180,7 +180,7 @@
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
-libc_hidden_nolink (key_encryptsession_pk, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_encryptsession_pk, GLIBC_2_1)
 
 int
 key_decryptsession_pk (char *remotename, netobj *remotekey,
@@ -205,7 +205,7 @@
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
-libc_hidden_nolink (key_decryptsession_pk, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_decryptsession_pk, GLIBC_2_1)
 
 int
 key_gendes (des_block *key)
@@ -239,7 +239,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (key_gendes)
 #else
-libc_hidden_nolink (key_gendes, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_gendes, GLIBC_2_1)
 #endif
 
 int
@@ -259,7 +259,7 @@
     }
   return 1;
 }
-libc_hidden_nolink (key_setnet, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_setnet, GLIBC_2_1)
 
 int
 key_get_conv (char *pkey, des_block *deskey)
@@ -278,7 +278,7 @@
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
-libc_hidden_nolink (key_get_conv, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (key_get_conv, GLIBC_2_1)
 
 /*
  * Hack to allow the keyserver to use AUTH_DES (for authenticated

Modified: branches/eglibc-2_15/libc/sunrpc/key_prot.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/key_prot.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/key_prot.c Fri Feb  7 13:13:28 2014
@@ -38,7 +38,7 @@
 
   return TRUE;
 }
-libc_hidden_nolink (xdr_keystatus, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_keystatus, GLIBC_2_0)
 
 bool_t
 xdr_keybuf (XDR * xdrs, keybuf objp)
@@ -48,7 +48,7 @@
 
   return TRUE;
 }
-libc_hidden_nolink (xdr_keybuf, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_keybuf, GLIBC_2_0)
 
 bool_t
 xdr_netnamestr (XDR * xdrs, netnamestr * objp)
@@ -58,7 +58,7 @@
 
   return TRUE;
 }
-libc_hidden_nolink (xdr_netnamestr, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_netnamestr, GLIBC_2_1)
 
 bool_t
 xdr_cryptkeyarg (XDR * xdrs, cryptkeyarg * objp)
@@ -71,7 +71,7 @@
 
   return TRUE;
 }
-libc_hidden_nolink (xdr_cryptkeyarg, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_cryptkeyarg, GLIBC_2_0)
 
 bool_t
 xdr_cryptkeyarg2 (XDR * xdrs, cryptkeyarg2 * objp)
@@ -84,7 +84,7 @@
     return FALSE;
   return TRUE;
 }
-libc_hidden_nolink (xdr_cryptkeyarg2, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_cryptkeyarg2, GLIBC_2_0)
 
 bool_t
 xdr_cryptkeyres (XDR * xdrs, cryptkeyres * objp)
@@ -102,7 +102,7 @@
     }
   return TRUE;
 }
-libc_hidden_nolink (xdr_cryptkeyres, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_cryptkeyres, GLIBC_2_0)
 
 bool_t
 xdr_unixcred (XDR * xdrs, unixcred * objp)
@@ -117,7 +117,7 @@
     return FALSE;
   return TRUE;
 }
-libc_hidden_nolink (xdr_unixcred, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_unixcred, GLIBC_2_1)
 
 bool_t
 xdr_getcredres (XDR * xdrs, getcredres * objp)
@@ -135,7 +135,7 @@
     }
   return TRUE;
 }
-libc_hidden_nolink (xdr_getcredres, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_getcredres, GLIBC_2_1)
 
 bool_t
 xdr_key_netstarg (XDR * xdrs, key_netstarg * objp)
@@ -148,7 +148,7 @@
     return FALSE;
   return TRUE;
 }
-libc_hidden_nolink (xdr_key_netstarg, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_key_netstarg, GLIBC_2_0)
 
 bool_t
 xdr_key_netstres (XDR * xdrs, key_netstres * objp)
@@ -166,4 +166,4 @@
     }
   return TRUE;
 }
-libc_hidden_nolink (xdr_key_netstres, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_key_netstres, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/netname.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/netname.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/netname.c Fri Feb  7 13:13:28 2014
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-1999, 2002, 2007, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 1997-1999, 2002, 2007, 2011, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxxxxxxxxxxxxxx>, 1997.
 
@@ -55,7 +55,7 @@
     netname[i - 1] = '\0';
   return 1;
 }
-libc_hidden_nolink (user2netname, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (user2netname, GLIBC_2_1)
 
 int
 host2netname (char netname[MAXNETNAMELEN + 1], const char *host,
@@ -119,7 +119,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (host2netname)
 #else
-libc_hidden_nolink (host2netname, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (host2netname, GLIBC_2_1)
 #endif
 
 int
@@ -135,7 +135,7 @@
     dummy = user2netname (name, uid, NULL);
   return (dummy);
 }
-libc_hidden_nolink (getnetname, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (getnetname, GLIBC_2_1)
 
 /* Type of the lookup function for netname2user.  */
 typedef int (*netname2user_function) (const char netname[MAXNETNAMELEN + 1],
@@ -188,7 +188,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (netname2user)
 #else
-libc_hidden_nolink (netname2user, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (netname2user, GLIBC_2_1)
 #endif
 
 int
@@ -215,4 +215,4 @@
 
   return 1;
 }
-libc_hidden_nolink (netname2host, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (netname2host, GLIBC_2_1)

Modified: branches/eglibc-2_15/libc/sunrpc/pm_getmaps.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/pm_getmaps.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/pm_getmaps.c Fri Feb  7 13:13:28 2014
@@ -84,4 +84,4 @@
   address->sin_port = 0;
   return head;
 }
-libc_hidden_nolink (pmap_getmaps, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (pmap_getmaps, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/pm_getport.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/pm_getport.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/pm_getport.c Fri Feb  7 13:13:28 2014
@@ -142,7 +142,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (__libc_rpc_getport)
 #else
-libc_hidden_nolink (__libc_rpc_getport, GLIBC_PRIVATE)
+libc_hidden_nolink_sunrpc (__libc_rpc_getport, GLIBC_PRIVATE)
 #endif
 
 
@@ -160,4 +160,4 @@
 {
   return __libc_rpc_getport (address, program, version, protocol, 5, 60);
 }
-libc_hidden_nolink (pmap_getport, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (pmap_getport, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/pmap_clnt.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/pmap_clnt.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/pmap_clnt.c Fri Feb  7 13:13:28 2014
@@ -131,7 +131,7 @@
   /* (void)close(socket); CLNT_DESTROY closes it */
   return rslt;
 }
-libc_hidden_nolink (pmap_set, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (pmap_set, GLIBC_2_0)
 
 /*
  * Remove the mapping between program,version and port.
@@ -162,4 +162,4 @@
   /* (void)close(socket); CLNT_DESTROY already closed it */
   return rslt;
 }
-libc_hidden_nolink (pmap_unset, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (pmap_unset, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/pmap_prot.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/pmap_prot.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/pmap_prot.c Fri Feb  7 13:13:28 2014
@@ -49,4 +49,4 @@
     return xdr_u_long (xdrs, &regs->pm_port);
   return FALSE;
 }
-libc_hidden_nolink (xdr_pmap, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_pmap, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/pmap_prot2.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/pmap_prot2.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/pmap_prot2.c Fri Feb  7 13:13:28 2014
@@ -110,4 +110,4 @@
       rp = freeing ? &next : &((*rp)->pml_next);
     }
 }
-libc_hidden_nolink (xdr_pmaplist, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_pmaplist, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/pmap_rmt.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/pmap_rmt.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/pmap_rmt.c Fri Feb  7 13:13:28 2014
@@ -104,7 +104,7 @@
   addr->sin_port = 0;
   return stat;
 }
-libc_hidden_nolink (pmap_rmtcall, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (pmap_rmtcall, GLIBC_2_0)
 
 
 /*
@@ -137,7 +137,7 @@
     }
   return FALSE;
 }
-libc_hidden_nolink (xdr_rmtcall_args, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_rmtcall_args, GLIBC_2_0)
 
 /*
  * XDR remote call results
@@ -160,7 +160,7 @@
     }
   return FALSE;
 }
-libc_hidden_nolink (xdr_rmtcallres, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_rmtcallres, GLIBC_2_0)
 
 
 /*
@@ -388,4 +388,4 @@
   AUTH_DESTROY (unix_auth);
   return stat;
 }
-libc_hidden_nolink (clnt_broadcast, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_broadcast, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/publickey.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/publickey.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/publickey.c Fri Feb  7 13:13:28 2014
@@ -1,5 +1,5 @@
 /* Get public or secret key from key server.
-   Copyright (C) 1996-1999,2002,2007 Free Software Foundation, Inc.
+   Copyright (C) 1996-1999,2002,2007,2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1996.
 
@@ -76,7 +76,7 @@
 
   return status == NSS_STATUS_SUCCESS;
 }
-libc_hidden_nolink (getpublickey, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (getpublickey, GLIBC_2_0)
 
 
 int
@@ -119,4 +119,4 @@
 
   return status == NSS_STATUS_SUCCESS;
 }
-libc_hidden_nolink (getsecretkey, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (getsecretkey, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/rpc_cmsg.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/rpc_cmsg.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/rpc_cmsg.c Fri Feb  7 13:13:28 2014
@@ -194,4 +194,4 @@
     return xdr_opaque_auth (xdrs, &(cmsg->rm_call.cb_verf));
   return FALSE;
 }
-libc_hidden_nolink (xdr_callmsg, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_callmsg, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/rpc_common.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/rpc_common.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/rpc_common.c Fri Feb  7 13:13:28 2014
@@ -45,7 +45,7 @@
    section but we cannot add const to the type because this isn't how
    the variable is declared.  So we use the section attribute.  */
 struct opaque_auth _null_auth __attribute__ ((nocommon));
-libc_hidden_nolink (_null_auth, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (_null_auth, GLIBC_2_0)
 fd_set svc_fdset;
 struct rpc_createerr rpc_createerr;
 struct pollfd *svc_pollfd;

Modified: branches/eglibc-2_15/libc/sunrpc/rpc_dtable.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/rpc_dtable.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/rpc_dtable.c Fri Feb  7 13:13:28 2014
@@ -46,4 +46,4 @@
 
   return size;
 }
-libc_hidden_nolink (_rpc_dtablesize, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (_rpc_dtablesize, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/rpc_prot.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/rpc_prot.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/rpc_prot.c Fri Feb  7 13:13:28 2014
@@ -57,7 +57,7 @@
 		      &ap->oa_length, MAX_AUTH_BYTES);
   return FALSE;
 }
-libc_hidden_nolink (xdr_opaque_auth, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_opaque_auth, GLIBC_2_0)
 
 /*
  * XDR a DES block
@@ -67,7 +67,7 @@
 {
   return xdr_opaque (xdrs, (caddr_t) blkp, sizeof (des_block));
 }
-libc_hidden_nolink (xdr_des_block, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_des_block, GLIBC_2_0)
 
 /* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */
 
@@ -95,7 +95,7 @@
     }
   return TRUE;		/* TRUE => open ended set of problems */
 }
-libc_hidden_nolink (xdr_accepted_reply, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_accepted_reply, GLIBC_2_0)
 
 /*
  * XDR the MSG_DENIED part of a reply message union
@@ -118,7 +118,7 @@
     }
   return FALSE;
 }
-libc_hidden_nolink (xdr_rejected_reply, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_rejected_reply, GLIBC_2_0)
 
 static const struct xdr_discrim reply_dscrm[3] =
 {
@@ -142,7 +142,7 @@
 		      NULL_xdrproc_t);
   return FALSE;
 }
-libc_hidden_nolink (xdr_replymsg, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_replymsg, GLIBC_2_0)
 
 
 /*
@@ -167,7 +167,7 @@
     return xdr_u_long (xdrs, &(cmsg->rm_call.cb_vers));
   return FALSE;
 }
-libc_hidden_nolink (xdr_callhdr, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_callhdr, GLIBC_2_0)
 
 /* ************************** Client utility routine ************* */
 
@@ -277,4 +277,4 @@
       break;
     }
 }
-libc_hidden_nolink (_seterr_reply, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (_seterr_reply, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/rpc_thread.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/rpc_thread.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/rpc_thread.c Fri Feb  7 13:13:28 2014
@@ -97,7 +97,7 @@
 		return &svc_fdset;
 	return &tvp->svc_fdset_s;
 }
-libc_hidden_nolink (__rpc_thread_svc_fdset, GLIBC_2_2_3)
+libc_hidden_nolink_sunrpc (__rpc_thread_svc_fdset, GLIBC_2_2_3)
 
 struct rpc_createerr *
 __rpc_thread_createerr (void)
@@ -109,7 +109,7 @@
 		return &rpc_createerr;
 	return &tvp->rpc_createerr_s;
 }
-libc_hidden_nolink (__rpc_thread_createerr, GLIBC_2_2_3)
+libc_hidden_nolink_sunrpc (__rpc_thread_createerr, GLIBC_2_2_3)
 
 struct pollfd **
 __rpc_thread_svc_pollfd (void)
@@ -124,7 +124,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (__rpc_thread_svc_pollfd)
 #else
-libc_hidden_nolink (__rpc_thread_svc_pollfd, GLIBC_2_2_3)
+libc_hidden_nolink_sunrpc (__rpc_thread_svc_pollfd, GLIBC_2_2_3)
 #endif
 
 int *
@@ -140,7 +140,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (__rpc_thread_svc_max_pollfd)
 #else
-libc_hidden_nolink (__rpc_thread_svc_max_pollfd, GLIBC_2_2_3)
+libc_hidden_nolink_sunrpc (__rpc_thread_svc_max_pollfd, GLIBC_2_2_3)
 #endif
 
 #endif /* _RPC_THREAD_SAFE_ */

Modified: branches/eglibc-2_15/libc/sunrpc/rtime.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/rtime.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/rtime.c Fri Feb  7 13:13:28 2014
@@ -140,4 +140,4 @@
   timep->tv_usec = 0;
   return 0;
 }
-libc_hidden_nolink (rtime, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (rtime, GLIBC_2_1)

Modified: branches/eglibc-2_15/libc/sunrpc/svc.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc.c Fri Feb  7 13:13:28 2014
@@ -115,7 +115,7 @@
 					       POLLRDNORM | POLLRDBAND);
     }
 }
-libc_hidden_nolink (xprt_register, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xprt_register, GLIBC_2_0)
 
 /* De-activate a transport handle. */
 void
@@ -139,7 +139,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xprt_unregister)
 #else
-libc_hidden_nolink (xprt_unregister, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xprt_unregister, GLIBC_2_0)
 #endif
 
 
@@ -218,7 +218,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svc_register)
 #else
-libc_hidden_nolink (svc_register, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_register, GLIBC_2_0)
 #endif
 
 /* Remove a service program from the callout list. */
@@ -242,7 +242,7 @@
   if (! svc_is_mapped (prog, vers))
     pmap_unset (prog, vers);
 }
-libc_hidden_nolink (svc_unregister, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_unregister, GLIBC_2_0)
 
 /* ******************* REPLY GENERATION ROUTINES  ************ */
 
@@ -264,7 +264,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svc_sendreply)
 #else
-libc_hidden_nolink (svc_sendreply, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_sendreply, GLIBC_2_0)
 #endif
 
 /* No procedure error reply */
@@ -282,7 +282,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svcerr_noproc)
 #else
-libc_hidden_nolink (svcerr_noproc, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_noproc, GLIBC_2_0)
 #endif
 
 /* Can't decode args error reply */
@@ -300,7 +300,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svcerr_decode)
 #else
-libc_hidden_nolink (svcerr_decode, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_decode, GLIBC_2_0)
 #endif
 
 /* Some system error */
@@ -318,7 +318,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svcerr_systemerr)
 #else
-libc_hidden_nolink (svcerr_systemerr, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_systemerr, GLIBC_2_0)
 #endif
 
 /* Authentication error reply */
@@ -333,7 +333,7 @@
   rply.rjcted_rply.rj_why = why;
   SVC_REPLY (xprt, &rply);
 }
-libc_hidden_nolink (svcerr_auth, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_auth, GLIBC_2_0)
 
 /* Auth too weak error reply */
 void
@@ -341,7 +341,7 @@
 {
   svcerr_auth (xprt, AUTH_TOOWEAK);
 }
-libc_hidden_nolink (svcerr_weakauth, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_weakauth, GLIBC_2_0)
 
 /* Program unavailable error reply */
 void
@@ -355,7 +355,7 @@
   rply.acpted_rply.ar_stat = PROG_UNAVAIL;
   SVC_REPLY (xprt, &rply);
 }
-libc_hidden_nolink (svcerr_noprog, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_noprog, GLIBC_2_0)
 
 /* Program version mismatch error reply */
 void
@@ -372,7 +372,7 @@
   rply.acpted_rply.ar_vers.high = high_vers;
   SVC_REPLY (xprt, &rply);
 }
-libc_hidden_nolink (svcerr_progvers, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcerr_progvers, GLIBC_2_0)
 
 /* ******************* SERVER INPUT STUFF ******************* */
 
@@ -401,7 +401,7 @@
   readfds.fds_bits[0] = rdfds;
   svc_getreqset (&readfds);
 }
-libc_hidden_nolink (svc_getreq, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_getreq, GLIBC_2_0)
 
 void
 svc_getreqset (fd_set *readfds)
@@ -420,7 +420,7 @@
     for (mask = *maskp++; (bit = ffsl (mask)); mask ^= (1L << (bit - 1)))
       svc_getreq_common (sock + bit - 1);
 }
-libc_hidden_nolink (svc_getreqset, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_getreqset, GLIBC_2_0)
 
 void
 svc_getreq_poll (struct pollfd *pfdp, int pollretval)
@@ -449,7 +449,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svc_getreq_poll)
 #else
-libc_hidden_nolink (svc_getreq_poll, GLIBC_2_2)
+libc_hidden_nolink_sunrpc (svc_getreq_poll, GLIBC_2_2)
 #endif
 
 
@@ -542,7 +542,7 @@
     }
   while (stat == XPRT_MOREREQS);
 }
-libc_hidden_nolink (svc_getreq_common, GLIBC_2_2)
+libc_hidden_nolink_sunrpc (svc_getreq_common, GLIBC_2_2)
 
 #ifdef _RPC_THREAD_SAFE_
 

Modified: branches/eglibc-2_15/libc/sunrpc/svc_auth.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc_auth.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc_auth.c Fri Feb  7 13:13:28 2014
@@ -105,7 +105,7 @@
 
   return AUTH_REJECTEDCRED;
 }
-libc_hidden_nolink (_authenticate, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (_authenticate, GLIBC_2_1)
 
 static enum auth_stat
 _svcauth_null (struct svc_req *rqst, struct rpc_msg *msg)

Modified: branches/eglibc-2_15/libc/sunrpc/svc_raw.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc_raw.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc_raw.c Fri Feb  7 13:13:28 2014
@@ -88,7 +88,7 @@
   xdrmem_create (&srp->xdr_stream, srp->_raw_buf, UDPMSGSIZE, XDR_FREE);
   return &srp->server;
 }
-libc_hidden_nolink (svcraw_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcraw_create, GLIBC_2_0)
 
 static enum xprt_stat
 svcraw_stat (SVCXPRT *xprt)

Modified: branches/eglibc-2_15/libc/sunrpc/svc_run.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc_run.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc_run.c Fri Feb  7 13:13:28 2014
@@ -46,7 +46,7 @@
   svc_pollfd = NULL;
   svc_max_pollfd = 0;
 }
-libc_hidden_nolink (svc_exit, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_exit, GLIBC_2_0)
 
 void
 svc_run (void)
@@ -104,5 +104,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svc_run)
 #else
-libc_hidden_nolink (svc_run, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svc_run, GLIBC_2_0)
 #endif

Modified: branches/eglibc-2_15/libc/sunrpc/svc_tcp.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc_tcp.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc_tcp.c Fri Feb  7 13:13:28 2014
@@ -187,7 +187,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svctcp_create)
 #else
-libc_hidden_nolink (svctcp_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svctcp_create, GLIBC_2_0)
 #endif
 
 /*
@@ -199,7 +199,7 @@
 {
   return makefd_xprt (fd, sendsize, recvsize);
 }
-libc_hidden_nolink (svcfd_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcfd_create, GLIBC_2_0)
 
 static SVCXPRT *
 internal_function

Modified: branches/eglibc-2_15/libc/sunrpc/svc_udp.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc_udp.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc_udp.c Fri Feb  7 13:13:28 2014
@@ -184,7 +184,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svcudp_bufcreate)
 #else
-libc_hidden_nolink (svcudp_bufcreate, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcudp_bufcreate, GLIBC_2_0)
 #endif
 
 SVCXPRT *
@@ -196,7 +196,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (svcudp_create)
 #else
-libc_hidden_nolink (svcudp_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcudp_create, GLIBC_2_0)
 #endif
 
 static enum xprt_stat
@@ -500,7 +500,7 @@
   su->su_cache = (char *) uc;
   return 1;
 }
-libc_hidden_nolink (svcudp_enablecache, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcudp_enablecache, GLIBC_2_0)
 
 
 /*

Modified: branches/eglibc-2_15/libc/sunrpc/svc_unix.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svc_unix.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svc_unix.c Fri Feb  7 13:13:28 2014
@@ -184,7 +184,7 @@
   xprt_register (xprt);
   return xprt;
 }
-libc_hidden_nolink (svcunix_create, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (svcunix_create, GLIBC_2_1)
 
 /*
  * Like svunix_create(), except the routine takes any *open* UNIX file
@@ -195,7 +195,7 @@
 {
   return makefd_xprt (fd, sendsize, recvsize);
 }
-libc_hidden_nolink (svcunixfd_create, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (svcunixfd_create, GLIBC_2_1)
 
 static SVCXPRT *
 internal_function

Modified: branches/eglibc-2_15/libc/sunrpc/svcauth_des.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/svcauth_des.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/svcauth_des.c Fri Feb  7 13:13:28 2014
@@ -583,7 +583,7 @@
     groups[i] = cred->groups[i];
   return 1;
 }
-libc_hidden_nolink (authdes_getucred, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (authdes_getucred, GLIBC_2_1)
 
 static void
 internal_function

Modified: branches/eglibc-2_15/libc/sunrpc/xcrypt.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xcrypt.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xcrypt.c Fri Feb  7 13:13:28 2014
@@ -127,7 +127,7 @@
   free (buf);
   return 1;
 }
-libc_hidden_nolink (xencrypt, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xencrypt, GLIBC_2_0)
 
 /*
  * Decrypt secret key using passwd
@@ -163,7 +163,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdecrypt)
 #else
-libc_hidden_nolink (xdecrypt, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdecrypt, GLIBC_2_1)
 #endif
 
 /*

Modified: branches/eglibc-2_15/libc/sunrpc/xdr.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr.c Fri Feb  7 13:13:28 2014
@@ -72,7 +72,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_free)
 #else
-libc_hidden_nolink (xdr_free, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_free, GLIBC_2_0)
 #endif
 
 /*
@@ -86,7 +86,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_void)
 #else
-libc_hidden_nolink (xdr_void, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_void, GLIBC_2_0)
 #endif
 
 /*
@@ -126,7 +126,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_int)
 #else
-libc_hidden_nolink (xdr_int, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_int, GLIBC_2_0)
 #endif
 
 /*
@@ -165,7 +165,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_u_int)
 #else
-libc_hidden_nolink (xdr_u_int, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_u_int, GLIBC_2_0)
 #endif
 
 /*
@@ -193,7 +193,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_long)
 #else
-libc_hidden_nolink (xdr_long, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_long, GLIBC_2_0)
 #endif
 
 /*
@@ -232,7 +232,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_u_long)
 #else
-libc_hidden_nolink (xdr_u_long, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_u_long, GLIBC_2_0)
 #endif
 
 /*
@@ -268,7 +268,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_hyper)
 #else
-libc_hidden_nolink (xdr_hyper, GLIBC_2_1_1)
+libc_hidden_nolink_sunrpc (xdr_hyper, GLIBC_2_1_1)
 #endif
 
 /*
@@ -304,7 +304,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_u_hyper)
 #else
-libc_hidden_nolink (xdr_u_hyper, GLIBC_2_1_1)
+libc_hidden_nolink_sunrpc (xdr_u_hyper, GLIBC_2_1_1)
 #endif
 
 bool_t
@@ -315,7 +315,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_longlong_t)
 #else
-libc_hidden_nolink (xdr_longlong_t, GLIBC_2_1_1)
+libc_hidden_nolink_sunrpc (xdr_longlong_t, GLIBC_2_1_1)
 #endif
 
 bool_t
@@ -326,7 +326,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_u_longlong_t)
 #else
-libc_hidden_nolink (xdr_u_longlong_t, GLIBC_2_1_1)
+libc_hidden_nolink_sunrpc (xdr_u_longlong_t, GLIBC_2_1_1)
 #endif
 
 /*
@@ -359,7 +359,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_short)
 #else
-libc_hidden_nolink (xdr_short, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_short, GLIBC_2_0)
 #endif
 
 /*
@@ -392,7 +392,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_u_short)
 #else
-libc_hidden_nolink (xdr_u_short, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_u_short, GLIBC_2_0)
 #endif
 
 
@@ -415,7 +415,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_char)
 #else
-libc_hidden_nolink (xdr_char, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_char, GLIBC_2_0)
 #endif
 
 /*
@@ -437,7 +437,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_u_char)
 #else
-libc_hidden_nolink (xdr_u_char, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_u_char, GLIBC_2_0)
 #endif
 
 /*
@@ -470,7 +470,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_bool)
 #else
-libc_hidden_nolink (xdr_bool, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_bool, GLIBC_2_0)
 #endif
 
 /*
@@ -525,7 +525,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_enum)
 #else
-libc_hidden_nolink (xdr_enum, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_enum, GLIBC_2_0)
 #endif
 
 /*
@@ -580,7 +580,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_opaque)
 #else
-libc_hidden_nolink (xdr_opaque, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_opaque, GLIBC_2_0)
 #endif
 
 /*
@@ -648,7 +648,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_bytes)
 #else
-libc_hidden_nolink (xdr_bytes, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_bytes, GLIBC_2_0)
 #endif
 
 /*
@@ -665,7 +665,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_netobj)
 #else
-libc_hidden_nolink (xdr_netobj, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_netobj, GLIBC_2_0)
 #endif
 
 /*
@@ -714,7 +714,7 @@
   return ((dfault == NULL_xdrproc_t) ? FALSE :
 	  (*dfault) (xdrs, unp, LASTUNSIGNED));
 }
-libc_hidden_nolink (xdr_union, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_union, GLIBC_2_0)
 
 
 /*
@@ -806,7 +806,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_string)
 #else
-libc_hidden_nolink (xdr_string, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_string, GLIBC_2_0)
 #endif
 
 /*
@@ -827,5 +827,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_wrapstring)
 #else
-libc_hidden_nolink (xdr_wrapstring, GLIBC_2_0)
-#endif
+libc_hidden_nolink_sunrpc (xdr_wrapstring, GLIBC_2_0)
+#endif

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_array.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_array.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_array.c Fri Feb  7 13:13:28 2014
@@ -127,7 +127,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_array)
 #else
-libc_hidden_nolink (xdr_array, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_array, GLIBC_2_0)
 #endif
 
 /*
@@ -162,4 +162,4 @@
     }
   return TRUE;
 }
-libc_hidden_nolink (xdr_vector, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_vector, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_float.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_float.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_float.c Fri Feb  7 13:13:28 2014
@@ -158,7 +158,7 @@
 	}
 	return (FALSE);
 }
-libc_hidden_nolink (xdr_float, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_float, GLIBC_2_0)
 
 /*
  * This routine works on Suns (Sky / 68000's) and Vaxen.
@@ -300,4 +300,4 @@
 	}
 	return (FALSE);
 }
-libc_hidden_nolink (xdr_double, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_double, GLIBC_2_0)

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_intXX_t.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_intXX_t.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_intXX_t.c Fri Feb  7 13:13:28 2014
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998, 1999, 2000, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (c) 1998, 1999, 2000, 2004, 2005, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@xxxxxxxxxxxxxxxxxxx>, 1998.
 
@@ -47,14 +47,14 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_int64_t, GLIBC_2_1_1)
+libc_hidden_nolink_sunrpc (xdr_int64_t, GLIBC_2_1_1)
 
 bool_t
 xdr_quad_t (XDR *xdrs, quad_t *ip)
 {
   return xdr_int64_t (xdrs, (int64_t *) ip);
 }
-libc_hidden_nolink (xdr_quad_t, GLIBC_2_3_4)
+libc_hidden_nolink_sunrpc (xdr_quad_t, GLIBC_2_3_4)
 
 /* XDR 64bit unsigned integers */
 bool_t
@@ -83,14 +83,14 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_uint64_t, GLIBC_2_1_1)
+libc_hidden_nolink_sunrpc (xdr_uint64_t, GLIBC_2_1_1)
 
 bool_t
 xdr_u_quad_t (XDR *xdrs, u_quad_t *ip)
 {
   return xdr_uint64_t (xdrs, (uint64_t *) ip);
 }
-libc_hidden_nolink (xdr_u_quad_t, GLIBC_2_3_4)
+libc_hidden_nolink_sunrpc (xdr_u_quad_t, GLIBC_2_3_4)
 
 /* XDR 32bit integers */
 bool_t
@@ -108,7 +108,7 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_int32_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_int32_t, GLIBC_2_1)
 
 /* XDR 32bit unsigned integers */
 bool_t
@@ -129,7 +129,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_uint32_t)
 #else
-libc_hidden_nolink (xdr_uint32_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_uint32_t, GLIBC_2_1)
 #endif
 
 /* XDR 16bit integers */
@@ -154,7 +154,7 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_int16_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_int16_t, GLIBC_2_1)
 
 /* XDR 16bit unsigned integers */
 bool_t
@@ -178,7 +178,7 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_uint16_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_uint16_t, GLIBC_2_1)
 
 /* XDR 8bit integers */
 bool_t
@@ -202,7 +202,7 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_int8_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_int8_t, GLIBC_2_1)
 
 /* XDR 8bit unsigned integers */
 bool_t
@@ -226,4 +226,4 @@
       return FALSE;
     }
 }
-libc_hidden_nolink (xdr_uint8_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_uint8_t, GLIBC_2_1)

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_mem.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_mem.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_mem.c Fri Feb  7 13:13:28 2014
@@ -81,7 +81,7 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdrmem_create)
 #else
-libc_hidden_nolink (xdrmem_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdrmem_create, GLIBC_2_0)
 #endif
 
 /*

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_rec.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_rec.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_rec.c Fri Feb  7 13:13:28 2014
@@ -189,7 +189,7 @@
   rstrm->fbtbc = 0;
   rstrm->last_frag = TRUE;
 }
-libc_hidden_nolink (xdrrec_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdrrec_create, GLIBC_2_0)
 
 
 /*
@@ -477,7 +477,7 @@
   rstrm->last_frag = FALSE;
   return TRUE;
 }
-libc_hidden_nolink (xdrrec_skiprecord, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdrrec_skiprecord, GLIBC_2_0)
 
 /*
  * Lookahead function.
@@ -501,7 +501,7 @@
     return TRUE;
   return FALSE;
 }
-libc_hidden_nolink (xdrrec_eof, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdrrec_eof, GLIBC_2_0)
 
 /*
  * The client must tell the package when an end-of-record has occurred.
@@ -528,7 +528,7 @@
   rstrm->out_finger += BYTES_PER_XDR_UNIT;
   return TRUE;
 }
-libc_hidden_nolink (xdrrec_endofrecord, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdrrec_endofrecord, GLIBC_2_0)
 
 
 /*

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_ref.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_ref.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_ref.c Fri Feb  7 13:13:28 2014
@@ -90,7 +90,7 @@
     }
   return stat;
 }
-libc_hidden_nolink (xdr_reference, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_reference, GLIBC_2_0)
 
 
 /*
@@ -137,5 +137,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_pointer)
 #else
-libc_hidden_nolink (xdr_pointer, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_pointer, GLIBC_2_0)
 #endif

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_sizeof.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_sizeof.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_sizeof.c Fri Feb  7 13:13:28 2014
@@ -161,5 +161,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdr_sizeof)
 #else
-libc_hidden_nolink (xdr_sizeof, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_sizeof, GLIBC_2_1)
 #endif

Modified: branches/eglibc-2_15/libc/sunrpc/xdr_stdio.c
==============================================================================
--- branches/eglibc-2_15/libc/sunrpc/xdr_stdio.c (original)
+++ branches/eglibc-2_15/libc/sunrpc/xdr_stdio.c Fri Feb  7 13:13:28 2014
@@ -191,5 +191,5 @@
 #ifdef EXPORT_RPC_SYMBOLS
 libc_hidden_def (xdrstdio_create)
 #else
-libc_hidden_nolink (xdrstdio_create, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdrstdio_create, GLIBC_2_0)
 #endif

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits