Subject: splitting up LINUX compat into architectures
To: None <current-users@NetBSD.ORG>
From: Todd Vierling <tv@pobox.com>
List: current-users
Date: 10/31/1997 13:09:47
Opinions, please:

I'd like to add support for both SPARC and m68k Linux compatibility, but to
do so, the syscall tables have to be divided up into architectures (the
syscalls themselves match, but the syscall numbers vary from one arch to the
next).  Proposition:

- move compat/linux/{syscalls.master,syscalls.conf} and the files that
  these two generate into compat/linux/arch/i386, with appropriate
  Makefile changes to select the proper architecture specific subdir to
  generate syscalls in;

- remove compat/linux/linux_syscalls.c and compat/linux/sysent.c from
  files.linux, and put them in arch/i386/conf/files.i386 as
  compat/linux/arch/i386/syscalls.c and compat/linux/arch/i386/linux_sysent.c;

- change instances of "#include <compat/linux/linux_syscall.h>" and
  friends to "#include <compat/linux/arch/_MACHINE_ARCH/linux_syscall.h>"
  et. al.

Then, once the other architectures are added,

- use "#ifdef LINUX_SYS_syscallname" wrappers around Linux syscall functions
  in MI code that do not in all architectures

With these executed, it will be much easier to add the other architectures
to the Linux emulation, and we gain to follow the benefit of using the
hordes of already compiled Linux packages out there for SPARC and m68k. 

=====
== Todd Vierling (Personal tv@pobox.com; Business tv@lucent.com)
== I know you like the Internet, Bobby.  Now go eat your Frosted Flakes.