From owner-freebsd-hackers Sun Nov 19 14:58:35 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id OAA07770 for hackers-outgoing; Sun, 19 Nov 1995 14:58:35 -0800 Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id OAA07731 for ; Sun, 19 Nov 1995 14:58:11 -0800 Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id PAA01747; Sun, 19 Nov 1995 15:56:14 -0700 From: Terry Lambert Message-Id: <199511192256.PAA01747@phaeton.artisoft.com> Subject: Re: elm problem - "solved" To: grog@lemis.de Date: Sun, 19 Nov 1995 15:56:14 -0700 (MST) Cc: terry@lambert.org, hackers@FreeBSD.ORG In-Reply-To: <199511191405.PAA00236@allegro.lemis.de> from "Greg Lehey" at Nov 19, 95 03:05:48 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 1637 Sender: owner-hackers@FreeBSD.ORG Precedence: bulk > It's not voodoo, it's grotesque. Every time you change crt0.o, you > need to change your object file recognition routines? What do you do > if you're playing with crt0.o? Well, if you are smart, you aren't in this position in the first place because you picked a different magic number when you changed the ABI that the binaries use. If you're not smart, then you become grotesque as a damage control mechanism. In point of fact, what you'd probably do is use the magic number to select a binary loader and have it call a subloader based on the "rules" for binary compatability. Then everything else falls into the default loader. This means that you only vary the recognition routines once: for backward compatability, which by definition won't have anything to do with evolving the interface. Then if you change the ABI in the future, use a different magic number or risk being labelled and idiot and having to repeat the process for the now static pre-ABI-rev formats. Do you want to be able to run the binaries, as "grotesque" as you have to be to do so, or do you want to be "pure" and be unable to run anything? ABI is a question of expediency in the first place, since it means you are either too lazy or simply unable to evangelize people into porting to your platform and/or cinvinve customers with older platforms to buy all new software when switching. I think the answer as to "what should be done once you have already decided to be expedient anyway?" is pretty obvious. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.