Subject: More on 'proc size mismatch'.
To: None <current-users@NetBSD.ORG>
From: Peter Seebach <seebs@solon.com>
List: current-users
Date: 01/26/1997 03:54:42
I may have found something.

libkvm is reporting that sizeof(struct proc) is 652.

If I build the following program using "make test.o; cc -o test test.o"
in .../arch/sun3/compile/CIRCLE, I get "640".  If I do it using
"make" in /tmp, I get "652".
	#include "/usr/include/stdio.h"
	#include <sys/time.h>
	#include <vm/vm.h>
	#include <sys/param.h>
	#include <sys/proc.h>
	#include <sys/sysctl.h>

	main() {
		printf("%d\n", (int) sizeof(struct kinfo_proc));
		return 0;
	}

observation reveals that /usr/include/sys/sysctl.h and
/usr/src/sys/sys/sysctl.h are identical.  (Ala "diff".)

Further observation reveals that 'sizeof(struct eproc)' is different between
them, but sizeof(struct proc) isn't.

Further study reveals that 'sizeof(struct vmspace)' is what's different,
and within that, it appears to be 'sizeof(struct pmap)'.

It turns out my problem is really that the sun3 pmap.h appears to have
changed around Dec 18 in /usr/src/sys, but never to have been installed.
Does "make includes" not do this?  Hmm.  If I go to /usr/src/sys
and "make includes", the pmap.h gets updated.  Would this not normally
happen with a top level "make includes"?

-s