Subject: Re: ld
To: None <port-arm32@NetBSD.ORG>
From: Alex Hayward <xelah@ferret.lmh.ox.ac.uk>
List: port-arm32
Date: 03/15/1998 18:56:52
On Wed, 11 Mar 1998, Jasper Wallace wrote:
> Now that the NetBSD linker has had some gnu-style command line args added
> (--whole-archive --no-whole-archive) whats the best way to bully the arm32
> linker into working with the new system makefiles...?

-Bforcearchive seems to have a similar effect... Though I don't think you
can turn it on and off throughout the command line like
--[no-]whole-archive. It works well enought to build libc from -current.

Actually, the linker in -current gives the appearance of working... For a
simple test program linked with a newly compiled libc.so. But I'm using
the old one now, just in case. The ld.so in current doesn't work, it
seems. I tried adding the diffs between 1.3 release ld and the arm32
specific ld in to the current ld (I did it by hand, and ignored most of
the diffs which relate only to debugging information)... This seems to
work too :-) Logically one of them ought to fail in one circumstance or
another, I'd guess. 

vfork doesn't work on programs compiled with a newly compiled libc. I know
that vfork was changed somewhat recently (back to the old vfork style
operation I think) and it seems that anything which uses the new (ie
old...) syscall cause the machine to hang completely: no interrupts, no
panic, etc etc. This is with a current kernel, but with a few newly
written assembler library functions compiled in (which seem to work in all
other circumstances, and I have given them a little testing outside the
kernel).

The result is that typing man <something> fails because system() in the C
library doesn't work any more. It just hangs the machine.

-- 
alex@hayward.u-net.com; xelah@ferret.lmh.ox.ac.uk