Fix sunrpc static library
authorAndreas Jaeger <jaegerandi@gmail.com>
Mon, 21 May 2012 19:34:05 +0000 (21:34 +0200)
committerAndreas Jaeger <jaegerandi@gmail.com>
Mon, 21 May 2012 19:34:54 +0000 (21:34 +0200)
* include/shlib-compat.h (libc_sunrpc_symbol): New macro.
* sunrpc/svc_simple.c: Use it for registerrpc.
* sunrpc/xcrypt.c: Use it for passwd2des.

ChangeLog
include/shlib-compat.h
sunrpc/svc_simple.c
sunrpc/xcrypt.c

index 3a3be31..721c791 100644 (file)
--- 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>
index 19f1041..912f542 100644 (file)
 #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 */
index b8ba4ab..baa177e 100644 (file)
@@ -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)
index 2e53f2d..da7c4e6 100644 (file)
@@ -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)
 {