macOS
brew install x86_64-elf-binutilslocal Homebrew formula metadata
brew
GNU Binutils for x86_64-elf cross development. Version 2.46.1 via Homebrew; verified 2026-06-09.
install
brew install x86_64-elf-binutilslocal Homebrew formula metadata
overview
GNU Binutils for x86_64-elf cross development
history
x86_64-elf-binutils is the GNU Binutils suite built for the `x86_64-elf` target, a bare-metal ELF toolchain target used for operating-system development, kernels, bootloaders, freestanding programs, and other environments that should not inherit the host operating system's ABI or libraries.
The upstream GNU Binutils project supplies the assembler, linker, object-file utilities, and shared binary-format libraries. The `x86_64-elf` package role is to expose those tools with a target prefix, so commands such as `x86_64-elf-as`, `x86_64-elf-ld`, `x86_64-elf-objdump`, and `x86_64-elf-readelf` operate as part of a cross-development toolchain.
GNU Binutils is one of the oldest layers of the GNU toolchain. The GNU page describes it as a collection of binary tools whose main programs are `ld`, the GNU linker, `as`, the GNU assembler, and `gold`, with supporting tools such as `ar`, `nm`, `objcopy`, `objdump`, `readelf`, `size`, `strings`, and `strip`.
Historically the suite grew around shared binary-format infrastructure. The GNU page notes that most of the programs use BFD, the Binary File Descriptor library, for low-level manipulation of different object formats, and many also use the opcodes library for assembling and disassembling machine instructions. That architecture is why one source project can support many CPU, object-format, and OS targets.
The normal native GNU toolchain pairs Binutils with GCC, GDB, make, and libc to build software for the host. Cross-toolchain users instead configure Binutils with a target such as `x86_64-elf`, producing prefixed tools that generate ELF objects and binaries for a target environment independent of the host OS.
OSDev's cross-compiler guide explains the reason for this pattern: a host compiler assumes the host CPU, operating system, executable format, headers, and libraries unless directed otherwise, while a cross-compiler uses an explicit target and avoids accidental host assumptions. Binutils is built first because GCC needs the target assembler and linker.
In a freestanding x86-64 workflow, `x86_64-elf-as` assembles startup or interrupt code, `x86_64-elf-ld` links objects with a custom linker script, `x86_64-elf-objcopy` converts or extracts binary images, and `x86_64-elf-objdump` or `x86_64-elf-readelf` inspects ELF sections, relocations, symbols, and disassembly.
Package users often install x86_64-elf-binutils alongside `x86_64-elf-gcc`. The useful bit is the prefix: build scripts can call target-specific tools directly and avoid accidentally invoking `/usr/bin/as` or the platform linker, which may default to Mach-O, PE, Linux user-space ELF, or another host-specific environment.
This package is significant because it turns GNU Binutils from a native developer utility into a precise cross-toolchain component. For OS development and bare-metal experiments, the absence of host assumptions is the feature.
The `x86_64-elf` target also captures a long-running package-manager convenience: many OSDev tutorials show users how to build Binutils by hand, but a packaged cross Binutils gives them the target-prefixed assembler, linker, and inspection tools without owning that bootstrap step.
security posture
No matching local secret-handling manifest was found for x86_64-elf-binutils. Nucleus package metadata is still published here so future coverage has a stable package URL.
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
x86_64-elf-addr2line | cli | global executable | |
x86_64-elf-ar | cli | global executable | |
x86_64-elf-as | cli | global executable | |
x86_64-elf-c++filt | cli | global executable | |
x86_64-elf-elfedit | cli | global executable | |
x86_64-elf-gprof | cli | global executable | |
x86_64-elf-ld | cli | global executable | |
x86_64-elf-ld.bfd | cli | global executable | |
x86_64-elf-nm | cli | global executable | |
x86_64-elf-objcopy | cli | global executable | |
x86_64-elf-objdump | cli | global executable | |
x86_64-elf-ranlib | cli | global executable | |
x86_64-elf-readelf | cli | global executable | |
x86_64-elf-size | cli | global executable | |
x86_64-elf-strings | cli | global executable | |
x86_64-elf-strip | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://www.gnu.org/software/binutils/
install metadata
| Package key | brew:x86_64-elf-binutils |
|---|---|
| Version | 2.46.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/x86_64-elf-binutils |
| Homepage | https://www.gnu.org/software/binutils/ |
| Repository | https://sourceware.org/git/binutils-gdb.git |
| Upstream docs | https://sourceware.org/binutils/docs |
| License | GPL-3.0-or-later |
| Source archive | https://ftpmirror.gnu.org/gnu/binutils/binutils-2.46.1.tar.bz2 |
| Last updated | 2026-06-09T23:41:44Z |
| Pulse | updated |
| Dependencies | zstd |
| Build dependencies | pkgconf, texinfo |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | x86_64-elf-binutils |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.