From owner-freebsd-arch Tue May 7 12:40:53 2002 Delivered-To: freebsd-arch@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id DC98B37B403; Tue, 7 May 2002 12:40:43 -0700 (PDT) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g47Jehl84130; Tue, 7 May 2002 12:40:43 -0700 (PDT) (envelope-from dillon) Date: Tue, 7 May 2002 12:40:43 -0700 (PDT) From: Matthew Dillon Message-Id: <200205071940.g47Jehl84130@apollo.backplane.com> To: John Baldwin Cc: "David O'Brien" , arch@FreeBSD.ORG, Poul-Henning Kamp Subject: Re: syscall changes to deal with 32->64 changes. References: Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG :On 07-May-2002 David O'Brien wrote: :> On Tue, May 07, 2002 at 05:37:16PM +0200, Poul-Henning Kamp wrote: :>> I would therefore like to propose that we do something like :>> the following: :>> :>> Repocopy src/sys/sys/* to src/sys/include :>> Repocopy src/sys/sys/* to src/sys/abi4 :> :> This is actually the FreeBSD 3.0 ABI, not an ABI introduced with 4.0. : :I prefer a suggestion I think you had where the ABI isn't actually :linked to freebsd versions, but instead our current ABI is ABI 1 (or 0) :and the new ABI would be ABI 2 (or 1). : :-- : :John Baldwin <>< http://www.FreeBSD.org/~jhb/ :"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ Hmm. I think this may be a little too confusing. Remember that we have serious issues with mainline files in /usr/src/include (aka /usr/include), not just /usr/src/sys/sys. We also have issues with /usr/lib, etc. Why not do something like this: /usr/src/include/ Contains architecture and ABI independant files /usr/src/include/ABIx/ /usr/src/include/ABIy/ /usr/src/include/ABIz/ Contains ABI specific files. For example, /usr/src/include/ABIx/sys (mirrored in /usr/include, aka /usr/include/, /usr/include/ABI/) Then we simply change the default compiler -I path from: /usr/include to /usr/include:/usr/include/ABIxxx where the ABI may be chosen at compile time with an option to cc, and the default is set to whatever the appropriate default is. This makes the 'switch' easy to throw. The compiler/linker is going to need knowledge of the ABI being used anyway since it has to set the ELF parameter, we might as well leverage that for the includes as well. We will need ABI specific libraries as well. e.g. /usr/lib, /usr/lib/ABIx, etc... I really think this is the cleanest, safest way to do it, and it also paves the way for us to allow natively compiled multi-architectural support. e.g. consider this: cc -ABI4 ... cc -ABI5 ... cc -ABILinux ... cc -ABIOpenBSD ... You see what I am getting at? -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message