Subject: The sensibility of sharing needles^H^H^H^H^H^H^Hbinaries.
To: None <current-users@NetBSD.ORG>
From: Peter Seebach <seebs@solon.com>
List: current-users
Date: 01/26/1997 04:40:22
I believe I've finally tracked down a *very* persistant bug in my Sun 3's
build.

It appears that make knows which machine it was built on.  If "MACHINE" is
defined in any of
	<sys/types.h>
	<sys/time.h>
	<sys/param.h>
	<sys/resource.h>
	<sys/signal.h>
	<sys/stat.h>
it goes ahead to hardcode this value, and use the hardcoded value instead of
using uname(3).

This means, my sun3, which (many moons ago) inherited my Amiga binaries for
a couple of things, has been trying for all this time to build an Amiga
version of everything; this has *almost* no effect, but it means that
'make includes' in /usr/src/sys has been producing *amiga*
/usr/include/machine, and this has been (in turn) producing an entirely
less useful libkvm.

So, the overall hint:  If you are having strange problems, try doing
a "make build" with "MACHINE=<correct machine>" in the environment, if you've
ever shared binaries for make.

(Apologies if this doesn't apply as well to other ports as it does to the
vast family of 68k ports.)

And yes, I *am* testing this before sending this message.

Success!  ps reads processes, albeit incorrectly; I suspect rebuilding
kvm_mkdb will restore everything to normal.

In any event, I'm not sure I don't think this is a bug; I don't like the
idea that MACHINE being defined suppresses an arguably useful feature of
make.

-s