Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Another COMPAT_* question



On Tue, Feb 19, 2013 at 04:43:55PM -0800, Paul Goyette wrote:
> On Tue, 19 Feb 2013, Paul Goyette wrote:
> 
> >I've got this one image which is available only as a binary, and it is a 
> >statically linked NetBSD-4.0 image
> >
> >     dnetc.x86_64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
> >     statically linked, for NetBSD 4.0, stripped
> >
> >If I run this on a 6.99.17 kernel built from today's sources, and that 
> >kernel includes COMPAT_40, COMPAT_50, and COMPAT_60, the image starts up 
> >correctly.
> >
> >However, if I boot a kernel which is identical except for those three 
> >COMPAT_* options, and then I modload the compat module, the same image 
> >fails. Using ktrace, it would seem that there is some sysctl variable 
> >missing from the compat module.

I'm not 100% sure that loading of compat modules always works.
There certainly used to be conditionals in other paths of the kernel
so just adding the 'missing' functions may not be enough.
OTOH a lot of them might have been fixes.

> Well, this was easy!
> 
> With each kernel booted, I simply used 'sysctl -ad' to get a listing of 
> all the variables.  Then a diff showed me that the only ones missing 
> from the loaded-module was kern.oboottime and net.oroute.stats
> 
> Now the real question begs, should the compat module provide either or 
> both of these sysctl()s?

IIRC there is also some difficulty with modules providing sysctl data.
The list archives will probably show it.

        David

-- 
David Laight: david%l8s.co.uk@localhost


Home | Main Index | Thread Index | Old Index