Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Aug 1996 17:40:06 -0400 (EDT)
From:      Chuck Robey <chuckr@glue.umd.edu>
To:        Terry Lambert <terry@lambert.org>
Cc:        Robert Withrow <bwithrow@baynetworks.com>, jkh@time.cdrom.com, lada@ws2301.gud.siemens.co.at, markd@Grizzly.COM, hackers@FreeBSD.org
Subject:   Re: What are the plans for ELF support?
Message-ID:  <Pine.OSF.3.95.960809173034.553D-100000@modem.eng.umd.edu>
In-Reply-To: <199608091728.KAA18991@phaeton.artisoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 9 Aug 1996, Terry Lambert wrote:

> 
> > 3) Ability to use site-written and commercial applications that
> > are designed around elf (of which we have many).
> 
> This is actually false.  The problem is that SVR4, Linux, and FreeBSD
> all use different system call entry points, and the ELF format has
> no way of tagging the binary by source system type.  This is a flaw
> in the SVR4 EABI (available for download from the Motorolla site).
> 
> Linux actually uses the name of the ld.so to distinguish the binaries
> (which won't work for static binaries).  This is actually incorrect
> usage, since the ld.so code is designed (by implication in the SVR4
> EABI) to be mapped in by the execution class loader -- in the kernel,
> not in a hacked up crt0.o.
> 
> In netnews, I suggested a soloution to this, but it would require
> changing the Linux binary format slightly to make it work.  The idea
> would be to define an ABI interface, hopefully one that was identical
> to some existing commercial system, and then standardizing it:

Terry, I wonder, because of the fractionalization of the Linux
marketplace, if there would be a large rush towards accepting your idea.
What about this .... could WE use the idea on FreeBSD in a way that'd make
the others jealous?

I wonder if it might be possible to make a conversion program that, when
the user takes the responsibility of determining (from the user's
experience in getting a particular piece of software) that it is 'type x',
then this program would make the necessary adjustments in the binary elf
structures so that it fully conforms to your spec, and is runnable on
FreeBSD.

Can you tell me where your spec is?  Can I read it?  I know we couldn't
make such a 'validator' program automatic, because of the problem with the
current lack of info, but if we could rely on a user to specify the
bona-fides of the program, maybe it could then be tagged that way?
Something like this would have to be done only once, because once the
program was 'validated' and made to conform to a spec, it would be
binarily modified to run without further errors on ONE elf environment.

> 
> 1)	produce the spec.
> 2)	produce a free validation suite under TET/ETET for the thing.  
> 3)	include in the spec a mechanism for restricting the system
> 	to executing *only* the ABI defined in the spec -- no
> 	extentions -- to allow the first real application compliance
> 	testing in the industry.
> 4)	validate systems through self-validation; the spec would
> 	include mechanisms to uniquely identify builds of the system
> 	from a binary interface (specifically, the validation would
> 	be per release/code-cut, and the spec revision would be part
> 	of the validation).  Ship compliance certification results
> 	with the system.
> 5)	validate applications by doing the normal prerelease validation
> 	of the app with the mechanism in #3 active.  Resulting binaries
> 	are guaranteed to run on any compliant system.  Ship compliance
> 	certification results with the application.
> 
> I called the ABI "FABIO" for "Free Application Binary Interface Objective".

[context snipped]

> 
> 					Regards,
> 					Terry Lambert
> 					terry@lambert.org
> ---
> Any opinions in this posting are my own and not those of my present
> or previous employers.
> 

----------------------------+-----------------------------------------------
Chuck Robey                 | Interests include any kind of voice or data 
chuckr@eng.umd.edu          | communications topic, C programming, and Unix.
9120 Edmonston Ct #302      |
Greenbelt, MD 20770         | I run Journey2 and n3lxx, both FreeBSD
(301) 220-2114              | version 2.2 current -- and great FUN!
----------------------------+-----------------------------------------------




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.3.95.960809173034.553D-100000>