diff mbox

[[rpcbind] ] fix building one systems w/out nss.h

Message ID 1361299690-19402-1-git-send-email-vapier@gentoo.org (mailing list archive)
State New, archived
Headers show

Commit Message

Mike Frysinger Feb. 19, 2013, 6:48 p.m. UTC
The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
to avoid including/using it when it is not available.

URL: http://bugs.gentoo.org/458024
Reported-by: Mark Reiche <porphyr@gmx.de>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 src/rpcbind.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Chuck Lever Feb. 19, 2013, 6:54 p.m. UTC | #1
Hi-

On Feb 19, 2013, at 1:48 PM, Mike Frysinger <vapier@gentoo.org> wrote:

> The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
> to avoid including/using it when it is not available.
> 
> URL: http://bugs.gentoo.org/458024
> Reported-by: Mark Reiche <porphyr@gmx.de>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
> src/rpcbind.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/src/rpcbind.c b/src/rpcbind.c
> index 9a0504d..83dbe93 100644
> --- a/src/rpcbind.c
> +++ b/src/rpcbind.c
> @@ -67,7 +67,11 @@
> #include <pwd.h>
> #include <string.h>
> #include <errno.h>
> +#ifdef HAVE_NSS_H
> #include <nss.h>
> +#else
> +static inline void __nss_configure_lookup(const char *db, const char *s) {}
> +#endif

Where is rpcbind getting the __nss_configure_lookup() function in this case?  I don't see that the call sites are ifdef-d out if HAVE_NSS_H is not defined.

> #include "rpcbind.h"
> 
> /*#define RPCBIND_DEBUG*/
Mike Frysinger Feb. 19, 2013, 7:14 p.m. UTC | #2
On Tuesday 19 February 2013 13:54:19 Chuck Lever wrote:
> On Feb 19, 2013, at 1:48 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> > The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
> > to avoid including/using it when it is not available.
> > --- a/src/rpcbind.c
> > +++ b/src/rpcbind.c
> > @@ -67,7 +67,11 @@
> > #include <pwd.h>
> > #include <string.h>
> > #include <errno.h>
> > +#ifdef HAVE_NSS_H
> > #include <nss.h>
> > +#else
> > +static inline void __nss_configure_lookup(const char *db, const char *s)
> > {} +#endif
> 
> Where is rpcbind getting the __nss_configure_lookup() function in this
> case?  I don't see that the call sites are ifdef-d out if HAVE_NSS_H is
> not defined.

i'm not sure what you mean.

if nss.h exists, then HAVE_NSS_H is defined, and the nss.h header provides the 
__nss_configure_lookup prototype (and presumably, the C library provides that 
func).

if nss.h doesn't exist, then HAVE_NSS_H is not defined, so we have to stub out 
the __nss_configure_lookup func.  i could have put "#ifdef HAVE_NSS_H" around 
all the call sites, but i think this version is cleaner and less error prone.

also, i typoed the subject name ("one" vs "on").
-mike
Chuck Lever Feb. 19, 2013, 7:16 p.m. UTC | #3
On Feb 19, 2013, at 2:14 PM, Mike Frysinger <vapier@gentoo.org> wrote:

> On Tuesday 19 February 2013 13:54:19 Chuck Lever wrote:
>> On Feb 19, 2013, at 1:48 PM, Mike Frysinger <vapier@gentoo.org> wrote:
>>> The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
>>> to avoid including/using it when it is not available.
>>> --- a/src/rpcbind.c
>>> +++ b/src/rpcbind.c
>>> @@ -67,7 +67,11 @@
>>> #include <pwd.h>
>>> #include <string.h>
>>> #include <errno.h>
>>> +#ifdef HAVE_NSS_H
>>> #include <nss.h>
>>> +#else
>>> +static inline void __nss_configure_lookup(const char *db, const char *s)
>>> {} +#endif
>> 
>> Where is rpcbind getting the __nss_configure_lookup() function in this
>> case?  I don't see that the call sites are ifdef-d out if HAVE_NSS_H is
>> not defined.
> 
> i'm not sure what you mean.
> 
> if nss.h exists, then HAVE_NSS_H is defined, and the nss.h header provides the 
> __nss_configure_lookup prototype (and presumably, the C library provides that 
> func).
> 
> if nss.h doesn't exist, then HAVE_NSS_H is not defined, so we have to stub out 
> the __nss_configure_lookup func.  i could have put "#ifdef HAVE_NSS_H" around 
> all the call sites, but i think this version is cleaner and less error prone.

OK, clear.  Sorry to be dense.

> 
> also, i typoed the subject name ("one" vs "on").
> -mike
Steve Dickson Feb. 21, 2013, 3:43 p.m. UTC | #4
On 19/02/13 13:48, Mike Frysinger wrote:
> The nss.h header is glibc-specific, so use the existing HAVE_NSS_H define
> to avoid including/using it when it is not available.
> 
> URL: http://bugs.gentoo.org/458024
> Reported-by: Mark Reiche <porphyr@gmx.de>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Committed...

steved.
> ---
>  src/rpcbind.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/rpcbind.c b/src/rpcbind.c
> index 9a0504d..83dbe93 100644
> --- a/src/rpcbind.c
> +++ b/src/rpcbind.c
> @@ -67,7 +67,11 @@
>  #include <pwd.h>
>  #include <string.h>
>  #include <errno.h>
> +#ifdef HAVE_NSS_H
>  #include <nss.h>
> +#else
> +static inline void __nss_configure_lookup(const char *db, const char *s) {}
> +#endif
>  #include "rpcbind.h"
>  
>  /*#define RPCBIND_DEBUG*/
> -- 1.8.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/src/rpcbind.c b/src/rpcbind.c
index 9a0504d..83dbe93 100644
--- a/src/rpcbind.c
+++ b/src/rpcbind.c
@@ -67,7 +67,11 @@ 
 #include <pwd.h>
 #include <string.h>
 #include <errno.h>
+#ifdef HAVE_NSS_H
 #include <nss.h>
+#else
+static inline void __nss_configure_lookup(const char *db, const char *s) {}
+#endif
 #include "rpcbind.h"
 
 /*#define RPCBIND_DEBUG*/