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.
This commit is contained in:
Chris Metcalf 2012-10-30 14:14:33 -04:00
parent d44a6f8b99
commit 017678433c
8 changed files with 28 additions and 9 deletions

View File

@ -1,3 +1,14 @@
2012-10-30 Chris Metcalf <cmetcalf@tilera.com>
* 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 <aj@suse.de>
* po/ru.po: Update Russion translation from translation project.

View File

@ -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)

View File

@ -151,4 +151,4 @@ done:
return result;
}
static_link_warning (FUNCTION_NAME)
nss_interface_function (FUNCTION_NAME)

View File

@ -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)

View File

@ -91,4 +91,4 @@ GETFUNC_NAME (void)
return result;
}
static_link_warning (GETFUNC_NAME)
nss_interface_function (GETFUNC_NAME)

View File

@ -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)

View File

@ -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. */

View File

@ -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)