Summary
The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Features and Goals Some of the goals for the project include the following: End-User Features: Fast compiles and low memory use Expressive diagnostics GCC compatibility Utility and Applications: Modular library based architecture Support diverse clients (refactoring, static analysis, code generation, etc) Allow tight integration with IDEs Use the LLVM BSD License Internal Design and Implementation: A real-world, production quality compiler A simple and hackable code base A single unified parser for C, Objective C, C++, and Objective C++ Conformance with C/C++/ObjC and their variants
Versions
v20.0.0.9999 :: 20/20.0.0.9999 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test xml
v20.0.0_pre20250125 :: 20/20.0.0_pre20250125 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test xml
v20.0.0_pre20250122 :: 20/20.0.0_pre20250122 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test xml
v20.0.0_pre20250118 :: 20/20.0.0_pre20250118 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test xml
v20.0.0_pre20250111 :: 20/20.0.0_pre20250111 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test xml
v19.1.7 :: 19/19.1 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- ~amd64 ~amd64-linux ~arm ~arm64 ~arm64-macos ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x64-macos ~x86
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
v19.1.6 :: 19/19.1 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- ~amd64 ~amd64-linux ~arm ~arm64 ~arm64-macos ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x64-macos ~x86
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
v19.1.4 :: 19/19.1 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- amd64 arm arm64 ppc ppc64 sparc x86 ~amd64-linux ~arm64-macos ~loong ~mips ~riscv ~x64-macos
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
v18.1.8-r6 :: 18/18.1 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- amd64 arm arm64 ppc ppc64 sparc x86 ~amd64-linux ~arm64-macos ~loong ~mips ~riscv ~x64-macos
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
v17.0.6 :: 17/17 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- amd64 arm arm64 ppc ppc64 sparc x86 ~amd64-linux ~arm64-macos ~loong ~riscv ~x64-macos
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
v16.0.6 :: 16/16 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- amd64 arm arm64 ppc ppc64 sparc x86 ~amd64-linux ~arm64-macos ~loong ~riscv ~x64-macos
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
v15.0.7-r3 :: 15/15g1 :: gentoo
- Modified
- License
- Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT
- Keywords
- amd64 arm arm64 ppc ppc64 sparc x86 ~amd64-linux ~riscv ~x64-macos
- USE flags
- debug doc extra ieee-long-double pie static-analyzer test verify-sig xml
USE flags
General
- debug
- Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
- debug
- Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
- doc
- Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
- extra
- Build extra tools (clangd, clang-tidy and a few more)
- ieee-long-double
- Use accelerated 128-bit IEEE long double ABI (ppc64le only)
- pie
- Build programs as Position Independent Executables (a security hardening technique)
- static-analyzer
- Install the Clang static analyzer
- test
- Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
- verify-sig
- Verify upstream signatures on distfiles
- xml
- Add support for XML files
abi_mips
- n32
- 64-bit (32-bit pointer) libraries
- n64
- 64-bit libraries
- o32
- 32-bit libraries
abi_s390
- 32
- 32-bit (s390) libraries
- 64
- 64-bit (s390x) libraries
abi_x86
- 32
- 32-bit (x86) libraries
- 64
- 64-bit (amd64) libraries
- x32
- x32 ABI libraries
llvm_targets
- AArch64
- AArch64 CPU target (arm64 in Gentoo)
- AMDGPU
- AMDGPU target (supports R600 and GCN GPUs)
- ARC
- ARC (Argonaut RISC Core) embedded CPU target [EXPERIMENTAL]
- ARM
- ARM CPU target
- AVR
- 8-bit Atmel AVR microcontroller target
- BPF
- Berkeley Packet Filter target
- CSKY
- C-SKY CPU target [EXPERIMENTAL]
- DirectX
- DirectX target [EXPERIMENTAL]
- Hexagon
- Qualcomm Hexagon DSP target
- Lanai
- Lanai CPU target
- LoongArch
- LoongArch CPU support [EXPERIMENTAL]
- M68k
- Motorola 68000 target [EXPERIMENTAL]
- MSP430
- MSP430 CPU target (experimental)
- Mips
- MIPS CPU target (includes MIPS64)
- NVPTX
- NVIDIA PTX (GPU) target (32-bit and 64-bit)
- PowerPC
- PowerPC CPU target (PPC32 and PPC64)
- RISCV
- RISC-V CPU target
- SPIRV
- Support SPIR-V language target for graphics and parallel computing
- Sparc
- Sparc CPU target
- SystemZ
- SystemZ (s390x) CPU target
- VE
- NEC SX-Aurora TSUBASA vector engine target
- WebAssembly
- WebAssembly backend
- X86
- X86 CPU target (includes amd64)
- XCore
- XCore CPU target
- Xtensa
- Tensilica Xtensa (ESP32) CPU target [EXPERIMENTAL]
python_single_target
- python3_10
- Build for Python 3.10 only
- python3_11
- Build for Python 3.11 only
- python3_12
- Build for Python 3.12 only
- python3_13
- Build for Python 3.13 only
Dependencies
dev-lang / perl : Larry Wall's Practical Extraction and Report Language
Runtime Dependencies
dev-lang / perl : Larry Wall's Practical Extraction and Report Language
dev-lang / python : Freethreading (no-GIL) version of Python programming language
dev-libs / libxml2 : XML C parser and toolkit
llvm-core / clang-common : Common files shared between multiple slots of clang
Depending packages
app-forensics / aflplusplus : Fork of AFL, the popular compile-time instrumentation fuzzer
app-misc / resolve-march-native : Resolve GCC flag -march=native
app-text / doxygen : Documentation system for most programming languages
app-vim / vim-clang-format : Vim plugin for clang-format
dev-cpp / eigen : C++ template library for linear algebra
dev-db / postgresql : PostgreSQL RDBMS
dev-debug / bpftrace : High-level tracing language for eBPF
dev-debug / sysdig : A system exploration and troubleshooting tool
dev-lang / ispc : Intel SPMD Program Compiler
dev-lang / moarvm : A 6model-based VM for NQP and Raku
dev-lang / rakudo : A compiler for the Raku programming language
dev-lang / ruby : An object-oriented scripting language
dev-lang / zig : A robust, optimal, and maintainable programming language
dev-libs / castxml : C-family abstract syntax tree XML output tool
dev-libs / opencl-clang : OpenCL-oriented thin wrapper library around clang
dev-libs / pocl : Portable Computing Language (an implementation of OpenCL)
dev-libs / rocm-comgr : Radeon Open Compute Code Object Manager
dev-libs / rocm-device-libs : Radeon Open Compute Device Libraries
dev-libs / rocr-runtime : Radeon Open Compute Runtime
dev-lisp / c2ffi : Clang-based FFI wrapper generator for Common Lisp
dev-python / clang : Python bindings for llvm-core/clang
dev-python / clang : Python bindings for llvm-core/clang
dev-python / pyside6 : Python bindings for the Qt framework
dev-python / pyside6-tools : PySide development tools (pyside6-lupdate with support for Python)
dev-python / shiboken6 : Python binding generator for C++ libraries
dev-qt / qdoc : Qt documentation generator
dev-qt / qt-creator : Lightweight IDE for C++/QML development centering around Qt
dev-qt / qttools : Qt Tools Collection
dev-util / Tensile : Stretching GPU performance for GEMMs and tensor contractions
dev-util / bcc : Tools for BPF-based Linux IO analysis, networking, monitoring, and more
dev-util / bindgen : Automatically generates Rust FFI bindings to C and C++ libraries.
dev-util / ccls : C/C++/ObjC language server
dev-util / clang-extract : Tool to extract code content from source files
dev-util / clazy : Compiler plugin which allows clang to understand Qt semantics
dev-util / cvise : Super-parallel Python port of the C-Reduce
dev-util / edi : An EFL-based IDE
dev-util / gnome-builder : An IDE for writing GNOME-based software
dev-util / hip : C++ Heterogeneous-Compute Interface for Portability
dev-util / hipcc : Radeon Open Compute hipcc
dev-util / hipify-clang : A set of tools to translate CUDA source code into portable HIP C++
dev-util / include-what-you-use : Find unused include directives in C/C++ programs
dev-util / intel_clc : intel_clc tool used for building OpenCL C to SPIR-V
dev-util / kdevelop : Integrated Development Environment, supporting KF6/Qt, C/C++ and much more
dev-util / perf : Userland tools for Linux Performance Counters
games-board / jja : swiss army knife for chess file formats
games-strategy / s25rttr : Open source remake of The Settlers II: Gold Edition (needs original data files)
gnustep-base / gnustep-make : GNUstep Makefile Package
llvm-core / clang-toolchain-symlinks : Symlinks to use Clang on GCC-free system
llvm-core / lldb : The LLVM debugger
media-libs / mesa : OpenGL-like graphic library for Linux
media-libs / oidn : Intel® Open Image Denoise library
media-libs / osl : Advanced shading language for production GI renderers
sys-devel / binutils-apple : Darwin Xtools matching Xcode Tools binutils-apple
sys-devel / clang-crossdev-wrappers : Symlinks to a Clang crosscompiler
sys-devel / rust-std : Rust standard library, standalone (for crossdev)
sys-libs / csu : Darwin Csu (crt1.o) - Mac OS X 10.10 version
Bugs
- 509696
- app-admin/gam-server-0.1.10-r3 with =llvm-core/clang-3.4-r100 - gam_eq.c:127:3: error: non-void function 'gam_eq_flush' should return a value [-Wreturn-type]
- 509700
- app-arch/arj-3.10.22-r8 with llvm-core/clang miscompiles postproc - ./linux-gnu/en/rs/tools/postproc linux-gnu/en/rs/arj/arj: Patch not found
- 527274
- sys-apps/hdparm-9.45 with llvm-core/clang-3.5.0 - x86_64-pc-linux-gnu-clang-3.5.0: error: unknown argument: '-fkeep-inline-functions'
- 616566
- llvm-core/clang-4.0.0 uses the wrong chost prefix for symlinks (CHOST != CHOST_arm)
- 651908
- llvm-core/clang should create ${CHOST}-clang & co symlinks based on LLVM_TARGETS
- 662108
- llvm-core/clang doesn't install i586-pc-linux-gnu-clang{,++} when CHOST=i586-pc-linux-gnu
- 688638
- llvm-core/clang-8.0.0 fails tests: FAILED: test/CMakeFiles/check-clang
- 703268
- llvm-core/clang-8.0.1 fails test
- 723114
- llvm-core/clang-10.0.0 - .../work/x/y/llvm/utils/lit/lit/formats/googletest.py", line 44, in getGTestTests raise StopIteration
- 730072
- llvm-core/clang-10.x fails test: clang-tidy/checkers/abseil-duration-factory-scale.cpp
- 731264
- llvm-core/clang fails to cross compile (needs CBUILD clang-tblgen)
- 734114
- llvm-core/clang-10.0.1 testfailure: Clangd document-link.test
- 753380
- llvm-core/clang should put run-clang-tidy into PATH
- 768267
- llvm-core/clang: undefined symbol: LLVMInitializeNVPTXTargetInfo (at runtime if llvm dropped it)
- 796563
- llvm-core/clang-12.0.0-r1 fails tests
- 821181
- llvm-core/clang: Unicode "bidirectional override" vulnerabilities (CVE-2021-42574)
- 828694
- llvm-core/clang-15.0.6 - One or more CMake variables were not used by the project: LLVM_BUILD_TESTS
- 829602
- llvm-core/clang-13.0.0 - .../tools/extra/clangd/CompletionModel.cpp {standard input}: Assembler messages: {standard input}:177127: Error: operand out of range
- 834571
- llvm-core/clang: postinst should display a warning if built with default-libcxx
- 838373
- llvm-core/clang: compilation of e.g. www-client/firefox-99.0.1 and mail-client/thunderbird fails (error: always_inline function '_mm_crc32_u64' requires target feature 'crc32')
- 870055
- llvm-core/clang: please upstream prefix-specific patches
- 875641
- dev-qt/qtwebengine: update has_version test for llvm-core/clang[default-libcxx]
- 884395
- llvm-core/clang: check whether needs adaptation for IEEE long double
- 891737
- llvm-core/clang-15.0.7-r1 fails to emerge
- 893382
- llvm-core/clang-14.0.6-r1: relocation R_X86_64_TPOFF32 against `_ZL13BottomOfStack' can not be used when making a shared object; recompile with -fPIC
- 899582
- llvm-core/clang provides incomplete static libraries in llvm profiles (missing TF helpers, e.g. ld.lld: error: undefined symbol: __multf3)
- 902851
- dev-libs/darts-0.32h_pre20181117064816: build failed with llvm-core/clang-16.0.0 (error: no member named 'random_shuffle' in namespace 'std')
- 907923
- llvm-core/clang: add pgo use flag
- 907931
- llvm-core/clang: add BOLT use flag
- 912678
- llvm-core/clang-17.0.0_rc2[debug]: ICE when building dev-libs/boost-1.83.0-r1
- 914452
- llvm-core/clang-17.0.1:17/17 failed to emerge: x86_64-pc-linux-gnu-ld: error: undefined symbol
- 914888
- llvm-core/clang-16.0.6 - fails to build with '-Os' with sys-devel/gcc:13 on ppc64
- 917361
- sys-devel/gcc, llvm-core/clang: maybe install ${COMPILER}-cachekey or such for ccache usage
- 925313
- llvm-core/clang-17.0.6 - QA Notice: One or more CMake variables were not used by the project: CMAKE_DISABLE_FIND_PACKAGE_CUDAToolkit - CMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64
- 928658
- llvm-core/clang doesn't show the same behaviour of libclang
- 929228
- llvm-core/clang-18.1.3 crashes building ncnn (was: dev-libs/ncnn-20240410 - [clang] fatal error: error in backend: Cannot select: <snip>: v32bf16 = insert_subvector <snip>, <snip>, Constant:i64<16>)
- 930669
- llvm-core/clang-18.1.4: ICE when building gui-wm/wayfire-0.8.1-r1
- 932815
- llvm-core/clang-18.1.6: OOM with GCC14 i586-pc-linux-gnu/bin/ld: /usr/lib/llvm/18/lib/libLLVM.so.18.1: error adding symbols: memory exhausted
- 937391
- llvm-core/clang-17.0.6 - [icu-75.1] [gcc-15] /.../Twine.h: error: const class llvm::SmallVectorImpl<char> has no member named data
- 938665
- llvm-core/clang: Module import path mismatch in the intercept-build tool
Change logs
- Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20250125 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20250122 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20250118 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 19.1.7
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20250111 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20250104 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - James Le Cuirot · gentoo
llvm-core/clang: Set CLANG_CONFIG_FILE_USER_DIR for per-user config
This is a better way to pass dynamic flags like --sysroot when cross-compiling than sticking them directly in variables like CC. The HOME directory is overridden by Portage, so real user config won't interfere with package builds. For now, the necessary config can be set up in pre_src_unpack, but perhaps we could come up with something more formal later. Closes: https://github.com/gentoo/gentoo/pull/39960 Signed-off-by: James Le Cuirot <chewi@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20241227 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20241221 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Replace LLVM_CMAKE_DIR with LLVM_ROOT in 19.1.6+
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 19.1.6
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
llvm-core/clang: Add 20.0.0_pre20241215 snapshot
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Sam James · gentoo
llvm-core/clang: drop llvm_prepend_path use
The hackery with PATH here is wrong and it breaks building Clang itself with a different version of Clang (which is why we're looking at rejigging how the eclass works/replacing it with llvm-r1.eclass [0]). As suggested by Matt, use LLVM_CMAKE_DIR instead so that Clang finds the right version of LLVM to build against without any sort of nonsense messing with build tooling. [0] https://public-inbox.gentoo.org/gentoo-dev/d5489fa24ef3d1129540879e628120addb3af8ce.camel@gentoo.org/ Closes: https://bugs.gentoo.org/942314 Closes: https://bugs.gentoo.org/944788 Thanks-to: Matt Whitlock <gentoo@mattwhitlock.name> Signed-off-by: Sam James <sam@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
Move {sys-devel → llvm-core}/llvm
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Michał Górny · gentoo
Move {sys-devel → llvm-core}/lld
Signed-off-by: Michał Górny <mgorny@gentoo.org> - Michał Górny · gentoo
Move {sys-devel → llvm-core}/clang
Signed-off-by: Michał Górny <mgorny@gentoo.org>