From 07c58f8f3501329340bf3c69a347f7c8fdcbe528 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Mon, 21 May 2012 21:34:05 +0200 Subject: [PATCH] Fix sunrpc static library * 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 | 4 ++++ include/shlib-compat.h | 10 ++++++++++ sunrpc/svc_simple.c | 5 ++++- sunrpc/xcrypt.c | 3 ++- 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 + * 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 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 #include +#include 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 #include #include +#include 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) {