Skip to content
daniel@cosenza:~/blog
FreeBSDNews July 1, 2026 2 min read

FreeBSD 10.0 Ships with Clang as Default Compiler and Introduces bhyve

Announced January 20, 2014, FreeBSD 10.0 replaced GCC with Clang/LLVM as the default system compiler on major architectures and debuted bhyve, the project's native hypervisor.

FreeBSD 10.0-RELEASE was announced on January 20, 2014, and stands as one of the most consequential releases in the project’s modern history for two changes: the switch to Clang as the default system compiler, and the debut of bhyve, FreeBSD’s native hypervisor.

Clang replaces GCC in the base system

On platforms where Clang was made the default — i386, amd64, and ARM — GCC and GNU libstdc++ were no longer built by default at all. The base system compiled itself with Clang/LLVM 3.3 and LLVM’s libc++ instead. The motivation was largely about licensing: GCC’s move to GPLv3 was incompatible with FreeBSD’s licensing philosophy for its base system, and the project had frozen on an old GCC version as a result. Clang’s permissive license fit; modernizing the toolchain meant switching compilers entirely.

bhyve arrives

FreeBSD 10.0 also introduced bhyve, the BSD-licensed type-2 hypervisor covered in depth elsewhere on this blog, alongside virtio drivers and native paravirtualized drivers that made FreeBSD a first-class guest on Microsoft Hyper-V. In one release, FreeBSD gained both a modern way to host virtual machines and much better behavior as a guest inside other hypervisors.

Why the compiler switch was such a big undertaking

A base system compiler isn’t just another package — every line of the kernel and userland has to build correctly, with correct behavior, under the new toolchain. Getting to the point where Clang could compile all of FreeBSD took years of preparatory work across FreeBSD and LLVM both, which is why the deprecation of GCC was staged across releases rather than flipped in one step.

The legacy

Every modern FreeBSD system — including the custom kernel builds and bhyve VMs covered on this blog — builds on what 10.0 established: an LLVM-based toolchain and native virtualization as standard parts of the operating system rather than add-ons.

Sources: FreeBSD 10.0-RELEASE Announcement — The FreeBSD Project, FreeBSD 10.0-RELEASE Release Notes — The FreeBSD Project, FreeBSD version history — Wikipedia