macOS
brew install x86_64-elf-gcclocal Homebrew formula metadata
sudo port install x86_64-elf-gccMacPorts ports tree · cross/x86_64-elf-gcc/Portfile · source: api.github.com
brew
GNU compiler collection for x86_64-elf. Version 16.1.0 via Homebrew; verified 2026-05-01.
install
brew install x86_64-elf-gcclocal Homebrew formula metadata
sudo port install x86_64-elf-gccMacPorts ports tree · cross/x86_64-elf-gcc/Portfile · source: api.github.com
overview
GNU compiler collection for x86_64-elf
history
x86_64-elf-gcc is GCC built as a cross compiler for the `x86_64-elf` target. Its package role is not to be a separate compiler project, but to provide the GNU Compiler Collection configured for freestanding 64-bit x86 ELF output without assuming the host operating system's headers, C library, startup files, or ABI conventions.
That makes it a standard tool for operating-system kernels, bootloaders, freestanding runtimes, and bare-metal experiments. It usually works together with `x86_64-elf-binutils`, which supplies the matching target assembler, linker, and object-file tools.
GCC began as the GNU C Compiler, written for the GNU operating system and first released in 1987. It later expanded into the GNU Compiler Collection, with official front ends for C, C++, Objective-C, Objective-C++, Fortran, Ada, Go, D, Modula-2, COBOL, Rust, Algol 68, and related runtime libraries documented by the GCC project.
The GCC governance and release story also matters to cross packages. GCC's 2.95 release in July 1999 was the first after the GCC/EGCS reunification, and the project has since been maintained by a global developer community under a steering committee. The modern GCC site emphasizes regular releases that work across native and cross targets.
Cross compilation has been central to GCC's identity because GCC supports many processors and systems. The official GCC homepage explicitly says the project aims for releases that work on a variety of native and cross targets, while OSDev documentation explains why hobby OS and kernel developers build target-specific GCCs instead of relying on the host compiler.
For `x86_64-elf`, adoption is concentrated in OSDev and freestanding x86-64 work. The target prefix lets build systems call `x86_64-elf-gcc` and get code-generation defaults for x86-64 ELF rather than the host triple. OSDev guidance also notes that a target-specific compiler removes the need to pass host-overriding options such as `-m64` for every build.
Typical users compile freestanding C or C++ with options such as `-ffreestanding`, link with a custom linker script, and provide their own runtime entry point instead of relying on a hosted C library. The compiler may also be used as the driver for assembly and linking so it selects the matching target Binutils tools.
In kernel work, x86-64 has hardware and ABI details that package users must understand beyond simply choosing this compiler. OSDev material commonly calls out issues such as separate 32-bit and 64-bit toolchains, bootloader expectations, and x86-64 red-zone behavior; the package gives the target compiler, but the build still has to define the freestanding environment correctly.
x86_64-elf-gcc is important because it packages the first serious bootstrap hurdle of hobby OS development. Instead of every user manually building a cross GCC, the package provides a stable prefixed compiler that can be dropped into Makefiles and tutorials.
It is also a clear example of how package names can describe configuration rather than upstream identity. The upstream is GCC; the meaningful package distinction is the target triple, which changes what the compiler assumes about object format, runtime, and operating-system services.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
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-c++ | cli | global executable | |
x86_64-elf-cpp | cli | global executable | |
x86_64-elf-g++ | cli | global executable | |
x86_64-elf-gcc | cli | global executable | |
x86_64-elf-gcc-16.1.0 | cli | global executable | |
x86_64-elf-gcc-ar | cli | global executable | |
x86_64-elf-gcc-nm | cli | global executable | |
x86_64-elf-gcc-ranlib | cli | global executable | |
x86_64-elf-gcov | cli | global executable | |
x86_64-elf-gcov-dump | cli | global executable | |
x86_64-elf-gcov-tool | cli | global executable | |
x86_64-elf-lto-dump | 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.
install metadata
| Package key | brew:x86_64-elf-gcc |
|---|---|
| Version | 16.1.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/x86_64-elf-gcc |
| Homepage | https://gcc.gnu.org |
| Repository | https://gcc.gnu.org/git/gcc.git |
| Upstream docs | https://gcc.gnu.org/ |
| License | GPL-3.0-or-later WITH GCC-exception-3.1 |
| Source archive | https://ftpmirror.gnu.org/gnu/gcc/gcc-16.1.0/gcc-16.1.0.tar.xz |
| Last updated | 2026-05-01T04:23:32Z |
| Pulse | updated |
| Dependencies | gmp, libmpc, mpfr, x86_64-elf-binutils, zstd |
| 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-gcc |
| 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 database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
x86_64-elf-gcc
sudo port install x86_64-elf-gccsource 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.