Ebuild *DEPENDs support matrix for this overlay

May 8, 2026 ยท View on GitHub

Support levelQualityMeaning
Fully supportedBestTested, fully compatible
Mostly supportedBetterTested and partially compatible
Partially supportedGoodMay be tested and partially compatible
Limited supportGoodTested but restricted for use for a few select packages (e.g. bootstrapping)
AvailableGood to poorNot tested, partially compatible, ebuild may be unfinished, Work in Progress (WIP)
DeprecatedBest to poorPhased out for removal and may be actively removed, may have security issues
Planned-To be added to maximize interoperability between platforms and app features
WIPPoorWork In Progress. Ebuild still in development.
EOLPoorNo longer compatible and may be removed, may have security issues that are practically impossible to fix
Not supportedPoorDropped support or no effort to add support by overlay, may have security issues, untested
Type of releaseSupported on overlay?
StableYes
LTSYes
BetaGenerally no, with exceptions
AlphaNo
PreviewNo
Live (latest commit)Yes
Live snapshotYes
  • 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.

LIBCArchEbuild level of supportDistro or CI image correspondence
glibc64-bitGenerally supportedD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibc32-bitDeprecated*D12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcalphaNot supported
glibc >= 3.40amd64Fully supportedD12 (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)
glibcarmNot supportedD12 (2.36), D13 (2.41), U24 (2.39) U24 (2.39)
glibcarm64AvailableD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibchppaNot supportedD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcloongAvailableD13 (2.41), U24 (2.39)
glibcmips64AvailableD12 (2.36), D13 (2.40), U22 (2.35), U24 (2.39)
glibcmipsAvailableD12 (2.36), D13 (2.40), U22 (2.35), U24 (2.39)
glibcppcNot supportedD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcppc64AvailableD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcriscvAvailableD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcs390xAvailableD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcsparc64AvailableD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
glibcx86Not supportedD12 (2.36), D13 (2.41), U22 (2.35), U24 (2.39)
musl >= 1.2.3*AvailableD12 (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)
CompilerEbuild level of supportDistro or CI image correspondence
Clang <= 16Not supportedD12 (14.0), U22 (14.0)
Clang 17Limited support
Clang 18Fully supportedU24 (18.0)
Clang 19SupportedD13 (19.0), F41 (19.1.7)
Clang 20AvailableF42 (20.1.3),
Clang 21AvailableF43 (21.1.8), F44 (21.1.8), G23 (21.1.8)
Clang 22Available
Clang 23Limited support
Cython 0.29.37.1Fully supportedD12 (0.29.32), U22 (0.29)
Cython 3.0.12Fully SupportedD13 (3.0.11), F42 (3.0.12), U24 (3.0.8)
Cython 3.1.0Fully supportedF43 (3.1.3)
Cython 3.2.0Not supportedF44 (3.2.4), G23 (3.2.4)
GCC 11Fully supportedU22 (11.2)
GCC 12Fully supportedD12 (12.2)
GCC 13Fully supportedU24 (13.2)
GCC 14Partially SupportedD13 (14.2), F40 (14.0), F41 (14.2.1), F43 (14.3.1)
GCC 15Fully supportedF42 (15.2.1), F43 (15.2.1), G23 (15.2.1)
GCC 16Not SupportedF44 (16.1.1)
Rust 1.63.0Not supportedD12 (1.63.0)
Rust 1.74.1Available
Rust 1.75.0AvailableU22 (1.75.0), U24 (1.75.0)
Rust 1.85.1AvailableD13 (1.85.0)
Rust 1.86.0AvailableF41 (1.86.0), F42 (1.86.0)
Rust 1.88.0Available
Rust 1.89.0AvailableU22 (1.89.0), U24 (1.89.0)
Rust 1.91.0Not supportedG23 (1.91.0)
Rust 1.91.1 [C]AvailableU22 (1.91.1), U24 (1.91.1)
Rust 1.93.1AvailableG23 (1.93.1)
Rust 1.94.1Available
Rust 1.95.0 [C]AvailableF43 (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_STANDARDLTS or rolling compiler?Compiler status for C++ standardC++ standard library status for C++ standard
c++98LTS??
c++03LTS??
c++11LTSIncompleteDone
c++14LTSDoneDone
c++17LTSDoneGCC (Done), LLVM (Incomplete)
c++20RollingIncompleteGCC (Done), LLVM (Incomplete)
c++23RollingIncompleteIncomplete
c++26RollingIncompleteIncomplete

Language defaults

LTS or rolling compiler?C++ standard [6][7]C standard [6][7]GCCClangOverlay USE flags [5]Distro correspondanceHardware acceleration support [8][9]
LTSgnu++17 / gnu++14gnu17 / gnu171114gcc_slot_11_5U22CPU, CUDA 12.6, CUDA 12.8, CUDA 12.9, Vulkan [3]
LTSgnu++17 / gnu++14gnu17 / gnu171214gcc_slot_12_5D12CPU, CUDA 12.6, CUDA 12.8, CUDA 12.9, ROCm 6.4, ROCm 7.0, Vulkan [3]
LTSgnu++17 / gnu++17gnu17 / gnu171318gcc_slot_13_4, llvm_slot_18U24CPU, CUDA 12.6, CUDA 12.8, CUDA 12.9, ROCm 6.4, ROCm 7.0, Vulkan
LTSgnu++17 / gnu++17gnu17 / gnu171419gcc_slot_14_3, llvm_slot_19D13CPU, CUDA 12.8, CUDA 12.9, Vulkan
LTSgnu++17 / gnu++17gnu17 / gnu171319gcc_slot_13_4, llvm_slot_19G23 [1]CPU, CUDA 12.8, CUDA 12.9, ROCm 6.4, ROCm 7.0, Vulkan
Rollinggnu++17 / gnu++17gnu17 / gnu171420gcc_slot_14_3, llvm_slot_20G23 [2]CPU, CUDA 12.8, CUDA 12.9, Vulkan [3]
Rollinggnu++17 / gnu++17gnu23 / gnu171520gcc_slot_15_2, llvm_slot_20F42CPU, Vulkan
Rollinggnu++17 / gnu++17gnu23 / gnu171521gcc_slot_15_2, llvm_slot_21F43CPU, Vulkan
Rollinggnu++17 / -gnu23 / -16gcc_slot_16_1CPU, Vulkan
Rolling- / gnu++17- / gnu1722llvm_slot_22CPU, 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.

PythonEbuild level of supportDistro or CI image correspondence
3.10 and earlierNot supported (EOL) [1]U22 (EOL Apr 2027)
3.11Not Supported (EOL) [4]D12 (EOL Jun 2026)
3.12Partially supportedU24 (EOL Apr 2029)
3.13AvailableD13 (EOL Aug 2028), F41 (EOL Nov 2025), F42 (EOL May 2026)
3.13t [3]Not supported
3.14 and later [3]Not supportedG23, 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.
PlatformEbuild level of supportDistro or CI image correspondence
CUDA 11.8Not supportedD12, F35, U18, U20, U22
CUDA 12.3Not supportedD10, D11, D12, F37, U20, U22
CUDA 12.4Not supportedD10, D11, D12, F39, U20, U22
CUDA 12.5Not supportedD10, D11, D12, F39, U20, U22, U24
CUDA 12.6AvailableD11, D12, F39, U20, U22, U24
CUDA 12.8AvailableD12, F41, U20, U22, U24
CUDA 12.9AvailableD12, F41, U20, U22, U24
CUDA 13.0Not supportedD12, 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 supportedU22 (1.30.2)
gRPC 1.51.3 [3]Fully supportedD12 (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 3Fully supported
GTK 4Fully 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.6Fully supported
OpenCL <= 2.0Fully 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 offloadNot Supported
OpenRCFully supported
Protobuf-cpp 3 [3]Fully supportedD12 (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.7Not supportedD12 (1.13.1), D13 (2.6.0)
PyTorch 2.8 (CPU)AvailableF43 (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)AvailableF44 (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.xFully supported
ROCm 6.4WIPD12, U22, U24
ROCm 7.0WIPD12, D13, U22, U24
SYCLNot supported
systemdPartially 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
VulkanFully supported
WaylandFully supported
XFully 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> or CMAKE_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.