NetBSD-Bugs archive

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

Re: kern/53915: compat merge causing kernel link failure



The compat_linux code requires compat_43.

And the compat_freebsd code requires compat_09.

Please try the following (and attached) patch:

Index: src/sys/conf/files
===================================================================
RCS file: /cvsroot/src/sys/conf/files,v
retrieving revision 1.1222
diff -u -p -r1.1222 files
--- src/sys/conf/files	27 Jan 2019 02:08:41 -0000	1.1222
+++ src/sys/conf/files	27 Jan 2019 21:12:50 -0000
@@ -151,8 +151,8 @@ defflag	opt_compat_netbsd.h	COMPAT_11: C
 defflag	opt_compat_netbsd.h	COMPAT_10: COMPAT_11, COMPAT_NETBSD
 defflag	opt_compat_netbsd.h	COMPAT_09: COMPAT_10, COMPAT_NETBSD
 defflag				COMPAT_OSSAUDIO
-defflag				COMPAT_FREEBSD: COMPAT_30
-defflag				COMPAT_LINUX: COMPAT_NETBSD
+defflag				COMPAT_FREEBSD: COMPAT_09
+defflag				COMPAT_LINUX: COMPAT_NETBSD COMPAT_NETBSD43
 defflag				COMPAT_OSF1
 defflag				COMPAT_SUNOS: COMPAT_30
 defflag				COMPAT_ULTRIX: COMPAT_50



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)


!DSPAM:5c4e1d0b164211834365706!



+------------------+--------------------------+----------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:          |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
+------------------+--------------------------+----------------------------+
Index: src/sys/conf/files
===================================================================
RCS file: /cvsroot/src/sys/conf/files,v
retrieving revision 1.1222
diff -u -p -r1.1222 files
--- src/sys/conf/files	27 Jan 2019 02:08:41 -0000	1.1222
+++ src/sys/conf/files	27 Jan 2019 21:12:50 -0000
@@ -151,8 +151,8 @@ defflag	opt_compat_netbsd.h	COMPAT_11: C
 defflag	opt_compat_netbsd.h	COMPAT_10: COMPAT_11, COMPAT_NETBSD
 defflag	opt_compat_netbsd.h	COMPAT_09: COMPAT_10, COMPAT_NETBSD
 defflag				COMPAT_OSSAUDIO
-defflag				COMPAT_FREEBSD: COMPAT_30
-defflag				COMPAT_LINUX: COMPAT_NETBSD
+defflag				COMPAT_FREEBSD: COMPAT_09
+defflag				COMPAT_LINUX: COMPAT_NETBSD COMPAT_NETBSD43
 defflag				COMPAT_OSF1
 defflag				COMPAT_SUNOS: COMPAT_30
 defflag				COMPAT_ULTRIX: COMPAT_50


Home | Main Index | Thread Index | Old Index