NetBSD-Bugs archive

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

kern/53915: compat merge causing kernel link failure



>Number:         53915
>Category:       kern
>Synopsis:       compat merge cause kernel link failure
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jan 27 21:05:00 +0000 2019
>Originator:     Onno van der Linden
>Release:        NetBSD 8.99.24
>Organization:
	<organization of PR author (multiple lines)>
>Environment:
System: NetBSD sheep 8.99.24 NetBSD 8.99.24 (SHEEPKMS) #4: Sat Aug 11 11:29:18 CEST 2018 onno@sheep:/usr/src/sys/arch/i386/compile/SHEEPKMS i386
Architecture: i386
Machine: i386
>Description:
Trying to build a 8.99.32 kernel from sources after the compat merge
causes a failure at the link stage with a config file that has some
COMPAT_ options commented out:
$ egrep '^#options' /sys/arch/i386/conf/SHEEPKMS|grep COMPAT
#options                COMPAT_NOMID    # compatibility with 386BSD, BSDI, NetBSD 0.8,
#options                COMPAT_09       # NetBSD 0.9,
#options                COMPAT_10       # NetBSD 1.0,
#options                COMPAT_43       # and 4.3BSD
#options        COMPAT_AOUT     # binary compatibility with AOUT
#options        COMPAT_SVR4     # binary compatibility with SVR4
#options        COMPAT_IBCS2    # binary compatibility with SCO and ISC
And has
$ egrep -e COMPAT_LINUX -e COMPAT_FREEBSD /sys/arch/i386/conf/SHEEPKMS
options         COMPAT_FREEBSD  # FreeBSD
options         COMPAT_LINUX    # Linux

ld -Map netbsd.map --cref -T netbsd.ldscript -Ttext c0100000 -e start -X -o netbsd ${SYSTEM_OBJ:[@]:Nswapnetbsd.o} ${EXTRA_OBJ} vers.o swapnetbsd.o
linux_sysent.o:(.data+0x184): undefined reference to `compat_43_sys_lseek'
linux_sysent.o:(.data+0x5d0): undefined reference to `compat_43_sys_sethostname'
linux_sysent.o:(.data+0x698): undefined reference to `compat_43_sys_lstat'
linux_sysent.o:(.data+0x738): undefined reference to `compat_43_sys_truncate'
linux_sysent.o:(.data+0x74c): undefined reference to `compat_43_sys_ftruncate'
freebsd_sysent.o:(.data+0xa8): undefined reference to `compat_43_sys_creat'
freebsd_sysent.o:(.data+0x184): undefined reference to `compat_43_sys_lseek'
freebsd_sysent.o:(.data+0x300): undefined reference to `compat_43_sys_stat'
freebsd_sysent.o:(.data+0x328): undefined reference to `compat_43_sys_lstat'
freebsd_sysent.o:(.data+0x4e0): undefined reference to `compat_43_sys_fstat'
freebsd_sysent.o:(.data+0x4f4): undefined reference to `compat_43_sys_getkerninfo'
freebsd_sysent.o:(.data+0x508): undefined reference to `compat_43_sys_getpagesize'
freebsd_sysent.o:(.data+0x594): undefined reference to `compat_43_sys_mmap'
freebsd_sysent.o:(.data+0x698): undefined reference to `compat_43_sys_wait'
freebsd_sysent.o:(.data+0x6d4): undefined reference to `compat_43_sys_gethostname'
freebsd_sysent.o:(.data+0x6e8): undefined reference to `compat_43_sys_sethostname'
freebsd_sysent.o:(.data+0x6fc): undefined reference to `compat_43_sys_getdtablesize'
freebsd_sysent.o:(.data+0x7c4): undefined reference to `compat_43_sys_accept'
freebsd_sysent.o:(.data+0x7ec): undefined reference to `compat_43_sys_send'
freebsd_sysent.o:(.data+0x800): undefined reference to `compat_43_sys_recv'
freebsd_sysent.o:(.data+0x878): undefined reference to `compat_43_sys_sigvec'
freebsd_sysent.o:(.data+0x88c): undefined reference to `compat_43_sys_sigblock'
freebsd_sysent.o:(.data+0x8a0): undefined reference to `compat_43_sys_sigsetmask'
freebsd_sysent.o:(.data+0x8c8): undefined reference to `compat_43_sys_sigstack'
freebsd_sysent.o:(.data+0x8dc): undefined reference to `compat_43_sys_recvmsg'
freebsd_sysent.o:(.data+0x8f0): undefined reference to `compat_43_sys_sendmsg'
freebsd_sysent.o:(.data+0x9cc): undefined reference to `compat_43_sys_recvfrom'
freebsd_sysent.o:(.data+0xa1c): undefined reference to `compat_43_sys_truncate'
freebsd_sysent.o:(.data+0xa30): undefined reference to `compat_43_sys_ftruncate'
freebsd_sysent.o:(.data+0xb0c): undefined reference to `compat_43_sys_getpeername'
freebsd_sysent.o:(.data+0xb20): undefined reference to `compat_43_sys_gethostid'
freebsd_sysent.o:(.data+0xb34): undefined reference to `compat_43_sys_sethostid'
freebsd_sysent.o:(.data+0xb48): undefined reference to `compat_43_sys_getrlimit'
freebsd_sysent.o:(.data+0xb5c): undefined reference to `compat_43_sys_setrlimit'
freebsd_sysent.o:(.data+0xb70): undefined reference to `compat_43_sys_killpg'
freebsd_sysent.o:(.data+0xbac): undefined reference to `compat_43_sys_quota'
freebsd_sysent.o:(.data+0xbc0): undefined reference to `compat_43_sys_getsockname'
freebsd_sysent.o:(.data+0xc38): undefined reference to `compat_43_sys_getdirentries'
freebsd_sysent.o:(.data+0xcb0): undefined reference to `compat_09_sys_getdomainname'
freebsd_sysent.o:(.data+0xcc4): undefined reference to `compat_09_sys_setdomainname'
freebsd_sysent.o:(.data+0xcd8): undefined reference to `compat_09_sys_uname'
How-To-Repeat:
Build a kernel in which a couple of COMPAT_ lines in the config
are commented out and which also have COMPAT_LINUX and/or COMPAT_FREEBSD
>Fix:
No problem building a 8.99.31 kernel right before the compat
merge with the same config file (although that kernel crashes
in the atapi attach code due to referencering a null pointer)



Home | Main Index | Thread Index | Old Index