Subject: ELF is coming to get you.
To: None <port-alpha@NetBSD.ORG>
From: Chris G. Demetriou <cgd@CS.cmu.edu>
List: port-alpha
Date: 02/14/1997 14:49:28
So, I just thought i'd give you folks all some warning:

As you probably know, ELF support (including shared library support)
has long been 'in the pipe' for NetBSD/Alpha.  People have been
beta-testing it for several months now, and i've been running it for
over 4 months on most of my development machines.

The NetBSD/Alpha ELF shared library work was started and mostly done
by Matt Thomas.  The toolchain work was mostly done by Richard
Henderson (for Linux).  I glued it all together, found lots of bugs
(which Richard then fixed 8-), and integrated the various support
programs into the source tree.

There are still a few bugs (noticeably, a few problems with 'ldd', and
some problems with some of the NetBSD games), but other than those
(none of which impede normal system operation) it works great, and
saves a lot of space.  8-)



My plans:

Over the next few days (maybe week), i plan to build a new snapshot,
with ELF binaries.

When I release it, I will also (in addition to the normal stuff)
distribute tarballs of _just_ the toolchain binaries shared libraries,
and other binaries that you need to bootstrap yourself up to ELF from
sources.  People wishing to upgrade existing installations by
compiling updated sources should install that tarball and then
compile and install the entire source tree.


What you should do to prepare your systems:

You should probably build new boot blocks (cd src/sys/arch/alpha/stand
; make clean ; make depend ; make ; make install).  Once you've done
that, you should install the new boot blocks (installed by 'make
install' into /usr/mdec) on your hard disk by following the
instructions in the installboot(8) manual page.  The current boot
block sources know how to load ELF-format kernels, as well as ECOFF
kernels.

You should also build a kernel from up-to-date kernel sources.
Current kernels have for a while now known how to execute ELF
binaries.

Those two steps should help the transition a bit.


What this means for existing ECOFF binaries and object files:

Existing ECOFF binaries will continue to run and be supported for the
indefinite future (at least until the next official release of
NetBSD).

It should be possible to configure the new toolchain to build ECOFF
binaries, but i've not tested that recently.  Additionally, the ECOFF
binaries generated by the existing toolchain will not be usable by the
new toolchain (they use special relocations which were hacked into the
NetBSD/Alpha toolchain).  This means that you'll have to throw away
all your old .o files.


Just thought i'd give you all a big "head's up!"  Watch this space for
further information.


If you've got any questions or concerns, feel free to send the to the
list or to me directly.


cgd