Subject: Re: ELF and Multiboot questions
To: Travis Hassloch <travis@evtech.com>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: port-i386
Date: 12/04/1995 17:48:22
On Mon, 4 Dec 1995 14:21:59 -0600 (CST) 
 Travis Hassloch <travis@evtech.com> wrote:

 > In parallel, I'm wondering if ELF binaries give any added functionality
 > over existing NetBSD shared libs/a.out format.

Some argue that they do.  For some architectures, that is certainly the 
case.  However, for most of NetBSD's platforms, a.out works Just Fine.

(I know I'm going to start another holy war with that :-)

 > For those who don't know, ELF is apparently some kind of pseudo-standard
 > (Solaris & Linux & ?) that basically allows run-time location independence
 > by doing looking up offsets in a table, as I understand it.
 > I'm not sure if it's dynamic run-time location independence (e.g. it can
 > move around in your proc's virtual address space, which seems silly), or
 > just static independence (i.e. when the shared lib is referenced).

ELF is a SVR4 thing.  Linux picked it up because their a.out shared 
library implementation sucked rocks.  They have some evil hackery in 
their crt0.o which helps the Linux kernel distinguish between native 
Linux executables and SVR4 executables.

However, Paul Kranenburg did a great job with NetBSD's a.out shared 
library implementation.  However, a.out is inadequate for some 
processors, notable the MIPS and Alpha (and PA-RISC, too, but we don't 
have an hp700 port yet...).  I tend to favor having a toolchain that, 
from a single source tree, will build ELF or a.out, depending on the 
target architecture.

--------------------------------------------------------------------------
Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                               Home: 408.866.1912
NAS: M/S 258-6                                          Work: 415.604.0935
Moffett Field, CA 94035                                Pager: 415.428.6939