New gABI/ELF Spec Available for Public Review

1,452 views
Skip to first unread message

Cary Coutant

unread,
Sep 2, 2025, 10:31:03 PM (2 days ago) Sep 2
to Generic System V Application Binary Interface
A draft of Version 4.3 of the ELF specification is now available for
public review, in both HTML and PDF:

https:://gabi.xinuos.com

The ELF specification was formerly part (chapters 4 and 5) of the SVR4
gABI document, but I have separated it from the gABI document to
better serve as a specification independent of the SVR4 ABI.

The last published gABI documents were the Fourth Edition and a draft
of Edition 4.1, both published in March 1997. The ELF portions of the
document were updated several times between 1998 and 2015, published
online as drafts at:

https://www.sco.com/developers/devspecs/

I've published the last draft from 2015 as Version 4.2, and collected
the several changes since then, along with new e_machine values, as
Version 4.3.

Version 4.2 (based on the fifteenth draft after Edition 4.1, from July 23, 2015)

- Converted to ReStructuredText.
- ELF specification is now separate from the gABI document.
- Removed empty placeholders for psABI sections.

Version 4.3 (DRAFT)

- Added extra requirements for SHF_LINKORDER flag.
- Added relative relocation table (Elf32_Relr and Elf64_Relr).
- Changed the symbol visibility attribute to use the lower 3 bits of
st_other (instead of 2 bits).
- Added DT_SYMTABSZ entry, and made DT_HASH optional if DT_SYMTABSZ is provided.
- Changed SHF_COMPRESSED to allow with SHF_ALLOC sections in ET_REL objects.
- Added ELFCOMPRESS_ZSTD compression algorithm.

Version 4.2, for reference, is available at:

https://gabi.xinuos.com/v42/

The source is on github:

https://github.com/xinuos/gabi

I've collected the gABI mailing list discussions for the changes
listed above for Version 4.3 as the first six issues in the issue
tracker.

-cary

H.J. Lu

unread,
Sep 2, 2025, 10:48:56 PM (2 days ago) Sep 2
to gener...@googlegroups.com
Thanks. I really appreciate it.

> -cary
>


--
H.J.

Fangrui Song

unread,
Sep 3, 2025, 2:06:11 AM (yesterday) Sep 3
to Generic System V Application Binary Interface
On Tuesday, September 2, 2025 at 7:48:56 PM UTC-7 H.J. Lu wrote:
Thank you for creating the new website and maintaining the specification!
The August 2015 post marked the start of the unmaintenained period https://groups.google.com/g/generic-abi/c/IakWYdGABjQ
After a decade, we now have an official live specification once again!

Updated my notes as well https://maskray.me/blog/2024-05-26-evolution-of-elf-object-file-format 

Michael Matz

unread,
Sep 3, 2025, 10:01:52 AM (yesterday) Sep 3
to Generic System V Application Binary Interface
Heyho,

On Tue, 2 Sep 2025, Cary Coutant wrote:

> A draft of Version 4.3 of the ELF specification is now available for
> public review, in both HTML and PDF:
>
> https:://gabi.xinuos.com
...
> - Converted to ReStructuredText.
...
> The source is on github:
>
> https://github.com/xinuos/gabi

Hurray! Thank you for persisting through it, Cary! I'm very happy.


Cioa,
Michael.

Mark Wielaard

unread,
Sep 3, 2025, 11:46:46 AM (yesterday) Sep 3
to Cary Coutant, Generic System V Application Binary Interface
Hi Cary,

On Tue, 2025-09-02 at 19:30 -0700, Cary Coutant wrote:
> I've published the last draft from 2015 as Version 4.2, and collected
> the several changes since then, along with new e_machine values, as
> Version 4.3.
>
> Version 4.2 (based on the fifteenth draft after Edition 4.1, from July 23, 2015)
>
> - Converted to ReStructuredText.
> - ELF specification is now separate from the gABI document.
> - Removed empty placeholders for psABI sections.
>
> Version 4.3 (DRAFT)
>
> - Added extra requirements for SHF_LINKORDER flag.
> - Added relative relocation table (Elf32_Relr and Elf64_Relr).
> - Changed the symbol visibility attribute to use the lower 3 bits of
> st_other (instead of 2 bits).
> - Added DT_SYMTABSZ entry, and made DT_HASH optional if DT_SYMTABSZ is provided.
> - Changed SHF_COMPRESSED to allow with SHF_ALLOC sections in ET_REL objects.
> - Added ELFCOMPRESS_ZSTD compression algorithm.
>
> Version 4.2, for reference, is available at:
>
> https://gabi.xinuos.com/v42/
>
> The source is on github:
>
> https://github.com/xinuos/gabi

Very nice! Thanks so much.

Could you add a license to it so it is clear what the redistribution
terms are and under which terms the supplement psABI documents may
reuse the text?

Thanks,

Mark

Cary Coutant

unread,
Sep 3, 2025, 2:24:08 PM (yesterday) Sep 3
to Mark Wielaard, Generic System V Application Binary Interface
> Could you add a license to it so it is clear what the redistribution
> terms are and under which terms the supplement psABI documents may
> reuse the text?

Working on it. I've proposed a more permissive license to the Xinuos
legal team, and need their approval.

-cary

Cary Coutant

unread,
Sep 3, 2025, 2:33:26 PM (yesterday) Sep 3
to Generic System V Application Binary Interface
By the way, I'd like to thank Ali Bahrami and Carlos O'Donell for
their thorough and constructive reviews of earlier drafts of this
work.

-cary

ali_e...@emvision.com

unread,
Sep 3, 2025, 3:06:07 PM (yesterday) Sep 3
to gener...@googlegroups.com
On 9/2/25 8:30 PM, Cary Coutant wrote:
> Version 4.2, for reference, is available at:
>
> https://gabi.xinuos.com/v42/
>
> The source is on github:
>
> https://github.com/xinuos/gabi


Even though I saw an earlier draft, and had a pretty
good idea of what to expect, I'm really impressed by how good
this is. It's quite a leap from the previous edition.

You've done a huge service for the rest of us, and one that I
doubt could have happened otherwise. We're set for years to
come now.

Thank You!

- Ali

Reply all
Reply to author
Forward
0 new messages