Subject: Re: When is ELF coming?
To: None <tls@rek.tjls.com>
From: Ian Lance Taylor <ian@cygnus.com>
List: tech-kern
Date: 11/25/1996 17:59:53
   Date: Mon, 25 Nov 96 17:40:09 EST
   From: Thor Lancelot Simon <tls@panix.com>

   Well, all of the operating systems that I know of on the i386 which use ELF
   all seem to use /lib/libc.so as the interpreter.  SCO does, UnixWare does,
   "stock" SVR4 (at least, the NCR 3000 binaries that Oracle ships) does, Solaris
   does, Linux does.

No, Linux uses something like /lib/ld-linux.so.1.

   This is a horrible, nasty botch.  Even if one were to change ELF today to
   add meaning to one of the bytes in the ident field that nobody uses, there
   are thousands of binaries out there which are *not* all built for stock SVR4
   which will continue, unless relinked or edited in place, to have the wrong
   value.  Not to mention that most operating systems don't bother to look past
   E L F in that header just now, so problems with widely-installed legacy
   systems will persist.

Yes, there will be legacy problems no matter what you do.  I'm not
sure what conclusion this leads to, but you won't avoid legacy
problems by deciding to not use ELF.

   So we're essentially where we started.  NetBSD can go modify ELF in some
   nonstandard way, producing something that's different and better, but isn't
   quite "standard" ELF and will require toolchain modifications to work.

As far as I know, all the free operating systems do ELF support using
the GNU toolchain.  Since I maintain the GNU linker, I can safely
promise that any reasonable patch to add a host identification byte
will be installed.

However, I still suspect that it can be handled by simply using a
different dynamic linker, and not extending the ELF standard.  Yes,
you will have legacy problems, but you will them anyhow.

   Historically, there have been issues involved in actually getting these
   changes merged back into the trunk versions of the tools we use.  Perhaps
   that's better now, and will stay better in the future, but it hasn't always
   been, certainly.

To the best of my knowledge, there have never been any problems in
getting *BSD code merged into the GNU binutils (assembler, linker,
etc.).  All patches that have been sent have been installed.  If you
believe otherwise, please let me know.  I can't speak for other GNU
tools, since I don't maintain them.

Ian