svn commit: r197057 - in head/sys: compat/freebsd32 sys

John Baldwin jhb at freebsd.org
Thu Sep 10 12:48:30 UTC 2009


On Thursday 10 September 2009 4:33:28 am Dag-Erling Smorgrav wrote:
> Author: des
> Date: Thu Sep 10 08:33:28 2009
> New Revision: 197057
> URL: http://svn.freebsd.org/changeset/base/197057
> 
> Log:
>   If a certain feature that was present in FreeBSD 7 was removed or changed 
in
>   FreeBSD 8, the compatibility shims should be built not just when FreeBSD 7
>   compatibility is requested, but also when compatibility with any older
>   FreeBSD version where that feature was present is requested.o
>   
>   Without this patch, a kernel config that sets COMPAT_FREEBSD6 but not *7
>   would fail to build due to inconsistencies between the declaration of the
>   compatibility shims and their use in the SysV code.
>   
>   There are similar errors in other *proto.h headers in the tree.
>   
>   MFC after:	3 weeks

These are auto-generated files.  Please revert.  If you want to try to fix 
this, you will have to patch makesyscalls.sh.  However, this is rather 
complicated.  The SYSV IPC case is simpler because the system calls aren't 
enabled in init_sysent.c but use SYSCALL_MODULE() instead.  However, other 
compat syscalls are enabled in init_sysent.c.

One possible fix is that makesyscalls.sh could be futher extended so that 
compat system calls can be tagged with multiple compat versions perhaps such 
as 'COMPAT4|COMPAT5'.  However, this would not be a trivial change to 
makesyscalls.sh.

When this issue first came up, the consensus among other developers I talked 
to was that it was ok to simply mandate that 'COMPAT_FREEBSD[456]' 
require 'COMPAT_FREEBSD7' which has been noted in src/UPDATING.

I could take a look at the makesyscalls.sh changes perhaps.

-- 
John Baldwin


More information about the svn-src-all mailing list