Subject: Re: Compiling the kernel
To: None <port-arm32@NetBSD.ORG>
From: Tony Houghton <tonyh@tcp.co.uk>
List: port-arm32
Date: 02/14/1998 23:45:09
In message <10fdf61748%tonyh@tonyh.tcp.co.uk>
          Tony Houghton <tonyh@tcp.co.uk> wrote:

> I tried to compile a kernel from ftp.netbsd.org and it failed to link:
>
> ld -Ttext F0000000 -e start -x -o netbsd ${SYSTEM_OBJ} vers.o

[Snipped list of undefined symbols including _assert_wait]

After not receiving the usual prompt help I get from asking things on
this list I thought I'd try to get to the bottom of things myself so I
had a look for one of the missing symbols:

find /usr/src/sys -name '*.c' -exec grep _assert_wait {} \;

It churned away, but instead of printing matches it just occasionally
spewed out a mangled version of the above command and messages about
find's syntax.

[A little later]

I decided to have another go and rebooted. Whether it was the reboot or
deciding to give an option to grep (-l) I don't know, but the search
started working (I used assert_wait without the leading _ this time to
make sure it would find the one I knew was present).

However, _assert_wait isn't mentioned anywhere in the code. The nearest
it comes to being referred to in vm_fault.c is the macro
PAGE_ASSERT_WAIT, but that expands to something including assert_wait
without the leading _.

assert_wait is used but apparently not defined. _assert_wait isn't
referred to at all anywhere in the source or headers or Makefiles or any
library headers. Is the linker adding the _ leading itself for some
reason?

-- 
  \_________________
                    \  http://homepages.tcp.co.uk/~tonyh/
   The Curling Pages \ The home of WinEd, Bombz and NewsFind for RISC OS