Toolchains adventures - Q3 2023

Frederic Cambus September 29, 2023 [LLVM] [Compilers] [Toolchains]

This is the eighth post in my toolchains adventures series. Please check the previous posts in the toolchains category for more context about this journey. There was no Q2 2023 report as there wasn't really anything worthwhile to write about.

In Pkgsrc land, I updated binutils to the 2.41 version, and mold to the 2.0.0, 2.1.0, and 2.2.0 versions. It's worth noting that Mold transitioned its license from AGPL to MIT starting with the 2.0.0 release.

I also updated the NetBSD system call table in GDB to add the memfd_create(2) and epoll(2) syscalls which were added in July.

Regarding OpenBSD, I updated binutils to version 2.41, allowing us to remove patches for ARM support as they had been pushed upstream.

During this release cycle, OpenBSD enabled mandatory enforcement of indirect branch targets using Intel's IBT on OpenBSD/amd64 and ARM's BTI on OpenBSD/arm64. I added support upstream for the PT_OPENBSD_NOBTCFI segment type to readelf in GNU Binutils, as well as in LLVM versions of objdump and readobj.

As usual, I’ve also been busy reading different material, and adding new resources to toolchains.net.

binutils and GDB commits:

2023-09-2873b2241Add support to readelf for the PT_OPENBSD_NOBTCFI segment type
2023-09-219c1e3e4Update the NetBSD system call table to add memfd_create(2) and epoll(2)

LLVM commits

2023-09-25e5038f0[llvm-readobj] Add support for the PT_OPENBSD_NOBTCFI segment type
2023-09-22a921f2a[llvm-objdump] Add support for the PT_OPENBSD_NOBTCFI segment type
2023-09-21ca3ed7b[clang] Update Clang version from 17 to 18 in scan-build.1