Ebuild *DEPENDs support matrix for this overlay
May 8, 2026 ยท View on GitHub
| Support level | Quality | Meaning |
|---|---|---|
| Fully supported | Best | Tested, fully compatible |
| Mostly supported | Better | Tested and partially compatible |
| Partially supported | Good | May be tested and partially compatible |
| Limited support | Good | Tested but restricted for use for a few select packages (e.g. bootstrapping) |
| Available | Good to poor | Not tested, partially compatible, ebuild may be unfinished, Work in Progress (WIP) |
| Deprecated | Best to poor | Phased out for removal and may be actively removed, may have security issues |
| Planned | - | To be added to maximize interoperability between platforms and app features |
| WIP | Poor | Work In Progress. Ebuild still in development. |
| EOL | Poor | No longer compatible and may be removed, may have security issues that are practically impossible to fix |
| Not supported | Poor | Dropped support or no effort to add support by overlay, may have security issues, untested |
| Type of release | Supported on overlay? |
|---|---|
| Stable | Yes |
| LTS | Yes |
| Beta | Generally no, with exceptions |
| Alpha | No |
| Preview | No |
| Live (latest commit) | Yes |
| Live snapshot | Yes |
- Using beta, alpha, preview versions, or enabling the debug USE flag may lead to information disclosure when the debug dump or crash report contains sensitive information.
The LIBC support below reflects the upstream projects CI (Continuous Integration) images trend, but it may change if microarchitecture references exist in build files.
| LIBC | Arch | Ebuild level of support | Distro or CI image correspondence |
|---|---|---|---|
| glibc | 64-bit | Generally supported | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | 32-bit | Deprecated* | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | alpha | Not supported | |
| glibc >= 3.40 | amd64 | Fully supported | D12 (2.36), D13 (2.41), F41 (2.40), F42 (2.41), F43 (2.42), F44 (2.43), G23 (2.42), U22 (2.35), U24 (2.39) |
| glibc | arm | Not supported | D12 (2.36), D13 (2.41), U24 (2.39) U24 (2.39) |
| glibc | arm64 | Available | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | hppa | Not supported | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | loong | Available | D13 (2.41), U24 (2.39) |
| glibc | mips64 | Available | D12 (2.36), D13 (2.40), U22 (2.35), U24 (2.39) |
| glibc | mips | Available | D12 (2.36), D13 (2.40), U22 (2.35), U24 (2.39) |
| glibc | ppc | Not supported | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | ppc64 | Available | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | riscv | Available | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | s390x | Available | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | sparc64 | Available | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| glibc | x86 | Not supported | D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39) |
| musl >= 1.2.3 | * | Available | D12 (1.2.3), D13 (1.2.5), F42 (1.2.5), F43 (1.2.5), F44 (1.2.5), G23 (1.2.5) U22 (1.2.2), U24 (1.2.4) |
- Using 32-bit may increase the chances of high-critical vulnerabilities. Examples:
- ASLR effectiveness on 32-bit is estimated to be 10-20% or 20-50% and can lead to increased privilege escalation, data tampering, information disclosure
- Transient execution CPU vulnerabilities (Meltdown, Spectre v2, MDS, TAA, SCSB, FPVI, BHI, Retbleed) may lead to information disclosure if unpatched or partially patched for 32-bit
- V8 Sandbox (64-bit supported only, protects against memory corruption, if not used may lead to code execution, privilege escalation, data tampering, information disclosure)
| Compiler | Ebuild level of support | Distro or CI image correspondence |
|---|---|---|
| Clang <= 16 | Not supported | D12 (14.0), U22 (14.0) |
| Clang 17 | Limited support | |
| Clang 18 | Fully supported | U24 (18.0) |
| Clang 19 | Supported | D13 (19.0), F41 (19.1.7) |
| Clang 20 | Available | F42 (20.1.3), |
| Clang 21 | Available | F43 (21.1.8), F44 (21.1.8), G23 (21.1.8) |
| Clang 22 | Available | |
| Clang 23 | Limited support | |
| Cython 0.29.37.1 | Fully supported | D12 (0.29.32), U22 (0.29) |
| Cython 3.0.12 | Fully Supported | D13 (3.0.11), F42 (3.0.12), U24 (3.0.8) |
| Cython 3.1.0 | Fully supported | F43 (3.1.3) |
| Cython 3.2.0 | Not supported | F44 (3.2.4), G23 (3.2.4) |
| GCC 11 | Fully supported | U22 (11.2) |
| GCC 12 | Fully supported | D12 (12.2) |
| GCC 13 | Fully supported | U24 (13.2) |
| GCC 14 | Partially Supported | D13 (14.2), F40 (14.0), F41 (14.2.1), F43 (14.3.1) |
| GCC 15 | Fully supported | F42 (15.2.1), F43 (15.2.1), G23 (15.2.1) |
| GCC 16 | Not Supported | F44 (16.1.1) |
| Rust 1.63.0 | Not supported | D12 (1.63.0) |
| Rust 1.74.1 | Available | |
| Rust 1.75.0 | Available | U22 (1.75.0), U24 (1.75.0) |
| Rust 1.85.1 | Available | D13 (1.85.0) |
| Rust 1.86.0 | Available | F41 (1.86.0), F42 (1.86.0) |
| Rust 1.88.0 | Available | |
| Rust 1.89.0 | Available | U22 (1.89.0), U24 (1.89.0) |
| Rust 1.91.0 | Not supported | G23 (1.91.0) |
| Rust 1.91.1 [C] | Available | U22 (1.91.1), U24 (1.91.1) |
| Rust 1.93.1 | Available | G23 (1.93.1) |
| Rust 1.94.1 | Available | |
| Rust 1.95.0 [C] | Available | F43 (1.95.0), F44 (1.95.0) |
| Rust-9999 (1.97.0-nightly) [C] | Limited support |
For non C/C++ langages (e.g. Python or JS) the Rust slot rules for version pinning are as follows:
- The latest LTS slot by LTS distro releases is supported for LTS packages.
- The latest rolling slot by a rolling distro release is supported for rolling packages.
- The live slot for Chromium.
- The bootstrap slots that are unassociated with any LTS distros are deprecated so packages need to use either the latest LTS slot or rolling slot.
- The highest slot required by the lockfile should determine if the package is a LTS Rust slot (<=1.91.1) or a rolling Rust slot (>1.91.1).
- Rows marked [C] are the currently supported Rust slots for this scenario.
Packages are pinned to a particular Rust slot for reproducible reasons and to reduce Rust slot verification code creep.
The new Rust rules on this overlay (May 2026) for the non C/C++ languages scenario addresses a security issue possibility (e.g. miscompilation slots causing errors or vulnerabilities which could lead to the worst case RCE).
For C/C++ the Rust slot rules for version pinning are as follows:
- LLVM 22 (Rolling): Rust 1.95.0 - 9999
- LLVM 21 (Rolling): Rust 1.91.0 - 1.94.1
- LLVM 20 (Rolling): Rust 1.87.0 - 1.90.0
- LLVM 19 (LTS): Rust 1.82.0 - 1.86.0
- LLVM 18 (LTS): Rust 1.78.0 - 1.81.0
- LLVM 17 (LTS): Rust 1.74.1 - 1.77.2
The version ranges are matching to avoid multiple LLVM versions loaded issues.
-std=c++<ver> or CXX_STANDARD | LTS or rolling compiler? | Compiler status for C++ standard | C++ standard library status for C++ standard |
|---|---|---|---|
| c++98 | LTS | ? | ? |
| c++03 | LTS | ? | ? |
| c++11 | LTS | Incomplete | Done |
| c++14 | LTS | Done | Done |
| c++17 | LTS | Done | GCC (Done), LLVM (Incomplete) |
| c++20 | Rolling | Incomplete | GCC (Done), LLVM (Incomplete) |
| c++23 | Rolling | Incomplete | Incomplete |
| c++26 | Rolling | Incomplete | Incomplete |
Language defaults
| LTS or rolling compiler? | C++ standard [6][7] | C standard [6][7] | GCC | Clang | Overlay USE flags [5] | Distro correspondance | Hardware acceleration support [8][9] |
|---|---|---|---|---|---|---|---|
| LTS | gnu++17 / gnu++14 | gnu17 / gnu17 | 11 | 14 | gcc_slot_11_5 | U22 | CPU, CUDA 12.6, CUDA 12.8, CUDA 12.9, Vulkan [3] |
| LTS | gnu++17 / gnu++14 | gnu17 / gnu17 | 12 | 14 | gcc_slot_12_5 | D12 | CPU, CUDA 12.6, CUDA 12.8, CUDA 12.9, ROCm 6.4, ROCm 7.0, Vulkan [3] |
| LTS | gnu++17 / gnu++17 | gnu17 / gnu17 | 13 | 18 | gcc_slot_13_4, llvm_slot_18 | U24 | CPU, CUDA 12.6, CUDA 12.8, CUDA 12.9, ROCm 6.4, ROCm 7.0, Vulkan |
| LTS | gnu++17 / gnu++17 | gnu17 / gnu17 | 14 | 19 | gcc_slot_14_3, llvm_slot_19 | D13 | CPU, CUDA 12.8, CUDA 12.9, Vulkan |
| LTS | gnu++17 / gnu++17 | gnu17 / gnu17 | 13 | 19 | gcc_slot_13_4, llvm_slot_19 | G23 [1] | CPU, CUDA 12.8, CUDA 12.9, ROCm 6.4, ROCm 7.0, Vulkan |
| Rolling | gnu++17 / gnu++17 | gnu17 / gnu17 | 14 | 20 | gcc_slot_14_3, llvm_slot_20 | G23 [2] | CPU, CUDA 12.8, CUDA 12.9, Vulkan [3] |
| Rolling | gnu++17 / gnu++17 | gnu23 / gnu17 | 15 | 20 | gcc_slot_15_2, llvm_slot_20 | F42 | CPU, Vulkan |
| Rolling | gnu++17 / gnu++17 | gnu23 / gnu17 | 15 | 21 | gcc_slot_15_2, llvm_slot_21 | F43 | CPU, Vulkan |
| Rolling | gnu++17 / - | gnu23 / - | 16 | gcc_slot_16_1 | CPU, Vulkan | ||
| Rolling | - / gnu++17 | - / gnu17 | 22 | llvm_slot_22 | CPU, Vulkan |
-
[1] This is the overlay's current test and development defaults, which is similar to U24 and has LLVM 19 available. In addition, gcc_slot_15_2 and llvm_slot_20 are used to build rolling packages.
-
[2] The latest stable for this distro.
-
[3] CUDA GPU acceleration is only available with GCC built packages on this overlay for this GCC & Clang compiler combo.
-
[5] The GCC USE flags add the minor version because GCC 9 has multiple GLIBCXX_ versions, but the GCC USE flags may later be simplified on major update.
-
[6] gnu++17 is c++17 with GNU extensions. gnu17 is C17 with GNU extensions.
-
[7] GCC / LLVM. Users need to avoid mixing the two different editions to prevent ODR violations or mismatched signatures.
-
[8] Full ROCm support is based on the GCC slot because of prebuilt binaries.
-
[9] Examples of typical use or capabilities:
- CPU: audio/image processing, 3D transforms
- CUDA: Machine learning, AI/LLM inference, raytracing in 3D editors or CGI movies, computer vision, academic research
- ROCm: Machine learning, AI/LLM inference, cryptocurrency mining
- Vulkan: Gaming graphics (e.g. raytracing, post-processing, procedural rendering), AI upscaling, video remastering
-
This overlay prefers users use one of the LTS combos to avoid issues.
-
The default C++ standard can be found at:
- GCC: gcc/c-family/c-opts.cc in c_common_init_options()
- Clang: clang/lib/Basic/LangStandards.cpp in clang::getDefaultLanguageStandard() for LLVM 15 and newer clang/lib/Frontend/CompilerInvocation.cpp in CompilerInvocation::setLangDefaults() for LLVM 14
-
A LTS package in this overlay is a package that explicitly states in the build files that it is c++17 or C17 or earlier. A majority of packages in this overlay are LTS packages.
-
A rolling package in this overlay is a package that explicitly states in the build files that it is c++20 or C20 or newer. Hyprland is an example. The developers of Hyprland have build files that reference a rolling distro. This is partly why the counterpart to LTS is called a rolling compiler on this overlay. A few packages in this overlay require to switch to GCC 15 or LLVM 20 or newer are considered rolling packages.
-
In this overlay, rolling packages get paired with rolling compilers. LTS packages get paired with LTS compilers. This is why the gcc_slot_ and llvm_slot_ USE flags and corresponding verify steps are provided to avoid linker issues and backtracking to miscategorized LTS/rolling packages.
-
A package without explicit C or C++ standard will fallback to the compiler default mentioned in the C++ standard or C standard columns above.
-
This overlay allows the user to choose gcc_slot_11_5, gcc_slot_12_5, gcc_slot_13_4, gcc_slot_14_3, llvm_slot_18, llvm_slot_19, for LTS compilers.
-
This overlay allows the user to choose gcc_slot_15_2, gcc_slot_16_1, llvm_slot_20, llvm_slot_21, llvm_slot_22 for rolling compilers.
-
The USE flags provide verification and build consistency.
-
The CC/CXX changes resolve an ambiguous choice between selecting a GCC build or a Clang build when both sets are used.
-
LTS compilers have the libstdc++ GLIBCXX_ versioned symbols, GPU stack compatibility, practically complete version of the C++ standard on both the C++ compiler and C++ standard library, and ensure that the userland is built for compatibility for C++ prebuilt LTS binaries. Currently, C++ 17 is the default for both GCC and Clang and is the default for most open source C++ projects in 2025. A LTS compiler should be used as the systemwide default to maximize performance and compatibility.
-
The rolling compilers have the up-to-date implementation of the C++ standard, increased feature coverage of the standard, usually have the minimum required feature set to build most projects for that standard on this overlay. The minimum GCC/Clang version used per rolling standard in this overlay minimizes incomplete coverage to avoid missing support errors. The consequences of using the rolling compiler as the systemwide default is that it will lock out access for GPU acceleration which is orders of magnitude faster than CPU in certain use case scenarios. The typical use cases for using rolling compilers it to take advantage of the gimmicks of newer CPUs instruction sets or access to newer microarchitectures at the cost of access to faster GPU AI inference or processing. Rolling should not be used in packages where GPU is an option.
-
CUDA 11.8 is not recommended because of version inconsistency between distro's cuDNN ebuild and pyTorch version recommendations. This CUDA version is limited to using GCC 11 only on this overlay.
-
GCC 12 or 13 are recommended for CUDA 12.8 for maximum compatibility coverage for using Blender, Ollama (LLM), pyTorch (ML) and to closely align with D12 or U24.
-
GCC 13 is recommended for ROCm 6.4 for maximum compatibility coverage for example with pyTorch (ML), TensorFlow (ML), Ollama (LLM), Blender and to closely align with U24.
-
GCC 15 is not supported as a LTS compiler because it breaks -fvtable-verify, which lowers security.
-
GCC is preferred but Clang is recommended as the fallback compiler.
-
Clang 18, 19 are alternative LTS compilers on this overlay, but the corresponding libc++ 18 or 19 used as the alternative C++ standard library is still feature incomplete and not recommended as the systemwide default.
-
libstdc++ is the assumed default C++ standard library in this overlay. The alternative libc++ as a systemwide default has not been tested for these ebuilds.
-
=dev-lang/rust-bin-9999 is recommended for SSP, sanitizers, and as default to be used in security-critical packages.
-
rust-bin older supported stable (1.74.0, 1.75.0) and rust-bin latest stable (1.86.0) are recommended as fallbacks for non security-critical packages.
| Python | Ebuild level of support | Distro or CI image correspondence |
|---|---|---|
| 3.10 and earlier | Not supported (EOL) [1] | U22 (EOL Apr 2027) |
| 3.11 | Not Supported (EOL) [4] | D12 (EOL Jun 2026) |
| 3.12 | Partially supported | U24 (EOL Apr 2029) |
| 3.13 | Available | D13 (EOL Aug 2028), F41 (EOL Nov 2025), F42 (EOL May 2026) |
| 3.13t [3] | Not supported | |
| 3.14 and later [3] | Not supported | G23, F43, F44 |
| pypy3 [2][3] | Not supported | |
| pypy3_11 [3] | Not supported |
- [1] Not supported due to python-utils-r1.eclass EOL restrictions, but not EOL upstream. Forced PYTHON_COMPAT bumps (to Python 3.11 or any future minimum version bumps) may introduce DoS vulnerabilities (e.g. crash) or incompatibilities.
- [2] Python 3.10
- [3] Not widely tested with CI.
- [4] Distro - deprecated, this overlay - EOL. The portage ebuild dropped support for 3.11.
| Platform | Ebuild level of support | Distro or CI image correspondence |
|---|---|---|
| CUDA 11.8 | Not supported | D12, F35, U18, U20, U22 |
| CUDA 12.3 | Not supported | D10, D11, D12, F37, U20, U22 |
| CUDA 12.4 | Not supported | D10, D11, D12, F39, U20, U22 |
| CUDA 12.5 | Not supported | D10, D11, D12, F39, U20, U22, U24 |
| CUDA 12.6 | Available | D11, D12, F39, U20, U22, U24 |
| CUDA 12.8 | Available | D12, F41, U20, U22, U24 |
| CUDA 12.9 | Available | D12, F41, U20, U22, U24 |
| CUDA 13.0 | Not supported | D12, F42, U22, U24 |
| Electron (amd64) | Fully supported | |
| Electron (arm64) | Not supported | |
| Electron (armv7) | Not supported | |
| Electron (x86) | Not supported | |
| gRPC 1.30.2 [3] | Fully supported | U22 (1.30.2) |
| gRPC 1.51.3 [3] | Fully supported | D12 (1.51.1), D13 (1.51.1), U24 (1.51.1) |
| gRPC 1.71.2 [3] | Fully supported | |
| gRPC >= 1.75.1 (3) | Fully supported | |
| GTK 2 (4) | Not Supported | |
| GTK 3 | Fully supported | |
| GTK 4 | Fully supported | |
| LocalAI (llama.cpp with CPU) | Fully supported | |
| LocalAI (llama.cpp with ROCm 7.0) | WIP | |
| LocalAI (llama.cpp with CUDA 12.4) | Not supported | |
| LocalAI (llama.cpp with Vulkan) | Fully supported | |
| OpenGL <= 4.6 | Fully supported | |
| OpenCL <= 2.0 | Fully supported | |
| Ollama 0.18 (CPU) | Fully supported | |
| Ollama 0.18 (ROCm) | Not supported | |
| Ollama 0.18 (CUDA) | Not supported | |
| Ollama 0.18 (Vulkan) | Fully supported | |
| GCC OpenMP (CPU) | Fully supported | |
| LLVM OpenMP (CPU) | Fully supported | |
| LLVM OpenMP offload (CUDA) | Available | |
| LLVM OpenMP offload (ROCm) | Not Supported | |
| ROCm OpenMP offload (2) | WIP | |
| DPC++ OpenMP offload | Not Supported | |
| OpenRC | Fully supported | |
| Protobuf-cpp 3 [3] | Fully supported | D12 (3.21.12), F41 (3.19.6), F42 (3.19.6), U24 (3.21.12) |
| Protobuf-cpp 5 [3] | Fully supported | |
| Protobuf-cpp 6 [3] | Fully supported | |
| PyTorch <= 2.7 | Not supported | D12 (1.13.1), D13 (2.6.0) |
| PyTorch 2.8 (CPU) | Available | F43 (2.8.0) |
| PyTorch 2.8 (CUDA 12.6, 12.8, 12.9) | Available | |
| PyTorch 2.8 (ROCm 6.4) | Available | |
| PyTorch 2.9 (CPU) | Available | F44 (2.9.1) |
| PyTorch 2.9 (CUDA 12.6, 12.8, 13.0) | Available | |
| PyTorch 2.9 (ROCm 6.4) | Available | |
| Qt 5.x [4][5] | Not supported, but available | |
| Qt 6.x | Fully supported | |
| ROCm 6.4 | WIP | D12, U22, U24 |
| ROCm 7.0 | WIP | D12, D13, U22, U24 |
| SYCL | Not supported | |
| systemd | Partially supported | |
| TensorFlow 2.17 (CPU) | WIP | |
| TensorFlow 2.17 (CUDA 12.3) | Not supported | |
| TensorFlow 2.20 (CPU) | WIP | |
| TensorFlow 2.20 (CUDA 12.5) | Not supported | |
| TensorFlow 2.20 (ROCm 6.4) | WIP | |
| Vulkan | Fully supported | |
| Wayland | Fully supported | |
| X | Fully supported |
- [2] Via llvm-roc-libomp
- [3] Multislotted on this overlay to allow LTS and rolling packages to coexist without resorting to containerization or separate LTS and rolling partitions.
- [4] Backporting security patches is likely to be incomplete. No hardened ebuilds will be provided. You must either keep a local ebuild fork with cflags-hardened changes or add per-package hardening CFLAGS (e.g. Retpoline, CET) for UI toolkit packages that have a password UI widget, or for packages that process untrusted data or process sensitive data.
- [5] No extra libstdc++ versioned symbol consistency verification via
gcc_slot_<x>. You are responsible for ensuring the default GCC is set to the proper default when building Qt5 packages to avoid linking issues. Manually set the default LTS compiler for C++ 17 and older C++ projects. Manually set the default rolling compiler for C++ 20 and newer C++ projects. If no C++ standard stated, assume LTS. The Qt5 based project will state in the build files either-std=c++<ver>or-std=gnu++<ver>orCMAKE_CXX_STANDARD. - Due to the lack of GPU access or GPU dev testers, the requirements are the exact major.minor version requirements for GPU, Machine Learning (ML), and Large Language Model (LLM) ebuild packages in this overlay for increased chances of reproducibility.
Gentoo Prefix is not supported and deprecated on this overlay.
The support status depends on the ebuild contributors ability to test, patch, and verify.