From owner-freebsd-chat Fri May 7 16:47: 4 1999 Delivered-To: freebsd-chat@freebsd.org Received: from smtp01.primenet.com (smtp01.primenet.com [206.165.6.131]) by hub.freebsd.org (Postfix) with ESMTP id 8D99B14C21 for ; Fri, 7 May 1999 16:46:59 -0700 (PDT) (envelope-from tlambert@usr05.primenet.com) Received: (from daemon@localhost) by smtp01.primenet.com (8.8.8/8.8.8) id QAA23635; Fri, 7 May 1999 16:46:54 -0700 (MST) Received: from usr05.primenet.com(206.165.6.205) via SMTP by smtp01.primenet.com, id smtpd023540; Fri May 7 16:46:44 1999 Received: (from tlambert@localhost) by usr05.primenet.com (8.8.5/8.8.5) id QAA01120; Fri, 7 May 1999 16:46:42 -0700 (MST) From: Terry Lambert Message-Id: <199905072346.QAA01120@usr05.primenet.com> Subject: Re: IBCS2 type question :) To: licia@o-o.org (Licia) Date: Fri, 7 May 1999 23:46:42 +0000 (GMT) Cc: chat@FreeBSD.ORG In-Reply-To: from "Licia" at May 6, 99 02:15:00 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > Can anyone give me an idea of where to dig up information on IBCS2, and any > related information? (Is there an IBCS3, any discussions of doing IBCS2 with > Elf as well as COFF, etc?) Hope this is useful to you: ----------------------------------------------------------------------- IBCS/2 is the Intel Binary Compatability Standard, version 2. IBSC/2 is documented in the AT&T UNIX manuals, in the addendum for X86 processors. It's about 300 or so pages. There is not an IBCS/3. IBCS/2 mandates COFF. ELF is documented as it's own standard. The SVR4 compatible implementation of implies a system call mechanism, stack argument layout, and other things (one of which is that the kernel is expected to mmap the ld.so into the program image on behalf of the program at the time the executable is run, allowing statically linked programs to use dlopen, dlsym, et. al.; this is why the ELF entry point is set so high). There are several non-standard versions of ELF. These versions use system call interface and calling conventions that do not match standard ELF. As a result, in order to run non-native ABI binaries on these systems, the ELF image must be "branded", using a non-standard section tag that is missing from true ELF binaries (FreeBSD is one such system). Technically, FreeBSD is not an ELF system; neiterh is Linux. The IBCS/2 documentation is not available online, only abstracts by people who are documenting their own implementation of IBCS/2. If you are attempting to build a binary that will run on multiple machines, IBCS/2 is a better standard than ELF, since it specifies not only an ABI, but all installation tools, filesystem layout, system startup and shutdown integration, and many other things not normally considered to be part of an ABI. As of this writing, a "standard" platform for binaries uses the ELF object file format, the implicit system call and calling convention for SVR4.2 (and Solaris), and compliance with the Single UNIX Specification (formerly Spec 1170, so named for the 1,170 API entry points for the system call and system library interfaces that must be implemented to obtain compliance). In addition, there is unspecified information which is legacy from IBCS/2, specifically things like the init system and other daemon programs (System V has it's own line printer model, etc.), which must be provided for a system to be sure that it is capable of running code from a "true" UNIX system. ----------------------------------------------------------------------- Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message