Subject: Re: Fwd: libc without YP
To: Luke Mewburn <lukem@NetBSD.org>
From: Srinivasa Kanduru <ksraghavan@yahoo.com>
List: tech-toolchain
Date: 11/25/2003 00:02:36
I have neither enabled YP nor HESIOD. But I think now I know what the problem
is .. Thanks for the hint. Do you think this is right ?
Leaving HESIOD undefined matches the following condition and enables HESIOD in
the CPPFLAGS which is not what is intended I think.
.if (${USE_HESIOD} != "no")
CPPFLAGS+= -DHESIOD
.endif
Maybe the right way to put the condition is
.if (${USE_HESIOD} == "yes")
CPPFLAGS+= -DHESIOD
.endif
That solves the problem.
In anycase the #includes of <sys/param.h> and <stdio.h> should be outside the
#ifdef YP I think as they are not related to YP.
So the minimal diffs would be the above change in the makefile and the
following diffs:diff -u getpwent.c*
--- getpwent.c Mon Nov 24 23:51:12 2003
+++ getpwent.c.orig Mon Nov 24 11:42:03 2003
@@ -59,13 +59,13 @@
#include <syslog.h>
#include <unistd.h>
#include <utmp.h>
-#include <machine/param.h>
-#include <stdio.h>
#ifdef HESIOD
#include <hesiod.h>
#endif
#ifdef YP
+#include <machine/param.h>
+#include <stdio.h>
#include <rpc/rpc.h>
#include <rpcsvc/yp_prot.h>
#include <rpcsvc/ypclnt.h>
Regards,
Srini.
--- Luke Mewburn <lukem@NetBSD.org> wrote:
> On Mon, Nov 24, 2003 at 10:50:03AM -0800, Srinivasa Kanduru wrote:
> | The code snippet (gen/getpwent.c) ..
> |
> | The definition of the function __pwparse() is not in #ifdef YP
>
> __pwparse() is provided #ifdef _PASSWD_COMPAT, not #ifdef YP.
> _PASSWD_COMPAT is defined if either of YP or HESIOD is #define-d.
>
> so, it appears that you're trying to build with -UYP -DHESIOD.
> is that correct?
> if so, we need to improve the namespace protection in that case.
__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/