We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

The FreeBSD Tool Chain

Formale Metadaten

Titel
The FreeBSD Tool Chain
Serientitel
Anzahl der Teile
31
Autor
Lizenz
CC-Namensnennung 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
As a BSD distribution FreeBSD has the concept of a base system, an integrated kernel, and core userland, which are developed, tested, and released together by a common team. The userland includes the C language runtime, the build toolchain, basic system utilities, and some third-party libraries and applications. The toolchain includes the compiler and linker, which translate source code into executable objects, the debugger, and related utilities for inspecting or modifying those objects. In this talk you will learn about the history of FreeBSD's toolchain, why certain choices were made when choosing toolchain components, the current state of the toolchain, and plans for the future. For most of its history FreeBSD relied on the GNU toolchain: the GNU Compiler Collection (GCC), the GNU binutils linker and binary inspection tools, the GNU debugger GDB. This was the case between 1993 and 2007, and the copy of the toolchain included in the FreeBSD tree was regularly updated throughout that period. In 2007 the Free Software Foundation migrated to version 3 of the GNU Public License (GPLv3), which included new restrictions that some FreeBSD users and developers found objectionable. Broad updates to the GNU toolchain ceased, and it quickly became outdated. A migration to permissively licensed toolchain components is in progress. FreeBSD now uses the Clang compiler for Tier-1 architectures, with ongoing effort to switch to Clang for the remainder. Work is ongoing to use LLVM's LLD linker, and it is currently usable on amd64. Binary utilities such as objcopy and readelf are obtained from the ELF Tool Chain project on all supported FreeBSD architectures. Runtime libraries largely come from the LLVM project. This includes the libc++ C++ runtime, the compiler-rt library used by the compiler, and sanitizer runtimes used for diagnostic and debugging tools. One library, libcxxrt, comes from Pathscale. A migration to LLVM's LLDB debugger is also underway.