Looking at the revision history from SCO's website, is that true SCO is the one who maintains the ABI standard? If not, who are the people maintaining the standard?


The Xinuos page hosting the System V generic ABI states that

The contents of these chapters is being actively maintained (in part) through an industry committee chaired by Intel. This group's efforts are greatly reduced from when they first were extending ELF to support 64-bit architectures, but there is still some active development.

(Xinuos was formed after the acquisition of OpenServer and UnixWare from the SCO Group.)

You'll find links to most of the current generic and processor supplement ABIs on Wikipedia's ELF specifications page and on Debian's tuple definition page.

  • Well I saw the links on Wikipedia and on OSDev wiki, but none state those specs are from official sources e.g. SCO hosts the documents, but I'm not sure if they are the maintainers. – Amumu Nov 14 '16 at 13:08
  • It seems like SCO is the original authors, as older GABI documents states that: "Copyright 1990 − 1996 The Santa Cruz Operation, Inc. All rights reserved.". Example: refspecs.linuxfoundation.org/elf/gabi41.pdf – Amumu Nov 14 '16 at 13:13
  • 1
    Yes, SCO are the original authors, Xinuos are the current owners, and the specs are "maintained" by an industry committee chaired by Intel. Note though that, when it comes to ABIs, "official" is whatever is implemented by the operating system you're interested in on the CPU you're interested in, and how that's implemented by the relevant compilers. – Stephen Kitt Nov 14 '16 at 13:14

SCO is dead and has been dead for a long time, https://en.wikipedia.org/wiki/Santa_Cruz_Operation. The most recent edition of the Linux Standards Base (LSB) is at http://refspecs.linuxfoundation.org/lsb.shtml. Check the LSB Core specifications. Note that recently many Linux distributions have begun to distance themselves from LSB.

An ABI is very very architecture-dependent... and sometimes compiler-dependent (C++ is notorious for different compilers having different ABIs). You should find and read the specific documentation for the processor architecture of and possibly language of interest.

  • The LSB does not say anything about ABI. The processor architecture is relevant when defining an ABI, but not sufficient. The ABI defines things like which registers are used for passing arguments, and which register is used for returning a function result. A CPU can have several ABIs. – Johan Myréen Nov 14 '16 at 13:05
  • @JohanMyréen +1 — and an operating system can support multiple ABIs on one CPU! – Stephen Kitt Nov 14 '16 at 13:07
  • Actually LSB Core specifications include such things as Low-Level System Information, Machine Interface, Function Calling Sequence, and Operating System Interface etc. The relevant documents then provide nice hyperlinks to the source documents. Despite the downvotes, I still think that it's the best starting point to understand the ABI. – AlexP Nov 14 '16 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.