Subject: Re: building libkvm
To: David Brownlee <abs@netbsd.org>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm
Date: 07/12/2001 10:25:28
On Thursday 12 July 2001 10:03 am, David Brownlee wrote:
> On Thu, 12 Jul 2001, Chris Gilbert wrote:
> > Looking at libkvm I'm not sure that it can be shared across arm26 and
> > arm32, it's very much tied into the kernel.
> >
> > Anyone got any suggestions on how to tackle this one?  currently I'm
> > trying to get a complete make build to work, I've fixed up libkvm to
> > build, but it's got hardcoded includes to arm/arm32 and arm/cats.
>
> 	Maybe go the same route as the m68k ports - which have common,
> 	sun3 and sun3x kvm files, none of which include any machine/*.h
> 	files...

I believe that the 3 defines that kvm is after are, so we either end up with 
them hardcoded into the file or we use includes, and I'd rather use includes 
incase we ever rearrange the vm layout (we don't really need 3GB of user VM 
space!):
USRSTACK, VM_MIN_ADDRESS and VM_MAXUSER_ADDRESS

so currently there's less need, but that may change if we ever implement 
_kvm_kvatop and _kvm_pa2off.

I have just thought of one way around it, we have an arch and a platform 
symlink inside the arm dir, eg:
/usr/include/arm
	acorn32
	arch -> arm26|arm32
	arm26
	arm32
	cats
	dnard
	netwinder
	platform -> acorn32|arm26|cats|dnard|netwinder

What we can then do is have machine/vmparam.h include arm/arch/vmparam.h, the 
arm32 one can then include arm/platform/vmparam.h for the little bit of 
platform specific stuff.

However I'm not sure if this is better or worse, but it should work for all 
cases.  Note that nothing should get included from the platform dir's unless 
_KERNEL is defined, otherwise we may not see bits of userland that are 
platform specific.

Chris