Subject: more progress (was Re: New shared-lib snapshot available )
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Tom Yu <tlyu@MIT.EDU>
List: port-pmax
Date: 03/05/1997 01:17:59
I've done a little more work on this; it appears that the snapshot
crt0.o wasn't compiled from the crt0.S.  This caused stuff to coredump
when linked with a crt0.o compiled from the -current tree.  Once I
replaced the crt0.o with the one from the snapshot, linking seems to
work again, provided I actually make the tweaks to compile all .o
files as PIC (some of this required the somewhat questionable usage of
"#define ABICALLS" in sys/arch/mips/include/asm.h to avoid editting
lots of libc .S files) and to generate the shared library from the
same .o files as the static library.  I'm currently slowly rebuilding
the universe (on a slow maxine).  Hopefully it will work.

I've noticed that you've committed changes in lib/csu/mips.  Are these
the sources from which the snapshot crt0.o come?

Forgive a potentially stupid question, but *why* is it necessary to
have all files compiled as PIC?  Is it that non-PIC .o files won't
link with a shared libc, and requiring software authors to use
non-standard cc flags in order to compile either static or dynamic
binaries is unreasonable?  Does non-PIC code use a different function
calling convention than PIC code?  I've noticed that Irix, among other
things, does something similar.

---Tom