Subject: Link errors building kernel
To: None <port-alpha@NetBSD.ORG>
From: John Birrell <cimaxp1!jb@melb.werple.net.au>
List: port-alpha
Date: 05/18/1996 09:38:37
G'day,

I've been trying to build a kernel from supped sources (from May 15 via
the local mirror) but I get link errors for compat_43_sys* stuff. I'm
not sure what is going on. Here's what I did after supping....

cd /usr/src/share/mk
make install
cd /usr/src
make includes
cd /usr/src/usr.sbin/config
make depend && make all && make install
cd /usr/src/sys/arch/alpha/conf
config GENERIC
cd ../compile/GENERIC
make depend && make all

And here's how it barfed....

ld -N -Ttext fffffc0000230000 -e __start -G 4 -X -o netbsd ${SYSTEM_OBJ} vers.o
tty.o: In function `ttioctl':
../../../../kern/tty.c:896: undefined reference to `ttcompat'
init_sysent.o(.data+0x88): undefined reference to `compat_43_sys_creat'
init_sysent.o(.data+0x138): undefined reference to `compat_43_sys_lseek'
init_sysent.o(.data+0x268): undefined reference to `compat_43_sys_stat'
init_sysent.o(.data+0x288): undefined reference to `compat_43_sys_lstat'
init_sysent.o(.data+0x3e8): undefined reference to `compat_43_sys_fstat'
init_sysent.o(.data+0x3f8): undefined reference to `compat_43_sys_getkerninfo'
init_sysent.o(.data+0x408): undefined reference to `compat_43_sys_getpagesize'
init_sysent.o(.data+0x478): undefined reference to `compat_43_sys_mmap'
init_sysent.o(.data+0x548): undefined reference to `compat_43_sys_wait'
init_sysent.o(.data+0x578): undefined reference to `compat_43_sys_gethostname'
init_sysent.o(.data+0x588): undefined reference to `compat_43_sys_sethostname'
init_sysent.o(.data+0x598): undefined reference to `compat_43_sys_getdtablesize'
init_sysent.o(.data+0x638): undefined reference to `compat_43_sys_accept'
init_sysent.o(.data+0x658): undefined reference to `compat_43_sys_send'
init_sysent.o(.data+0x668): undefined reference to `compat_43_sys_recv'
init_sysent.o(.data+0x6c8): undefined reference to `compat_43_sys_sigvec'
init_sysent.o(.data+0x6d8): undefined reference to `compat_43_sys_sigblock'
init_sysent.o(.data+0x6e8): undefined reference to `compat_43_sys_sigsetmask'
init_sysent.o(.data+0x708): undefined reference to `compat_43_sys_sigstack'
init_sysent.o(.data+0x718): undefined reference to `compat_43_sys_recvmsg'
init_sysent.o(.data+0x728): undefined reference to `compat_43_sys_sendmsg'
init_sysent.o(.data+0x7d8): undefined reference to `compat_43_sys_recvfrom'
init_sysent.o(.data+0x7e8): undefined reference to `compat_43_sys_setreuid'
init_sysent.o(.data+0x7f8): undefined reference to `compat_43_sys_setregid'
init_sysent.o(.data+0x818): undefined reference to `compat_43_sys_truncate'
init_sysent.o(.data+0x828): undefined reference to `compat_43_sys_ftruncate'
init_sysent.o(.data+0x8d8): undefined reference to `compat_43_sys_getpeername'
init_sysent.o(.data+0x8e8): undefined reference to `compat_43_sys_gethostid'
init_sysent.o(.data+0x8f8): undefined reference to `compat_43_sys_sethostid'
init_sysent.o(.data+0x908): undefined reference to `compat_43_sys_getrlimit'
init_sysent.o(.data+0x918): undefined reference to `compat_43_sys_setrlimit'
init_sysent.o(.data+0x928): undefined reference to `compat_43_sys_killpg'
init_sysent.o(.data+0x958): undefined reference to `compat_43_sys_quota'
init_sysent.o(.data+0x968): undefined reference to `compat_43_sys_getsockname'
init_sysent.o(.data+0x9c8): undefined reference to `compat_43_sys_getdirentries'
tty.o(.lita+0x138): undefined reference to `ttcompat'
*** Error code 1

Stop.


I noticed that it *did* do the "making sure the compat library is up to
date..." step and compile all the compat objects.

I munged the echo line in the link to show ${SYSTEM_OBJ} and
lib/compat/libcompat.a is in there. Then I looked at lib/compat/libcompat.a
and it was only 8 bytes!  So the ar step didn't work. I ran ar manually
to get a libcompat.a version that allows the kernel to link.

Any ideas why libcompat.a isn't building? I've used the same procedure
to build i386 and that works.

Regards,

-- 
John Birrell                                CIMlogic Pty Ltd
jb@cimlogic.com.au                          119 Cecil Street
Ph  +61  3 9690 6900                        South Melbourne Vic 3205
Fax +61  3 9690 6650                        Australia
Mob +61 18  353  137