about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--include/shlib-compat.h10
-rw-r--r--sunrpc/svc_simple.c5
-rw-r--r--sunrpc/xcrypt.c3
4 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3a3be3117d..721c791513 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-21  Andreas Jaeger  <aj@suse.de>
 
+	* include/shlib-compat.h (libc_sunrpc_symbol): New macro.
+	* sunrpc/svc_simple.c: Use it for registerrpc.
+	* sunrpc/xcrypt.c: Use it for passwd2des.
+
 	* malloc/malloc.c: Include shlib-compat.h for SHLIB_COMPAT.
 
 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/include/shlib-compat.h b/include/shlib-compat.h
index 19f1041b05..912f5423e5 100644
--- a/include/shlib-compat.h
+++ b/include/shlib-compat.h
@@ -91,4 +91,14 @@
 #endif
 
 
+# ifdef LINK_OBSOLETE_RPC
+/* Export the symbol for both static and dynamic linking.  */
+#  define libc_sunrpc_symbol(name, aliasname, version) \
+  strong_alias (name, aliasname)
+# else
+/* Export the symbol only for shared-library compatibility.  */
+#  define libc_sunrpc_symbol(name, aliasname, version) \
+  compat_symbol (libc, name, aliasname, version);
+# endif
+
 #endif	/* shlib-compat.h */
diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c
index b8ba4ab387..baa177eec0 100644
--- a/sunrpc/svc_simple.c
+++ b/sunrpc/svc_simple.c
@@ -43,6 +43,7 @@
 
 #include <wchar.h>
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
 
 struct proglst_
   {
@@ -121,7 +122,9 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum,
   free (buf);
   return -1;
 }
-compat_symbol (libc, __registerrpc, registerrpc, GLIBC_2_0);
+
+libc_sunrpc_symbol (__registerrpc, registerrpc, GLIBC_2_0)
+
 
 static void
 universal (struct svc_req *rqstp, SVCXPRT *transp_l)
diff --git a/sunrpc/xcrypt.c b/sunrpc/xcrypt.c
index 2e53f2d9e9..da7c4e66b9 100644
--- a/sunrpc/xcrypt.c
+++ b/sunrpc/xcrypt.c
@@ -47,6 +47,7 @@ static char sccsid[] = "@(#)xcrypt.c 1.3 89/03/24 Copyr 1986 Sun Micro";
 #include <string.h>
 #include <sys/types.h>
 #include <rpc/des_crypt.h>
+#include <shlib-compat.h>
 
 static const char hex[16] =
 {
@@ -89,7 +90,7 @@ passwd2des_internal (char *pw, char *key)
 
 #ifdef _LIBC
 libc_hidden_def (passwd2des_internal)
-compat_symbol (libc, passwd2des_internal, passwd2des, GLIBC_2_1);
+libc_sunrpc_symbol(passwd2des_internal, passwd2des, GLIBC_2_1)
 #else
 void passwd2des (char *pw, char *key)
 {