Subject: kern/7931: COMPAT_AOUT kernel option is dependent on COMPAT_13 and other COMPAT_* options. It shouldn't be.
To: None <gnats-bugs@gnats.netbsd.org>
From: None <jwise@draga.com>
List: netbsd-bugs
Date: 07/06/1999 09:35:49
>Number:         7931
>Category:       kern
>Synopsis:       COMPAT_AOUT kernel option is dependent on COMPAT_13 and other COMPAT_* options.   It shouldn't be.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jul  6 09:35:00 1999
>Last-Modified:
>Originator:     Jim Wise
>Organization:
				Jim Wise
				jwise@draga.com
>Release:        NetBSD-current of 1999-07-05
>Environment:
System: NetBSD himring.draga.com 1.4C NetBSD 1.4C (HIMRING) #0: Sun May 30 21:33:44 EDT 1999 jwise@himring.draga.com:/home/NetBSD/src/sys/arch/i386/compile/HIMRING i386


>Description:
	.../src/sys/compat/aout/syscalls.master includes entries for various COMPAT_13, COMPAT_43, and other
	system calls.  This makes it impossible to build a system with (e.g.) COMPAT_AOUT and not COMPAT_13,
	due to failures of the form:

		ld -Ttext F0100000 -e start -z -X -o netbsd ${SYSTEM_OBJ} vers.o
		aout_sysent.o: Undefined symbol `_compat_13_sys_sigreturn' referenced from data segment
		*** Error code 1

		Stop.

	This combination of options is (IMHO) perfectly valid, and it's a shame not to support it.

>How-To-Repeat:
	configure a kernel with COMPAT_AOUT and not COMPAT_13.  Try to build it.  Watch it fail with
	the above error.
>Fix:
	.../src/sys/kern/syscalls.master uses the COMPAT_13 keyword, defined as a compatibility option
	in .../src/sys/kern/syscalls.conf to selectively include/exclude NetBSD-1.3 compatibility
	functions.  Probably, this should be added to .../src/sys/compat/aout/syscalls.{conf,master},
	but I'm not sure that it's as simple as that.
>Audit-Trail:
>Unformatted: