summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2014-02-07 21:13:28 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2014-02-07 21:13:28 +0000
commit891ea915baaa267b253cd0b7ad37893ae80d5f12 (patch)
tree7ad2b7f7dc53e157c1172644515d46a74bc14b22
parentbaef8ab2ac4daea246a54919204f138ad57cac53 (diff)
Merge changes between r25091 and r25240 from /fsf/glibc-2_15-branch.eglibc-2_15
git-svn-id: svn://svn.eglibc.org/branches/eglibc-2_15@25241 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r--libc/ChangeLog41
-rw-r--r--libc/Makeconfig6
-rw-r--r--libc/Makefile2
-rw-r--r--libc/NEWS9
-rw-r--r--libc/config.h.in3
-rw-r--r--libc/config.make.in1
-rwxr-xr-xlibc/configure18
-rw-r--r--libc/configure.in11
-rw-r--r--libc/elf/Makefile15
-rw-r--r--libc/elf/dl-close.c15
-rw-r--r--libc/elf/dl-deps.c7
-rw-r--r--libc/elf/dl-libc.c9
-rw-r--r--libc/elf/dl-open.c124
-rw-r--r--libc/elf/rtld.c2
-rw-r--r--libc/elf/tst-relsort1.c19
-rw-r--r--libc/elf/tst-relsort1mod1.c7
-rw-r--r--libc/elf/tst-relsort1mod2.c7
-rw-r--r--libc/include/libc-symbols.h9
-rw-r--r--libc/include/link.h8
-rw-r--r--libc/nis/Makefile10
-rw-r--r--libc/stdio-common/Makefile1
-rw-r--r--libc/stdio-common/tst-sprintf.c13
-rw-r--r--libc/stdio-common/vfprintf.c39
-rw-r--r--libc/stdlib/fmtmsg.c119
-rw-r--r--libc/sunrpc/Makefile8
-rw-r--r--libc/sunrpc/auth_des.c4
-rw-r--r--libc/sunrpc/auth_none.c2
-rw-r--r--libc/sunrpc/auth_unix.c4
-rw-r--r--libc/sunrpc/authdes_prot.c4
-rw-r--r--libc/sunrpc/authuxprot.c2
-rw-r--r--libc/sunrpc/clnt_gen.c2
-rw-r--r--libc/sunrpc/clnt_perr.c10
-rw-r--r--libc/sunrpc/clnt_raw.c2
-rw-r--r--libc/sunrpc/clnt_simp.c2
-rw-r--r--libc/sunrpc/clnt_tcp.c2
-rw-r--r--libc/sunrpc/clnt_udp.c6
-rw-r--r--libc/sunrpc/clnt_unix.c2
-rw-r--r--libc/sunrpc/des_crypt.c4
-rw-r--r--libc/sunrpc/des_soft.c2
-rw-r--r--libc/sunrpc/get_myaddr.c2
-rw-r--r--libc/sunrpc/key_call.c18
-rw-r--r--libc/sunrpc/key_prot.c20
-rw-r--r--libc/sunrpc/netname.c12
-rw-r--r--libc/sunrpc/pm_getmaps.c2
-rw-r--r--libc/sunrpc/pm_getport.c4
-rw-r--r--libc/sunrpc/pmap_clnt.c4
-rw-r--r--libc/sunrpc/pmap_prot.c2
-rw-r--r--libc/sunrpc/pmap_prot2.c2
-rw-r--r--libc/sunrpc/pmap_rmt.c8
-rw-r--r--libc/sunrpc/publickey.c6
-rw-r--r--libc/sunrpc/rpc_cmsg.c2
-rw-r--r--libc/sunrpc/rpc_common.c2
-rw-r--r--libc/sunrpc/rpc_dtable.c2
-rw-r--r--libc/sunrpc/rpc_prot.c14
-rw-r--r--libc/sunrpc/rpc_thread.c8
-rw-r--r--libc/sunrpc/rtime.c2
-rw-r--r--libc/sunrpc/svc.c32
-rw-r--r--libc/sunrpc/svc_auth.c2
-rw-r--r--libc/sunrpc/svc_raw.c2
-rw-r--r--libc/sunrpc/svc_run.c4
-rw-r--r--libc/sunrpc/svc_tcp.c4
-rw-r--r--libc/sunrpc/svc_udp.c6
-rw-r--r--libc/sunrpc/svc_unix.c4
-rw-r--r--libc/sunrpc/svcauth_des.c2
-rw-r--r--libc/sunrpc/xcrypt.c4
-rw-r--r--libc/sunrpc/xdr.c44
-rw-r--r--libc/sunrpc/xdr_array.c4
-rw-r--r--libc/sunrpc/xdr_float.c4
-rw-r--r--libc/sunrpc/xdr_intXX_t.c22
-rw-r--r--libc/sunrpc/xdr_mem.c2
-rw-r--r--libc/sunrpc/xdr_rec.c8
-rw-r--r--libc/sunrpc/xdr_ref.c4
-rw-r--r--libc/sunrpc/xdr_sizeof.c2
-rw-r--r--libc/sunrpc/xdr_stdio.c2
74 files changed, 499 insertions, 314 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index 92b313878..7b5442d74 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,44 @@
+2012-09-28 Andreas Schwab <schwab@linux-m68k.org>
+
+ [BZ #6530]
+ * stdio-common/vfprintf.c (process_string_arg): Revert
+ 2000-07-22 change.
+
+2011-09-28 Jonathan Nieder <jrnieder@gmail.com>
+
+ * 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@redhat.com>
+
+ [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@gmail.com>
+
+ * stdlib/fmtmsg.c (fmtmsg): Lock around use of severity list.
+ Reported by Peng Haitao <penght@cn.fujitsu.com>.
+
+2012-01-27 Ulrich Drepper <drepper@gmail.com>
+
+ [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@kugelworks.com>
Ondřej Bílka <neleai@seznam.cz>
diff --git a/libc/Makeconfig b/libc/Makeconfig
index a75ae7f50..7ad76f3db 100644
--- a/libc/Makeconfig
+++ b/libc/Makeconfig
@@ -958,6 +958,12 @@ libdl =
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.
diff --git a/libc/Makefile b/libc/Makefile
index 9b8501428..c7e66a9b6 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -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.
diff --git a/libc/NEWS b/libc/NEWS
index 1f631ed8d..ee3a0965b 100644
--- a/libc/NEWS
+++ b/libc/NEWS
@@ -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 @@ Version 2.15.1
* 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
diff --git a/libc/config.h.in b/libc/config.h.in
index 64622cf7a..bc5f92b53 100644
--- a/libc/config.h.in
+++ b/libc/config.h.in
@@ -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
/*
*/
diff --git a/libc/config.make.in b/libc/config.make.in
index 67813b758..1e8bacdb0 100644
--- a/libc/config.make.in
+++ b/libc/config.make.in
@@ -103,6 +103,7 @@ add-on-subdirs = @add_on_subdirs@
sysdeps-add-ons = @sysdeps_add_ons@
cross-compiling = @cross_compiling@
force-install = @force_install@
+link-obsolete-rpc = @link_obsolete_rpc@
# Build tools.
CC = @CC@
diff --git a/libc/configure b/libc/configure
index ec5039bb6..b851a00f4 100755
--- a/libc/configure
+++ b/libc/configure
@@ -731,6 +731,7 @@ multi_arch
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_pkgversion
with_bugurl
enable_multi_arch
enable_nss_crypt
+enable_obsolete_rpc
with_cpu
'
ac_precious_vars='build_alias
@@ -1503,6 +1505,8 @@ Optional Features:
--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]
@@ -3975,6 +3979,20 @@ else
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
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
diff --git a/libc/configure.in b/libc/configure.in
index 0fce03065..4239970d2 100644
--- a/libc/configure.in
+++ b/libc/configure.in
@@ -295,6 +295,17 @@ else
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
# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
diff --git a/libc/elf/Makefile b/libc/elf/Makefile
index f62aeb2f0..f5ae6d3c9 100644
--- a/libc/elf/Makefile
+++ b/libc/elf/Makefile
@@ -124,7 +124,8 @@ distribute := rtld-Rules \
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 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
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 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
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-auditmod6b.c += $(AVX-CFLAGS)
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
diff --git a/libc/elf/dl-close.c b/libc/elf/dl-close.c
index 4b17bf8d8..6364a0b73 100644
--- a/libc/elf/dl-close.c
+++ b/libc/elf/dl-close.c
@@ -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 @@ _dl_close_worker (struct link_map *map)
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))
diff --git a/libc/elf/dl-deps.c b/libc/elf/dl-deps.c
index 51cb2fa59..c7d5f48b0 100644
--- a/libc/elf/dl-deps.c
+++ b/libc/elf/dl-deps.c
@@ -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 @@ _dl_map_object_deps (struct link_map *map,
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 @@ Filters not supported with LD_TRACE_PRELINKING"));
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 @@ Filters not supported with LD_TRACE_PRELINKING"));
_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,
diff --git a/libc/elf/dl-libc.c b/libc/elf/dl-libc.c
index f44fa10e0..0a1921c06 100644
--- a/libc/elf/dl-libc.c
+++ b/libc/elf/dl-libc.c
@@ -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@rabi.columbia.edu>, 1999.
@@ -270,13 +269,13 @@ libc_freeres_fn (free_mem)
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 @@ libc_freeres_fn (free_mem)
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
diff --git a/libc/elf/dl-open.c b/libc/elf/dl-open.c
index 5e780f6ef..9006446ed 100644
--- a/libc/elf/dl-open.c
+++ b/libc/elf/dl-open.c
@@ -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 @@ dl_open_worker (void *a)
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)
{
-#ifdef SHARED
- if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
+ ++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)
{
- /* 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);
+ 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;
+ }
- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
+ if (++i == nmaps)
+ break;
+ next_clear:
+ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
+ next:;
+ }
+ }
- if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
- {
- /* We must prepare the profiling. */
- _dl_start_profile ();
+ for (size_t i = nmaps; i-- > 0; )
+ {
+ l = maps[i];
- /* Prevent unloading the object. */
- GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE;
- }
+#ifdef SHARED
+ 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)
+ {
+ /* 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
diff --git a/libc/elf/rtld.c b/libc/elf/rtld.c
index b93a01f72..5c39794bf 100644
--- a/libc/elf/rtld.c
+++ b/libc/elf/rtld.c
@@ -2277,6 +2277,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
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,
diff --git a/libc/elf/tst-relsort1.c b/libc/elf/tst-relsort1.c
new file mode 100644
index 000000000..972100c0e
--- /dev/null
+++ b/libc/elf/tst-relsort1.c
@@ -0,0 +1,19 @@
+#include <dlfcn.h>
+#include <stdio.h>
+
+
+static int
+do_test ()
+{
+ const char lib[] = "$ORIGIN/tst-relsort1mod1.so";
+ void *h = dlopen (lib, RTLD_NOW);
+ if (h == NULL)
+ {
+ puts (dlerror ());
+ return 1;
+ }
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/elf/tst-relsort1mod1.c b/libc/elf/tst-relsort1mod1.c
new file mode 100644
index 000000000..9e4a94321
--- /dev/null
+++ b/libc/elf/tst-relsort1mod1.c
@@ -0,0 +1,7 @@
+extern int foo (double);
+
+int
+bar (void)
+{
+ return foo (1.2);
+}
diff --git a/libc/elf/tst-relsort1mod2.c b/libc/elf/tst-relsort1mod2.c
new file mode 100644
index 000000000..a2c3e551e
--- /dev/null
+++ b/libc/elf/tst-relsort1mod2.c
@@ -0,0 +1,7 @@
+#include <math.h>
+
+int
+foo (double d)
+{
+ return floor (d) != 0.0;
+}
diff --git a/libc/include/libc-symbols.h b/libc/include/libc-symbols.h
index bc6731f7d..6b964f566 100644
--- a/libc/include/libc-symbols.h
+++ b/libc/include/libc-symbols.h
@@ -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 @@ for linking")
# 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)
diff --git a/libc/include/link.h b/libc/include/link.h
index e87710464..27686a499 100644
--- a/libc/include/link.h
+++ b/libc/include/link.h
@@ -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 @@ struct link_map
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 @@ struct link_map
/* 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
diff --git a/libc/nis/Makefile b/libc/nis/Makefile
index 2e7c1924d..039d61153 100644
--- a/libc/nis/Makefile
+++ b/libc/nis/Makefile
@@ -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 @@ subdir := nis
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.
diff --git a/libc/stdio-common/Makefile b/libc/stdio-common/Makefile
index 6c5f1e0e6..55723eb79 100644
--- a/libc/stdio-common/Makefile
+++ b/libc/stdio-common/Makefile
@@ -136,6 +136,7 @@ CFLAGS-scanf17.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
# 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
diff --git a/libc/stdio-common/tst-sprintf.c b/libc/stdio-common/tst-sprintf.c
index bfa79c9cc..42159a26f 100644
--- a/libc/stdio-common/tst-sprintf.c
+++ b/libc/stdio-common/tst-sprintf.c
@@ -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 @@ main (void)
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;
}
diff --git a/libc/stdio-common/vfprintf.c b/libc/stdio-common/vfprintf.c
index 63b73e6a1..550851cd6 100644
--- a/libc/stdio-common/vfprintf.c
+++ b/libc/stdio-common/vfprintf.c
@@ -1178,42 +1178,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
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); \
} \
diff --git a/libc/stdlib/fmtmsg.c b/libc/stdlib/fmtmsg.c
index 8ee06bfd0..47e409f08 100644
--- a/libc/stdlib/fmtmsg.c
+++ b/libc/stdlib/fmtmsg.c
@@ -103,7 +103,6 @@ fmtmsg (long int classification, const char *label, int severity,
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. */
@@ -124,17 +123,6 @@ fmtmsg (long int classification, const char *label, int severity,
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
cancellation. Therefore disable cancellation for now. */
@@ -143,54 +131,73 @@ fmtmsg (long int classification, const char *label, int severity,
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;
- }
+ __libc_lock_lock (lock);
- if (classification & MM_CONSOLE)
+ 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)
{
- 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 : "");
+ 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);
#endif
diff --git a/libc/sunrpc/Makefile b/libc/sunrpc/Makefile
index b01b08e18..ce923fc8a 100644
--- a/libc/sunrpc/Makefile
+++ b/libc/sunrpc/Makefile
@@ -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 @@ generated-dirs := rpcsvc
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,9 +89,11 @@ routines-$(OPTION_EGLIBC_SUNRPC) \
# 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
# and not wanted on complete systems.
diff --git a/libc/sunrpc/auth_des.c b/libc/sunrpc/auth_des.c
index 96bbcfc32..0408d6082 100644
--- a/libc/sunrpc/auth_des.c
+++ b/libc/sunrpc/auth_des.c
@@ -117,7 +117,7 @@ authdes_create (const char *servername, u_int window,
#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 @@ failed:
#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
/*
diff --git a/libc/sunrpc/auth_none.c b/libc/sunrpc/auth_none.c
index 5f252a954..3af596679 100644
--- a/libc/sunrpc/auth_none.c
+++ b/libc/sunrpc/auth_none.c
@@ -95,7 +95,7 @@ authnone_create (void)
__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)
diff --git a/libc/sunrpc/auth_unix.c b/libc/sunrpc/auth_unix.c
index d3b5dc7de..68b42d7b1 100644
--- a/libc/sunrpc/auth_unix.c
+++ b/libc/sunrpc/auth_unix.c
@@ -149,7 +149,7 @@ no_memory:
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 @@ authunix_create_default (void)
#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
/*
diff --git a/libc/sunrpc/authdes_prot.c b/libc/sunrpc/authdes_prot.c
index 0a25bac14..164c1223c 100644
--- a/libc/sunrpc/authdes_prot.c
+++ b/libc/sunrpc/authdes_prot.c
@@ -63,7 +63,7 @@ xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred)
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 @@ xdr_authdes_verf (register XDR *xdrs, register struct authdes_verf *verf)
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)
diff --git a/libc/sunrpc/authuxprot.c b/libc/sunrpc/authuxprot.c
index 64da1799e..d37faee0c 100644
--- a/libc/sunrpc/authuxprot.c
+++ b/libc/sunrpc/authuxprot.c
@@ -63,4 +63,4 @@ xdr_authunix_parms (XDR * xdrs, struct authunix_parms *p)
}
return FALSE;
}
-libc_hidden_nolink (xdr_authunix_parms, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_authunix_parms, GLIBC_2_0)
diff --git a/libc/sunrpc/clnt_gen.c b/libc/sunrpc/clnt_gen.c
index 2b7096cf2..df34672d7 100644
--- a/libc/sunrpc/clnt_gen.c
+++ b/libc/sunrpc/clnt_gen.c
@@ -175,5 +175,5 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
#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
diff --git a/libc/sunrpc/clnt_perr.c b/libc/sunrpc/clnt_perr.c
index 175370ebf..b4f84c92e 100644
--- a/libc/sunrpc/clnt_perr.c
+++ b/libc/sunrpc/clnt_perr.c
@@ -127,7 +127,7 @@ clnt_sperror (CLIENT * rpch, const char *msg)
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 @@ clnt_perror (CLIENT * rpch, const char *msg)
#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 @@ clnt_perrno (enum clnt_stat num)
#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 @@ clnt_spcreateerror (const char *msg)
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 @@ clnt_pcreateerror (const char *msg)
#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
diff --git a/libc/sunrpc/clnt_raw.c b/libc/sunrpc/clnt_raw.c
index 95e3eae98..4004c6b6a 100644
--- a/libc/sunrpc/clnt_raw.c
+++ b/libc/sunrpc/clnt_raw.c
@@ -129,7 +129,7 @@ clntraw_create (u_long prog, u_long vers)
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)
diff --git a/libc/sunrpc/clnt_simp.c b/libc/sunrpc/clnt_simp.c
index d2dd3b307..d612df09a 100644
--- a/libc/sunrpc/clnt_simp.c
+++ b/libc/sunrpc/clnt_simp.c
@@ -139,7 +139,7 @@ callrpc (const char *host, u_long prognum, u_long versnum, u_long procnum,
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
diff --git a/libc/sunrpc/clnt_tcp.c b/libc/sunrpc/clnt_tcp.c
index d1fc43dbf..6bd4c8c0c 100644
--- a/libc/sunrpc/clnt_tcp.c
+++ b/libc/sunrpc/clnt_tcp.c
@@ -220,7 +220,7 @@ fooy:
#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
diff --git a/libc/sunrpc/clnt_udp.c b/libc/sunrpc/clnt_udp.c
index 294e13a58..7ecf2ef5a 100644
--- a/libc/sunrpc/clnt_udp.c
+++ b/libc/sunrpc/clnt_udp.c
@@ -239,7 +239,7 @@ fooy:
#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 @@ clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
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 @@ clntudp_create (raddr, program, version, wait, sockp)
#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
diff --git a/libc/sunrpc/clnt_unix.c b/libc/sunrpc/clnt_unix.c
index 282127bb8..776ceab48 100644
--- a/libc/sunrpc/clnt_unix.c
+++ b/libc/sunrpc/clnt_unix.c
@@ -200,7 +200,7 @@ fooy:
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)
diff --git a/libc/sunrpc/des_crypt.c b/libc/sunrpc/des_crypt.c
index 8745900b8..22a34b7f3 100644
--- a/libc/sunrpc/des_crypt.c
+++ b/libc/sunrpc/des_crypt.c
@@ -102,7 +102,7 @@ cbc_crypt (char *key, char *buf, unsigned int len, unsigned int mode,
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 @@ ecb_crypt (char *key, char *buf, unsigned int len, unsigned int mode)
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)
diff --git a/libc/sunrpc/des_soft.c b/libc/sunrpc/des_soft.c
index 27d918c64..cddef5d76 100644
--- a/libc/sunrpc/des_soft.c
+++ b/libc/sunrpc/des_soft.c
@@ -70,4 +70,4 @@ des_setparity (char *p)
p++;
}
}
-libc_hidden_nolink (des_setparity, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (des_setparity, GLIBC_2_1)
diff --git a/libc/sunrpc/get_myaddr.c b/libc/sunrpc/get_myaddr.c
index def5b7a74..24407b53e 100644
--- a/libc/sunrpc/get_myaddr.c
+++ b/libc/sunrpc/get_myaddr.c
@@ -99,5 +99,5 @@ get_myaddress (struct sockaddr_in *addr)
#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
diff --git a/libc/sunrpc/key_call.c b/libc/sunrpc/key_call.c
index 6d08bf8e8..e0a076b47 100644
--- a/libc/sunrpc/key_call.c
+++ b/libc/sunrpc/key_call.c
@@ -80,7 +80,7 @@ key_setsecret (char *secretkey)
}
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 @@ key_secretkey_is_set (void)
#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 @@ key_encryptsession (char *remotename, des_block *deskey)
*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 @@ key_decryptsession (char *remotename, des_block *deskey)
*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 @@ key_encryptsession_pk (char *remotename, netobj *remotekey,
*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 @@ key_decryptsession_pk (char *remotename, netobj *remotekey,
*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 @@ key_gendes (des_block *key)
#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 @@ key_setnet (struct key_netstarg *arg)
}
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 @@ key_get_conv (char *pkey, des_block *deskey)
*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
diff --git a/libc/sunrpc/key_prot.c b/libc/sunrpc/key_prot.c
index dd73f5e3c..2899c9a44 100644
--- a/libc/sunrpc/key_prot.c
+++ b/libc/sunrpc/key_prot.c
@@ -38,7 +38,7 @@ xdr_keystatus (XDR * xdrs, keystatus * objp)
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 @@ xdr_keybuf (XDR * xdrs, keybuf objp)
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 @@ xdr_netnamestr (XDR * xdrs, netnamestr * objp)
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 @@ xdr_cryptkeyarg (XDR * xdrs, cryptkeyarg * objp)
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 @@ xdr_cryptkeyarg2 (XDR * xdrs, cryptkeyarg2 * objp)
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 @@ xdr_cryptkeyres (XDR * xdrs, cryptkeyres * objp)
}
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 @@ xdr_unixcred (XDR * xdrs, unixcred * objp)
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 @@ xdr_getcredres (XDR * xdrs, getcredres * objp)
}
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 @@ xdr_key_netstarg (XDR * xdrs, key_netstarg * objp)
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 @@ xdr_key_netstres (XDR * xdrs, key_netstres * objp)
}
return TRUE;
}
-libc_hidden_nolink (xdr_key_netstres, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_key_netstres, GLIBC_2_0)
diff --git a/libc/sunrpc/netname.c b/libc/sunrpc/netname.c
index 7de2b86be..8707d5be8 100644
--- a/libc/sunrpc/netname.c
+++ b/libc/sunrpc/netname.c
@@ -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@vt.uni-paderborn.de>, 1997.
@@ -55,7 +55,7 @@ user2netname (char netname[MAXNETNAMELEN + 1], const uid_t uid,
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 @@ host2netname (char netname[MAXNETNAMELEN + 1], const char *host,
#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 @@ getnetname (char name[MAXNETNAMELEN + 1])
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 @@ netname2user (const char netname[MAXNETNAMELEN + 1], uid_t * uidp, gid_t * gidp,
#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 @@ netname2host (const char netname[MAXNETNAMELEN + 1], char *hostname,
return 1;
}
-libc_hidden_nolink (netname2host, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (netname2host, GLIBC_2_1)
diff --git a/libc/sunrpc/pm_getmaps.c b/libc/sunrpc/pm_getmaps.c
index 6b61d324f..6f7ad10ef 100644
--- a/libc/sunrpc/pm_getmaps.c
+++ b/libc/sunrpc/pm_getmaps.c
@@ -84,4 +84,4 @@ pmap_getmaps (struct sockaddr_in *address)
address->sin_port = 0;
return head;
}
-libc_hidden_nolink (pmap_getmaps, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (pmap_getmaps, GLIBC_2_0)
diff --git a/libc/sunrpc/pm_getport.c b/libc/sunrpc/pm_getport.c
index 58974a566..f10f87250 100644
--- a/libc/sunrpc/pm_getport.c
+++ b/libc/sunrpc/pm_getport.c
@@ -142,7 +142,7 @@ __libc_rpc_getport (address, program, version, protocol, timeout_sec,
#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 @@ pmap_getport (address, program, version, protocol)
{
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)
diff --git a/libc/sunrpc/pmap_clnt.c b/libc/sunrpc/pmap_clnt.c
index 36479f0e5..5d7d18576 100644
--- a/libc/sunrpc/pmap_clnt.c
+++ b/libc/sunrpc/pmap_clnt.c
@@ -131,7 +131,7 @@ pmap_set (u_long program, u_long version, int protocol, u_short port)
/* (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 @@ pmap_unset (u_long program, u_long version)
/* (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)
diff --git a/libc/sunrpc/pmap_prot.c b/libc/sunrpc/pmap_prot.c
index 5a2e05272..8df41dc5f 100644
--- a/libc/sunrpc/pmap_prot.c
+++ b/libc/sunrpc/pmap_prot.c
@@ -49,4 +49,4 @@ xdr_pmap (xdrs, regs)
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)
diff --git a/libc/sunrpc/pmap_prot2.c b/libc/sunrpc/pmap_prot2.c
index 3213898ce..57b080017 100644
--- a/libc/sunrpc/pmap_prot2.c
+++ b/libc/sunrpc/pmap_prot2.c
@@ -110,4 +110,4 @@ xdr_pmaplist (xdrs, rp)
rp = freeing ? &next : &((*rp)->pml_next);
}
}
-libc_hidden_nolink (xdr_pmaplist, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_pmaplist, GLIBC_2_0)
diff --git a/libc/sunrpc/pmap_rmt.c b/libc/sunrpc/pmap_rmt.c
index 16f322773..fd8de8558 100644
--- a/libc/sunrpc/pmap_rmt.c
+++ b/libc/sunrpc/pmap_rmt.c
@@ -104,7 +104,7 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p
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 @@ xdr_rmtcall_args (XDR *xdrs, struct rmtcallargs *cap)
}
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 @@ xdr_rmtcallres (xdrs, crp)
}
return FALSE;
}
-libc_hidden_nolink (xdr_rmtcallres, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_rmtcallres, GLIBC_2_0)
/*
@@ -388,4 +388,4 @@ done_broad:
AUTH_DESTROY (unix_auth);
return stat;
}
-libc_hidden_nolink (clnt_broadcast, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (clnt_broadcast, GLIBC_2_0)
diff --git a/libc/sunrpc/publickey.c b/libc/sunrpc/publickey.c
index 9e44199dd..2dca4f256 100644
--- a/libc/sunrpc/publickey.c
+++ b/libc/sunrpc/publickey.c
@@ -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@cygnus.com>, 1996.
@@ -76,7 +76,7 @@ getpublickey (const char *name, char *key)
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 @@ getsecretkey (const char *name, char *key, const char *passwd)
return status == NSS_STATUS_SUCCESS;
}
-libc_hidden_nolink (getsecretkey, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (getsecretkey, GLIBC_2_0)
diff --git a/libc/sunrpc/rpc_cmsg.c b/libc/sunrpc/rpc_cmsg.c
index ed70104b6..62d95fcc8 100644
--- a/libc/sunrpc/rpc_cmsg.c
+++ b/libc/sunrpc/rpc_cmsg.c
@@ -194,4 +194,4 @@ xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg)
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)
diff --git a/libc/sunrpc/rpc_common.c b/libc/sunrpc/rpc_common.c
index 44b4b38f4..710191163 100644
--- a/libc/sunrpc/rpc_common.c
+++ b/libc/sunrpc/rpc_common.c
@@ -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;
diff --git a/libc/sunrpc/rpc_dtable.c b/libc/sunrpc/rpc_dtable.c
index 9bee21549..81ddf8f55 100644
--- a/libc/sunrpc/rpc_dtable.c
+++ b/libc/sunrpc/rpc_dtable.c
@@ -46,4 +46,4 @@ _rpc_dtablesize (void)
return size;
}
-libc_hidden_nolink (_rpc_dtablesize, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (_rpc_dtablesize, GLIBC_2_0)
diff --git a/libc/sunrpc/rpc_prot.c b/libc/sunrpc/rpc_prot.c
index 9a23cc1b0..dc24f3673 100644
--- a/libc/sunrpc/rpc_prot.c
+++ b/libc/sunrpc/rpc_prot.c
@@ -57,7 +57,7 @@ xdr_opaque_auth (XDR *xdrs, struct opaque_auth *ap)
&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 @@ xdr_des_block (XDR *xdrs, des_block *blkp)
{
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 @@ xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar)
}
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 @@ xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr)
}
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 @@ xdr_replymsg (xdrs, rmsg)
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 @@ xdr_callhdr (xdrs, cmsg)
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 @@ _seterr_reply (struct rpc_msg *msg,
break;
}
}
-libc_hidden_nolink (_seterr_reply, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (_seterr_reply, GLIBC_2_0)
diff --git a/libc/sunrpc/rpc_thread.c b/libc/sunrpc/rpc_thread.c
index ac4c18fce..94d9f1fd8 100644
--- a/libc/sunrpc/rpc_thread.c
+++ b/libc/sunrpc/rpc_thread.c
@@ -97,7 +97,7 @@ __rpc_thread_svc_fdset (void)
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 @@ __rpc_thread_createerr (void)
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 @@ __rpc_thread_svc_pollfd (void)
#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 @@ __rpc_thread_svc_max_pollfd (void)
#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_ */
diff --git a/libc/sunrpc/rtime.c b/libc/sunrpc/rtime.c
index 8506df554..bcb280b48 100644
--- a/libc/sunrpc/rtime.c
+++ b/libc/sunrpc/rtime.c
@@ -140,4 +140,4 @@ rtime (struct sockaddr_in *addrp, struct rpc_timeval *timep,
timep->tv_usec = 0;
return 0;
}
-libc_hidden_nolink (rtime, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (rtime, GLIBC_2_1)
diff --git a/libc/sunrpc/svc.c b/libc/sunrpc/svc.c
index e1f4a322e..103770a42 100644
--- a/libc/sunrpc/svc.c
+++ b/libc/sunrpc/svc.c
@@ -115,7 +115,7 @@ xprt_register (SVCXPRT *xprt)
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 @@ xprt_unregister (SVCXPRT *xprt)
#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 @@ pmap_it:
#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 @@ svc_unregister (rpcprog_t prog, rpcvers_t vers)
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 @@ svc_sendreply (register SVCXPRT *xprt, xdrproc_t xdr_results,
#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 @@ svcerr_noproc (register SVCXPRT *xprt)
#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 @@ svcerr_decode (register SVCXPRT *xprt)
#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 @@ svcerr_systemerr (register SVCXPRT *xprt)
#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 @@ svcerr_auth (SVCXPRT *xprt, enum auth_stat why)
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_weakauth (SVCXPRT *xprt)
{
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 @@ svcerr_noprog (register SVCXPRT *xprt)
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 @@ svcerr_progvers (register SVCXPRT *xprt, rpcvers_t low_vers,
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 @@ svc_getreq (int rdfds)
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 @@ svc_getreqset (fd_set *readfds)
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 @@ svc_getreq_poll (struct pollfd *pfdp, int pollretval)
#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 @@ svc_getreq_common (const int fd)
}
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_
diff --git a/libc/sunrpc/svc_auth.c b/libc/sunrpc/svc_auth.c
index facbb1398..f33bda2f2 100644
--- a/libc/sunrpc/svc_auth.c
+++ b/libc/sunrpc/svc_auth.c
@@ -105,7 +105,7 @@ _authenticate (register struct svc_req *rqst, struct rpc_msg *msg)
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)
diff --git a/libc/sunrpc/svc_raw.c b/libc/sunrpc/svc_raw.c
index 90f5d96e6..7d885574a 100644
--- a/libc/sunrpc/svc_raw.c
+++ b/libc/sunrpc/svc_raw.c
@@ -88,7 +88,7 @@ svcraw_create (void)
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)
diff --git a/libc/sunrpc/svc_run.c b/libc/sunrpc/svc_run.c
index 09f40dd18..90dfc9405 100644
--- a/libc/sunrpc/svc_run.c
+++ b/libc/sunrpc/svc_run.c
@@ -46,7 +46,7 @@ svc_exit (void)
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 @@ svc_run (void)
#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
diff --git a/libc/sunrpc/svc_tcp.c b/libc/sunrpc/svc_tcp.c
index e0515322a..eb615494d 100644
--- a/libc/sunrpc/svc_tcp.c
+++ b/libc/sunrpc/svc_tcp.c
@@ -187,7 +187,7 @@ svctcp_create (int sock, u_int sendsize, u_int recvsize)
#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 @@ svcfd_create (int fd, u_int sendsize, u_int recvsize)
{
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
diff --git a/libc/sunrpc/svc_udp.c b/libc/sunrpc/svc_udp.c
index 04c8407e6..6c4d75a81 100644
--- a/libc/sunrpc/svc_udp.c
+++ b/libc/sunrpc/svc_udp.c
@@ -184,7 +184,7 @@ svcudp_create: xp_pad is too small for IP_PKTINFO\n"));
#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 @@ svcudp_create (sock)
#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 @@ svcudp_enablecache (SVCXPRT *transp, u_long size)
su->su_cache = (char *) uc;
return 1;
}
-libc_hidden_nolink (svcudp_enablecache, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (svcudp_enablecache, GLIBC_2_0)
/*
diff --git a/libc/sunrpc/svc_unix.c b/libc/sunrpc/svc_unix.c
index 2b02682e7..94507b240 100644
--- a/libc/sunrpc/svc_unix.c
+++ b/libc/sunrpc/svc_unix.c
@@ -184,7 +184,7 @@ svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path)
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 @@ svcunixfd_create (int fd, u_int sendsize, u_int recvsize)
{
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
diff --git a/libc/sunrpc/svcauth_des.c b/libc/sunrpc/svcauth_des.c
index b9656e25d..960973496 100644
--- a/libc/sunrpc/svcauth_des.c
+++ b/libc/sunrpc/svcauth_des.c
@@ -583,7 +583,7 @@ authdes_getucred (const struct authdes_cred *adc, uid_t * uid, gid_t * gid,
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
diff --git a/libc/sunrpc/xcrypt.c b/libc/sunrpc/xcrypt.c
index 8b7642b50..2e53f2d9e 100644
--- a/libc/sunrpc/xcrypt.c
+++ b/libc/sunrpc/xcrypt.c
@@ -127,7 +127,7 @@ xencrypt (char *secret, char *passwd)
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 @@ xdecrypt (char *secret, char *passwd)
#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
/*
diff --git a/libc/sunrpc/xdr.c b/libc/sunrpc/xdr.c
index 4dd82ff04..7eac2d40f 100644
--- a/libc/sunrpc/xdr.c
+++ b/libc/sunrpc/xdr.c
@@ -72,7 +72,7 @@ xdr_free (xdrproc_t proc, char *objp)
#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 @@ xdr_void (void)
#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 @@ xdr_int (XDR *xdrs, int *ip)
#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 @@ xdr_u_int (XDR *xdrs, u_int *up)
#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 @@ xdr_long (XDR *xdrs, long *lp)
#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 @@ xdr_u_long (XDR *xdrs, u_long *ulp)
#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 @@ xdr_hyper (XDR *xdrs, quad_t *llp)
#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 @@ xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
#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 @@ xdr_longlong_t (XDR *xdrs, quad_t *llp)
#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 @@ xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
#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 @@ xdr_short (XDR *xdrs, short *sp)
#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 @@ xdr_u_short (XDR *xdrs, u_short *usp)
#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 @@ xdr_char (XDR *xdrs, char *cp)
#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 @@ xdr_u_char (XDR *xdrs, u_char *cp)
#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 @@ xdr_bool (XDR *xdrs, bool_t *bp)
#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 @@ xdr_enum (XDR *xdrs, enum_t *ep)
#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 @@ xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
#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 @@ xdr_bytes (xdrs, cpp, sizep, maxsize)
#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 @@ xdr_netobj (xdrs, np)
#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 @@ xdr_union (xdrs, dscmp, unp, choices, dfault)
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 @@ xdr_string (xdrs, cpp, maxsize)
#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 @@ xdr_wrapstring (xdrs, cpp)
#ifdef EXPORT_RPC_SYMBOLS
libc_hidden_def (xdr_wrapstring)
#else
-libc_hidden_nolink (xdr_wrapstring, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_wrapstring, GLIBC_2_0)
#endif
diff --git a/libc/sunrpc/xdr_array.c b/libc/sunrpc/xdr_array.c
index b83207834..a63486127 100644
--- a/libc/sunrpc/xdr_array.c
+++ b/libc/sunrpc/xdr_array.c
@@ -127,7 +127,7 @@ xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
#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 @@ xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
}
return TRUE;
}
-libc_hidden_nolink (xdr_vector, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_vector, GLIBC_2_0)
diff --git a/libc/sunrpc/xdr_float.c b/libc/sunrpc/xdr_float.c
index 1a9c26061..78e8f3bd2 100644
--- a/libc/sunrpc/xdr_float.c
+++ b/libc/sunrpc/xdr_float.c
@@ -158,7 +158,7 @@ xdr_float(xdrs, fp)
}
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 @@ xdr_double(xdrs, dp)
}
return (FALSE);
}
-libc_hidden_nolink (xdr_double, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_double, GLIBC_2_0)
diff --git a/libc/sunrpc/xdr_intXX_t.c b/libc/sunrpc/xdr_intXX_t.c
index ceba8beb8..e906f851a 100644
--- a/libc/sunrpc/xdr_intXX_t.c
+++ b/libc/sunrpc/xdr_intXX_t.c
@@ -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@vt.uni-paderborn.de>, 1998.
@@ -47,14 +47,14 @@ xdr_int64_t (XDR *xdrs, int64_t *ip)
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 @@ xdr_uint64_t (XDR *xdrs, uint64_t *uip)
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 @@ xdr_int32_t (XDR *xdrs, int32_t *lp)
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 @@ xdr_uint32_t (XDR *xdrs, uint32_t *ulp)
#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 @@ xdr_int16_t (XDR *xdrs, int16_t *ip)
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 @@ xdr_uint16_t (XDR *xdrs, uint16_t *uip)
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 @@ xdr_int8_t (XDR *xdrs, int8_t *ip)
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 @@ xdr_uint8_t (XDR *xdrs, uint8_t *uip)
return FALSE;
}
}
-libc_hidden_nolink (xdr_uint8_t, GLIBC_2_1)
+libc_hidden_nolink_sunrpc (xdr_uint8_t, GLIBC_2_1)
diff --git a/libc/sunrpc/xdr_mem.c b/libc/sunrpc/xdr_mem.c
index 093a71873..ba7661aa5 100644
--- a/libc/sunrpc/xdr_mem.c
+++ b/libc/sunrpc/xdr_mem.c
@@ -81,7 +81,7 @@ xdrmem_create (XDR *xdrs, const caddr_t addr, u_int size, enum xdr_op op)
#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
/*
diff --git a/libc/sunrpc/xdr_rec.c b/libc/sunrpc/xdr_rec.c
index 556c6c4bc..f5d6ef2af 100644
--- a/libc/sunrpc/xdr_rec.c
+++ b/libc/sunrpc/xdr_rec.c
@@ -189,7 +189,7 @@ xdrrec_create (XDR *xdrs, u_int sendsize,
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 @@ xdrrec_skiprecord (XDR *xdrs)
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 @@ xdrrec_eof (XDR *xdrs)
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 @@ xdrrec_endofrecord (XDR *xdrs, bool_t sendnow)
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)
/*
diff --git a/libc/sunrpc/xdr_ref.c b/libc/sunrpc/xdr_ref.c
index 7510bed87..8fb4584a7 100644
--- a/libc/sunrpc/xdr_ref.c
+++ b/libc/sunrpc/xdr_ref.c
@@ -90,7 +90,7 @@ xdr_reference (xdrs, pp, size, proc)
}
return stat;
}
-libc_hidden_nolink (xdr_reference, GLIBC_2_0)
+libc_hidden_nolink_sunrpc (xdr_reference, GLIBC_2_0)
/*
@@ -137,5 +137,5 @@ xdr_pointer (xdrs, objpp, obj_size, xdr_obj)
#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
diff --git a/libc/sunrpc/xdr_sizeof.c b/libc/sunrpc/xdr_sizeof.c
index 0119486c3..56e870a45 100644
--- a/libc/sunrpc/xdr_sizeof.c
+++ b/libc/sunrpc/xdr_sizeof.c
@@ -161,5 +161,5 @@ xdr_sizeof (xdrproc_t func, void *data)
#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
diff --git a/libc/sunrpc/xdr_stdio.c b/libc/sunrpc/xdr_stdio.c
index d9866063f..667515e0a 100644
--- a/libc/sunrpc/xdr_stdio.c
+++ b/libc/sunrpc/xdr_stdio.c
@@ -191,5 +191,5 @@ xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
#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