This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 2/3] Mark internal nss symbols with attribute_hidden [BZ #18822]
- From: Florian Weimer <fw at deneb dot enyo dot de>
- To: "H.J. Lu" <hongjiu dot lu at intel dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Sun, 20 Aug 2017 10:08:48 +0200
- Subject: Re: [PATCH 2/3] Mark internal nss symbols with attribute_hidden [BZ #18822]
- Authentication-results: sourceware.org; auth=none
- References: <20170818203044.GB15188@gmail.com>
* H. J. Lu:
> extern service_user *__nss_group_database attribute_hidden;
> -service_user *__nss_initgroups_database;
> +service_user *__nss_initgroups_database attribute_hidden;
> static bool use_initgroups_entry;
Please use DEFINE_DATABASE in nsswitch.h instead to generate all
__nss_*_database declarations (and remove the declaration from
nss/XXX-lookup.c).
> diff --git a/nss/getXXent.c b/nss/getXXent.c
> index aad374197f..31bd24b924 100644
> --- a/nss/getXXent.c
> +++ b/nss/getXXent.c
> @@ -56,7 +56,7 @@
> /* Prototype of the reentrant version. */
> extern int INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer,
> size_t buflen, LOOKUP_TYPE **result
> - H_ERRNO_PARM);
> + H_ERRNO_PARM) attribute_hidden;
Ideally, we should have a full complement of prototypes in include/,
so that we get some type safety here. But until that, this part looks
fine.
> /* Flags whether custom rules for database is set. */
> -extern bool __nss_database_custom[NSS_DBSIDX_max];
> +extern bool __nss_database_custom[NSS_DBSIDX_max] attribute_hidden;
The entire declaration should probably be guarded with #ifndef
USE_NSCD because if the symbol is used from nscd, it would give wrong
results.