From: Chris Metcalf Date: Tue, 30 Oct 2012 18:14:33 +0000 (-0400) Subject: Suppress incorrect link warnings for NSS symbols X-Git-Tag: glibc-2.17~321 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=017678433caae358b1782a2438b10e1ed510a8ad;p=thirdparty%2Fglibc.git Suppress incorrect link warnings for NSS symbols When glibc is built with --enable-static-nss, the warning that using NSS symbols requires the nss shared objects to be present is no longer true, as those symbols are built into libc. Suppress the warning for those symbols by providing a new macro (nss_interface_function) for the NSS functions that is defined as static_link_warning in the normal case, and empty for static NSS. --- diff --git a/ChangeLog b/ChangeLog index 021b0cd005e..e65ea2354e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2012-10-30 Chris Metcalf + + * nss/nsswitch.h (nss_interface_function): Provide new + macro for use with NSS functions. + * grp/initgroups.c: Use new macro. + * nss/getXXbyYY.c: Likewise. + * nss/getXXbyYY_r.c: Likewise. + * nss/getXXent.c: Likewise. + * nss/getXXent_r.c: Likewise. + * sysdeps/posix/getaddrinfo.c: Likewise. + 2012-10-30 Andreas Jaeger * po/ru.po: Update Russion translation from translation project. diff --git a/grp/initgroups.c b/grp/initgroups.c index 62fd1fc6de5..fad30a75f01 100644 --- a/grp/initgroups.c +++ b/grp/initgroups.c @@ -180,7 +180,7 @@ getgrouplist (const char *user, gid_t group, gid_t *groups, int *ngroups) return retval; } -static_link_warning (getgrouplist) +nss_interface_function (getgrouplist) /* Initialize the group set for the current user by reading the group database and using all groups @@ -230,4 +230,4 @@ initgroups (const char *user, gid_t group) #endif } -static_link_warning (initgroups) +nss_interface_function (initgroups) diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c index 336676ad555..c308a70b93b 100644 --- a/nss/getXXbyYY.c +++ b/nss/getXXbyYY.c @@ -151,4 +151,4 @@ done: return result; } -static_link_warning (FUNCTION_NAME) +nss_interface_function (FUNCTION_NAME) diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index f296ed1f42e..8b3b61b663e 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -349,4 +349,4 @@ do_default_symbol_version (NEW (REENTRANT_NAME), REENTRANT_NAME, GLIBC_2_1_2); #endif -static_link_warning (REENTRANT_NAME) +nss_interface_function (REENTRANT_NAME) diff --git a/nss/getXXent.c b/nss/getXXent.c index 008851e5976..152798f0c27 100644 --- a/nss/getXXent.c +++ b/nss/getXXent.c @@ -91,4 +91,4 @@ GETFUNC_NAME (void) return result; } -static_link_warning (GETFUNC_NAME) +nss_interface_function (GETFUNC_NAME) diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c index f1036058ff6..6c52d27cb2a 100644 --- a/nss/getXXent_r.c +++ b/nss/getXXent_r.c @@ -207,6 +207,6 @@ do_default_symbol_version (NEW (REENTRANT_GETNAME), REENTRANT_GETNAME, GLIBC_2_1_2); #endif -static_link_warning (SETFUNC_NAME) -static_link_warning (ENDFUNC_NAME) -static_link_warning (REENTRANT_GETNAME) +nss_interface_function (SETFUNC_NAME) +nss_interface_function (ENDFUNC_NAME) +nss_interface_function (REENTRANT_GETNAME) diff --git a/nss/nsswitch.h b/nss/nsswitch.h index 047a9e5858f..0cf67ff0258 100644 --- a/nss/nsswitch.h +++ b/nss/nsswitch.h @@ -107,6 +107,14 @@ enum /* Flags whether custom rules for database is set. */ extern bool __nss_database_custom[NSS_DBSIDX_max]; +/* Warning for NSS functions, which don't require dlopen if glibc + was built with --enable-static-nss. */ +#ifdef DO_STATIC_NSS +# define nss_interface_function(name) +#else +# define nss_interface_function(name) static_link_warning (name) +#endif + /* Interface functions for NSS. */ diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 672571ef239..3cc244b7fd1 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -2672,7 +2672,7 @@ getaddrinfo (const char *name, const char *service, } libc_hidden_def (getaddrinfo) -static_link_warning (getaddrinfo) +nss_interface_function (getaddrinfo) void freeaddrinfo (struct addrinfo *ai)