Subject: Re: 19990207 build failed (libc) on sun3
To: Erik E. Fair <>
From: Tom Ivar Helbekkmo <>
List: current-users
Date: 02/09/1999 09:07:02
"Erik E. Fair" <> writes:

> all ===> libc
> [...]
> cc -O2 -DALL_STATE  -Wall -Wstrict-prototypes -Wmissing-prototypes
> -Wpointer-arith -Werror   -D_LIBC -DNLS -DYP -DHESIOD -DLIBC_SCCS
> -DSYSLIBC_SCCS -D_REENTRANT -I/usr/src/lib/libc/include
> -nostdinc -idirafter /altroot/usr/include -c
> /usr/src/lib/libc/compat-43/gethostid.c
> In file included from /altroot/usr/include/vm/vm_object.h:74,
>                  from /altroot/usr/include/vm/vm.h:83,
>                  from /altroot/usr/include/sys/sysctl.h:51,
>                  from /usr/src/lib/libc/compat-43/gethostid.c:48:
> /altroot/usr/include/vm/vm_page.h:250: field `pmseg' has incomplete type
> *** Error code 1

Well, the line in question is:

	struct	pmap_physseg pmseg;	/* pmap specific (MD) data */

Looking at the code, <sys/sysctl.h> includes <sys/vm.h>, which
includes <vm/vm_param.h>, which includes <machine/vmparam.h>, which
includes either <machine/vmparam3.h> or <machine/vmparam3x.h>, both of
which define this struct as:

struct pmap_physseg {
	/* NULL */

This all happens before <vm_vm_object.h> is included, so it all looks
kosher to me.  Did someone already fix this?  Or can someone see, in
that chain of header files, something that I've missed?  I had this
very same error message with the vax port and the source tarballs from
January 23rd, but there it was a case of <machine/vmparam.h> needing
UVM defined in order to declare struct pmap_physseg.

Popularity is the hallmark of mediocrity.  --Niles Crane, "Frasier"