#Binutils

2025-06-07

All I want is just a collection of #binutils, #GCC, #llvm+#clang, #glibc and #musl that are "free standing" / relocatable, which I can pack into a #squashfs image to carry around to my various development machines.

You'd think that for something as fundamental as compiler infrastructure with over 60 years of knowledge, the whole bootstrapping and bringup process would have been super streamlined, or at least mostly pain free by now.

Yeah, about that. IYKYK

Linux 6.16 needs GCC 8 and Binutils 2.30

The upcoming version of Linux now needs at least GCC 8 and GNU Binutils 2.30 to be able to successfully build, because this was needed to remove all legacy code that provided workarounds for build systems prior to GCC 8, which became a maintenance burden. Previously, GCC 5 and Binutils 2.25 were required to build Linux, and the latest version, 6.15, had this requirement before 6.16 increased it.

GCC 8 and Binutils 2.30 brought new features that Linux 6.16 needed, while LLVM Clang 13 was the minimum requirement for Linux in case you’ll need to use LLVM instead of the legacy GCC.

You can see the merge request below.

See merge request

The reasoning for this minimum version requirement bump is here:

x86 already uses gcc-8 as the minimum version, this changes all other architectures to the same version. gcc-8 is used is Debian 10 and Red Hat Enterprise Linux 8, both of which are still supported, and binutils 2.30 is the oldest corresponding version on those.

Ubuntu Pro 18.04 and SUSE Linux Enterprise Server 15 both use gcc-7 as the system compiler but additionally include toolchains that remain supported.

With the new minimum toolchain versions, a number of workarounds for older versions can be dropped, in particular on x86_64 and arm64. Importantly, the updated compiler version allows removing two of the five remaining gcc plugins, as support for sancov and structeak features is already included in modern compiler versions.

I tried collecting the known changes that are possible based on the new toolchain version, but expect that more cleanups will be possible.

Since this touches multiple architectures, I merged the patches through the asm-generic tree.”

Photo by Andrea Piacquadio

#Binutils #GCC #Linux #LinuxKernel #news #Tech #Technology #update

2025-05-28

#BSI WID-SEC-2025-1157: [NEU] [mittel] #binutils: Mehrere Schwachstellen ermöglichen Codeausführung

Ein lokaler Angreifer kann mehrere Schwachstellen in binutils ausnutzen, um beliebigen Programmcode auszuführen.

wid.cert-bund.de/portal/wid/se

2025-04-20

Sourceware Survey 2025 Results

In the end we got 103 (!) responses with a nice mix of developers, users and maintainers from various hosted projects.

sourceware.org/survey-2025

#binutils #cygwin #dwarfstd #elfutils #gcc #gdb #glibc #libabigail #newlib #systemTap #valgrind #bzip2 #libffi #dwz #debugedit #gnupoke #bunsen #lvm2 #annobin #gnu-gabi #cgen #kawa #insight #pacme

Sun Microdevil Pte Ltdkoakuma@uwu.social
2025-03-06

Anyone here familiar with SPARC binutils internals? I'm having a rather odd case where the same instruction (and same binary sequence) gets interpreted differently depending on who compiles it :cirnothinking:

Say, I have this `decode.s` file containing the following line:
decode: addxccc %g0, %g0, %g0

One VIS3 instruction, very simple. Then assemble it with both gcc and clang:
gcc -mcpu=niagara4 -c decode.s -o decode-gcc.o
clang -mcpu=niagara4 -c decode.s -o decode-clang.o

And now, if I run objdump on the files, the results are different:
decode-clang.o: file format elf64-sparc

Disassembly of section .text:

0000000000000000 <decode>:
0: 81 b0 02 60 unknown

Compare with GCC's:
decode-gcc.o: file format elf64-sparc

Disassembly of section .text:

0000000000000000 <decode>:
0: 81 b0 02 60 addxccc %g0, %g0, %g0

In both cases the binary stream is the same, but why does objdump decodes it as "unknown" with the clang-built file?

Edit: found it, seems like GCC sets something in the attribute section:

Attribute Section: gnu
File Attributes
Tag_GNU_Sparc_HWCAPS: vis3

Though as far as I can tell other than odd objump output it doesn't seem to affect binary execution, etc.

#AskFedi #Binutils #GCC #SPARC

2025-02-11

#BSI WID-SEC-2025-0304: [NEU] [mittel] #binutils: Mehrere Schwachstellen

Ein entfernter, anonymer Angreifer kann mehrere Schwachstellen in binutils ausnutzen, um einen Denial of Service-Zustand zu erzeugen oder nicht spezifizierte Auswirkungen zu verursachen.

wid.cert-bund.de/portal/wid/se

2025-02-11

#BSI WID-SEC-2025-0304: [NEU] [mittel] #binutils: Mehrere Schwachstellen

Ein entfernter, anonymer Angreifer kann mehrere Schwachstellen in binutils ausnutzen, um einen Denial of Service-Zustand zu erzeugen oder nicht spezifizierte Auswirkungen zu verursachen.

wid.cert-bund.de/portal/wid/se

2025-02-11

#BSI WID-SEC-2025-0304: [NEU] [mittel] #binutils: Mehrere Schwachstellen

Ein entfernter, anonymer Angreifer kann mehrere Schwachstellen in binutils ausnutzen, um einen Denial of Service-Zustand zu erzeugen oder nicht spezifizierte Auswirkungen zu verursachen.

wid.cert-bund.de/portal/wid/se

Neustradamus :xmpp: :linux:neustradamus
2025-02-03
Thorsten Leemhuis (acct. 1/4)kernellogger@fosstodon.org
2025-02-03

GNU #Binutils 2.44 is out:

lists.gnu.org/archive/html/inf

Some highlights:

* Assembler:
- Support for new architecture extensions for AArch64, Risc-V and x86.

* Linker:

- This now supports mixed LTO and non-LTO object files in relocatable output.
- The ELF forms of the linker support a --image-base=<ADDR> option for compatibility with LLD.

[…] does not contain the sources for the gold linker […] now deprecated and will eventually be removed unless volunteers step forward […]

2025-01-30

#BSI WID-SEC-2025-0223: [NEU] [mittel] #binutils: Schwachstelle ermöglicht nicht spezifizierten Angriff

Ein entfernter, anonymer Angreifer kann eine Schwachstelle in binutils ausnutzen, um einen nicht näher spezifizierten Angriff durchzuführen.

wid.cert-bund.de/portal/wid/se

2024-11-15

#BSI WID-SEC-2024-3470: [NEU] [mittel] #binutils: Schwachstelle ermöglicht Denial of Service

Ein lokaler Angreifer kann eine Schwachstelle in binutils ausnutzen, um einen Denial of Service Angriff durchzuführen.

wid.cert-bund.de/portal/wid/se

2024-11-11

Rust custom Triplet

Целевые триплеты описывают платформу, на которой выполняется код, и являются основной концепцией системы сборки GNU. Обычно триплет содержит три поля: название семейства/модели CPU, поставщика и имя операционной системы. Кроме того, триплет может иметь дополнительное поле, отражающее Application Binary Interface (ABI), например: gnu, gnueabihf, gnu_ilp32.

habr.com/ru/articles/857564/

#rust #binutils #llvm #llvmgcc #target

2024-09-25

Please boost this one if you can.

Anyone here a, or know a, GNU binutils wizard? ( #binutils #gnu )

I have software that depends on binutils honoring the the -z/--disassemble-zeroes option. My testing indicates that starting in binutils 2.41 (extending to 2.42) that option is ignored.

I have a downloadable test tarball that'll exercise the code, broken or not, available upon request.

This MIGHT be #illumos , but I tested binutils 2.38 on ubuntu-22 and it passed, so I'm doubting that!

Neustradamus :xmpp: :linux:neustradamus
2024-08-21
2024-06-28

did you know that gnu #binutils have support for the #z80? now you do! it includes assembler, linker, ar, ranlib, and all kinds of stuff you need for a basic toolchain.

you can also use a linker script and output to a flat binary, or even use custom sections as header!

#retrocomputing #programming

Dr. Brian Callahanbcallah@bsd.network
2024-06-13

I updated my #gcc tip-of-tree package for #OpenBSD. Installs GCC 15.0.0 and #binutils 2.42.50 (all but ld, gold, and gdb) from about 3 hours ago. Includes compilers for Ada, C, C++, D, Fortran, Modula-2, Objective-C and Objective-C++. Only amd64 (sorry! I could probably do arm64 and riscv64 if I had fast-enough machines...).

Installs to /usr/local/gnu so it won't conflict with any other gcc packages you might have installed.

github.com/ibara/ports/release

#unix #compiler #compilers #bsd #c #dlang

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst