Subject: Re: I've got ELF - new snapshot
To: Matthew J. Hall <matthewhall@mac.com>
From: Frederick Bruckman <fredb@immanent.net>
List: port-mac68k
Date: 11/27/2001 12:43:44
On Tue, 27 Nov 2001, Matthew J. Hall wrote:

> Quoth Space Case at 9:52 PM -0800 on 25/11/2001:
>
> >I'm happy to say, I'm running ELF on my Q650.
> >[...] work on the Booter, I was able to build and run an ELF system.
> >The brave among you now have the chance to do it yourselves.
>
> That's great! Now, please forgive my sub-standard organic knowledge
> storage device, but why is this a good thing? Is this A Good Thing?

The most compelling reason to switch is that "gcc" for a.out is no
longer supported. When an import updates the compiler for the ELF ports,
the version number on mac68k changes, too, but little else! Also, once
we're on the same page as everyone else (other NetBSD ports, and most
other Open Source projects), we'll be able to cross build shared
libraries and executables for mac68k on another host, and vice-versa.

Gnome executables, for instance, which use lots of shared libraries,
sometimes dump core mysteriously, or give missing symbols (which aren't
missing). All that should just go away after the switch. (I hope.)

> What's an ELF anyway? (Aside from the usual definitions for this time
> of year...)

A quick search on google turns up the definition "Executable and Linking
Format".

> I did find an ELF FAQ <http://www.netbsd.org/Documentation/elf.html>
> however the description really doesn't shed a whole lot of light on
> the subject (for me anyway...) :
> "What is ELF?

You realize there's more in a binary than just code? There's headers to
tell the kernel what sort of binary it is, code sections, headers to
identify the code sections, symbol tables, and headers for those, too.
"a.out" is one set of conventions, "ELF" is another. "a.out" is the
simpler binary format which Mac OS used to use, and Sun, too. "ELF" is
more complicated and extensible -- the binaries are bigger, by the way
-- but it's been ordained as the new de-facto standard, so the sooner we
switch, the less trouble in the long run.

All the other significant m68k ports have switched lately, so it would
be a real mess if mac68k was the only port using "a.out".  (When they're
all targetting the same format, all NetBSD/m68k machines build and run
identical binaries, so they can normally share packages, as well as a
significant portion of NetBSD itself).

Frederick