From 0935451fe3d260cf767a9175b9b6898707b1529b Mon Sep 17 00:00:00 2001 From: inference Date: Tue, 28 Feb 2023 20:11:05 +0000 Subject: [PATCH] Initial commit. --- desktop/portage/bashrc | 36 ++ desktop/portage/env/basic.conf | 15 + desktop/portage/env/nolto.conf | 19 + desktop/portage/env/notmpfs.conf | 11 + desktop/portage/make.conf | 57 +++ desktop/portage/package.accept_keywords | 46 +++ desktop/portage/package.env | 336 ++++++++++++++++++ desktop/portage/package.license | 16 + desktop/portage/package.mask | 35 ++ desktop/portage/package.unmask | 10 + desktop/portage/package.use | 77 ++++ .../media-gfx/gimp/gimp-backtrace.patch | 12 + .../patches/media-libs/gavl/patch-gavl.patch | 10 + .../patches/media-libs/mlt/musl-locale.patch | 13 + ...ck-for-backtrace-function-only-if-ex.patch | 39 ++ .../patches/sys-boot/grub/gnulinux.patch | 29 ++ .../patches/sys-libs/libcxx/6Tk5DmZ.patch | 49 +++ desktop/portage/profile/package.provided | 7 + desktop/portage/profile/package.use.force | 7 + desktop/portage/repos.conf | 39 ++ desktop/portage/sets/lang | 26 ++ desktop/portage/sets/rust | 13 + desktop/portage/sets/tc-llvm | 21 ++ 23 files changed, 923 insertions(+) create mode 100644 desktop/portage/bashrc create mode 100644 desktop/portage/env/basic.conf create mode 100644 desktop/portage/env/nolto.conf create mode 100644 desktop/portage/env/notmpfs.conf create mode 100644 desktop/portage/make.conf create mode 100644 desktop/portage/package.accept_keywords create mode 100644 desktop/portage/package.env create mode 100644 desktop/portage/package.license create mode 100644 desktop/portage/package.mask create mode 100644 desktop/portage/package.unmask create mode 100644 desktop/portage/package.use create mode 100644 desktop/portage/patches/media-gfx/gimp/gimp-backtrace.patch create mode 100644 desktop/portage/patches/media-libs/gavl/patch-gavl.patch create mode 100644 desktop/portage/patches/media-libs/mlt/musl-locale.patch create mode 100644 desktop/portage/patches/sys-apps/sandbox/0001-configure.ac-check-for-backtrace-function-only-if-ex.patch create mode 100644 desktop/portage/patches/sys-boot/grub/gnulinux.patch create mode 100644 desktop/portage/patches/sys-libs/libcxx/6Tk5DmZ.patch create mode 100644 desktop/portage/profile/package.provided create mode 100644 desktop/portage/profile/package.use.force create mode 100644 desktop/portage/repos.conf create mode 100644 desktop/portage/sets/lang create mode 100644 desktop/portage/sets/rust create mode 100644 desktop/portage/sets/tc-llvm diff --git a/desktop/portage/bashrc b/desktop/portage/bashrc new file mode 100644 index 0000000..0b93dfd --- /dev/null +++ b/desktop/portage/bashrc @@ -0,0 +1,36 @@ +# Inferencium +# Portage - bashrc + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 1.0.0.2 + + +# Automatically update cfg-update index. +pre_pkg_setup() { + [[ $ROOT = / ]] && cfg-update --index +} + +function pre_pkg_preinst() { + # Sign out-of-tree kernel modules. + if [[ "$(type -t linux-mod_pkg_preinst)" != "function" ]]; then + # The package does not seem to install any kernel modules. + return + fi + # Get signature algorithm used by the kernel. + local module_sig_hash="$(grep -Po '(?<=CONFIG_MODULE_SIG_HASH=").*(?=")' "${KERNEL_DIR}/.config")" + # Get the key file used by the kernel. + local module_sig_key="$(grep -Po '(?<=CONFIG_MODULE_SIG_KEY=").*(?=")' "${KERNEL_DIR}/.config")" + module_sig_key="${module_sig_key:-certs/signing_key.pem}" + # Key file or PKCS11 URI path. + if [[ "${module_sig_key#pkcs11:}" == "${module_sig_key}" && "${module_sig_key#/}" == "${module_sig_key}" ]]; then + local key_path="${KERNEL_DIR}/${module_sig_key}" + else + local key_path="${module_sig_key}" + fi + # Certificate path. + local cert_path="${KERNEL_DIR}/certs/signing_key.x509" + # Sign all installed modules before merging. + find "${D%/}/${INSDESTTREE#/}/" -name "*.ko" -exec "${KERNEL_DIR}/scripts/sign-file" "${module_sig_hash}" "${key_path}" "${cert_path}" '{}' \; +} diff --git a/desktop/portage/env/basic.conf b/desktop/portage/env/basic.conf new file mode 100644 index 0000000..d1fdcdf --- /dev/null +++ b/desktop/portage/env/basic.conf @@ -0,0 +1,15 @@ +# Inferencium +# Portage - env - GCC - Basic + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 4.0.0.6 + + +# Flags +## Compiler flags +CFLAGS="-march=znver3 -mtune=znver3 -O2 -pipe" +CXXFLAGS="-march=znver3 -mtune=znver3 -O2 -pipe" +## Linker flags +LDFLAGS="-Wl,-O2 -Wl,--strip-all" diff --git a/desktop/portage/env/nolto.conf b/desktop/portage/env/nolto.conf new file mode 100644 index 0000000..bf716be --- /dev/null +++ b/desktop/portage/env/nolto.conf @@ -0,0 +1,19 @@ +# Inferencium +# Portage - env - Clang - No LTO + +# Copyright 2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 1.0.1.2 + + +# Flags +## Hardening flags +C_SEC="-fstack-clash-protection -fstack-protector-strong -ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang -fwrapv" +LD_SEC="-Wl,-z,defs -Wl,-z,now -Wl,-z,relro" +## Compiler flags +CFLAGS="-march=znver3 -mtune=znver3 -O2 -pipe ${C_SEC}" +CXXFLAGS="-march=znver3 -mtune=znver3 -O2 -pipe ${C_SEC}" +RUSTFLAGS="-C debuginfo=0 -C target-cpu=znver3" +## Linker flags +LDFLAGS="-Wl,-O2 -Wl,--strip-all ${LD_SEC}" diff --git a/desktop/portage/env/notmpfs.conf b/desktop/portage/env/notmpfs.conf new file mode 100644 index 0000000..0e95837 --- /dev/null +++ b/desktop/portage/env/notmpfs.conf @@ -0,0 +1,11 @@ +# Inferencium +# Portage - env - No tmpfs + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 1.0.0.1 + + +# Directories +PORTAGE_TMPDIR="/var/tmp/notmpfs/" diff --git a/desktop/portage/make.conf b/desktop/portage/make.conf new file mode 100644 index 0000000..a2120f0 --- /dev/null +++ b/desktop/portage/make.conf @@ -0,0 +1,57 @@ +# Inferencium +# Portage - make.conf + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 13.0.1.38 + + +# System +## Appearance +NOCOLOR="false" +## CHOST +CHOST="x86_64-gentoo-linux-musl" +## Directories +PORTAGE_LOGDIR="/var/log/portage/" +DISTDIR="/var/cache/distfile/" +PKGDIR="/var/cache/bin/" +## Language +LC_MESSAGES="C" +LINGUAS="en" +L10N="en-GB" +## Gentoo mirrors +## ONLY IPV4 + IPV6 DUAL-STACK MIRRORS SHOULD BE USED! IPV4 IS BEING PHASED OUT! +## IF IPV6-ONLY IS SUPPORTED BY ISP, IPV6-ONLY MIRRORS SHOULD BE PREFERRED! +#GENTOO_MIRRORS="rsync://mirror.bytemark.co.uk/gentoo/ rsync://rsync.mirrorservice.org/sites/distfiles.gentoo.org/ rsync://mirror.init7.net/gentoo/ rsync://ftp.iij.ad.jp/pub/linux/gentoo/ rsync://ftp.jaist.ac.jp/pub/Linux/gentoo/" +## Emerge +BINPKG_COMPRESS="zstd" +BINPKG_COMPRESS_FLAGS="-7" +CLEAN_DELAY="10" +EMERGE_DEFAULT_OPTS="--ask --jobs 1 --load-average 5 --verbose" +FEATURES="buildpkg ipc-sandbox merge-sync metadata-transfer network-sandbox pid-sandbox sandbox strict unknown-features-filter" +MAKEOPTS="--jobs 4" +PORTAGE_CHECKSUM_FILTER="-* sha256 sha512" +PORTAGE_RSYNC_EXTRA_OPTS="--progress --verbose" + +# Flags +## Hardening flags +C_SEC="-fstack-clash-protection -fstack-protector-strong -ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang -fwrapv" +LD_SEC="-Wl,-z,defs -Wl,-z,now -Wl,-z,relro" +## Compiler flags +CFLAGS="-flto=thin -march=znver3 -mtune=znver3 -O2 -pipe ${C_SEC}" +CXXFLAGS="-flto=thin -march=znver3 -mtune=znver3 -O2 -pipe ${C_SEC}" +RUSTFLAGS="-C debuginfo=0 -C embed-bitcode=y -C lto -C opt-level=2 -C target-cpu=znver3" +## Linker flags +LDFLAGS="-Wl,-O2 -Wl,--strip-all -Wl,--thinlto-jobs=4 ${LD_SEC}" +## USE flags +USE="clang dbus llvm-libunwind lto nftables pulseaudio system-av1 system-harfbuzz system-icu system-jpeg system-libvpx system-llvm system-png system-webp verify-sig wayland" +USE="${USE} -ipv6 -systemd -X" +## CPU flags +CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" +## Video card flags +VIDEO_CARDS="amdgpu radeonsi" +## ABI flags +ABI_X86="64" +## LLVM target flags +LLVM_TARGETS="X86" diff --git a/desktop/portage/package.accept_keywords b/desktop/portage/package.accept_keywords new file mode 100644 index 0000000..4833690 --- /dev/null +++ b/desktop/portage/package.accept_keywords @@ -0,0 +1,46 @@ +# Inferencium +# Portage - package.accept_keywords + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 7.0.0.23 + + +app-arch/unrar ~amd64 +dev-lang/rust ~amd64 +dev-libs/date ~amd64 +dev-libs/icu ~amd64 +dev-libs/libfmt ~amd64 +dev-libs/libstrophe ~amd64 +dev-libs/nss ~amd64 +dev-libs/spdlog ~amd64 +dev-libs/wayland-protocols ~amd64 +fs-util/fsverity-utils ~amd64 +gui-apps/waybar ~amd64 +=gui-wm/sway-1.7 ~amd64 + + #include + #include +-#include + #include + #include + #include diff --git a/desktop/portage/patches/media-libs/gavl/patch-gavl.patch b/desktop/portage/patches/media-libs/gavl/patch-gavl.patch new file mode 100644 index 0000000..86e19d4 --- /dev/null +++ b/desktop/portage/patches/media-libs/gavl/patch-gavl.patch @@ -0,0 +1,10 @@ +--- a/src/benchmark.c 2012-06-08 14:49:30.000000000 +0300 ++++ b/src/benchmark.c 2021-03-15 01:35:44.098919393 +0200 +@@ -40,6 +40,7 @@ + #endif + + #ifdef HAVE_SCHED_SETAFFINITY ++#define _GNU_SOURCE + #define __USE_GNU + #include + #endif diff --git a/desktop/portage/patches/media-libs/mlt/musl-locale.patch b/desktop/portage/patches/media-libs/mlt/musl-locale.patch new file mode 100644 index 0000000..46f7534 --- /dev/null +++ b/desktop/portage/patches/media-libs/mlt/musl-locale.patch @@ -0,0 +1,13 @@ +diff --git a/src/framework/mlt_property.h b/src/framework/mlt_property.h +index 1bfc971fb7..e2ba1c1d6d 100644 +--- a/src/framework/mlt_property.h ++++ b/src/framework/mlt_property.h +@@ -30,7 +30,7 @@ + #include + #endif + +-#if (defined(__GLIBC__) && !defined(__APPLE__)) || defined(HAVE_LOCALE_H) ++#if (defined(__linux__) && !defined(__APPLE__)) || defined(HAVE_LOCALE_H) + # include + #elif defined(__APPLE__) || (defined(__FreeBSD_version) && __FreeBSD_version >= 900506) + # include diff --git a/desktop/portage/patches/sys-apps/sandbox/0001-configure.ac-check-for-backtrace-function-only-if-ex.patch b/desktop/portage/patches/sys-apps/sandbox/0001-configure.ac-check-for-backtrace-function-only-if-ex.patch new file mode 100644 index 0000000..2900063 --- /dev/null +++ b/desktop/portage/patches/sys-apps/sandbox/0001-configure.ac-check-for-backtrace-function-only-if-ex.patch @@ -0,0 +1,39 @@ +From 1fb3b0d59e41dbef1f93e2194e1827a11b8b9f45 Mon Sep 17 00:00:00 2001 +From: Alfred Wingate +Date: Mon, 21 Feb 2022 20:24:09 +0200 +Subject: [PATCH] configure.ac: check for backtrace function only if execinfo.h + is found + +* llvm-unwindlib has backtrace function defined so it might lead to a + false result in the test otherwise on musl systems which dont have + execinfo.h + +Signed-off-by: Alfred Wingate +--- + configure.ac | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 698051f..644bd06 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -161,6 +161,8 @@ AC_CHECK_HEADERS_ONCE(m4_flatten([ + linux/ptrace.h + ])) + ++AC_CHECK_HEADER(execinfo.h, AC_DEFINE(HAVE_EXECINFO_H) AC_CHECK_FUNCS_ONCE(backtrace)) ++ + dnl Checks for typedefs, structures, and compiler characteristics. + dnl Do this after all headers have been checked. + AC_C_CONST +@@ -187,7 +189,6 @@ AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK + AC_TYPE_SIGNAL + AC_FUNC_STAT + AC_CHECK_FUNCS_ONCE(m4_flatten([ +- backtrace + clone + __clone2 + creat64 +-- +2.35.1 + diff --git a/desktop/portage/patches/sys-boot/grub/gnulinux.patch b/desktop/portage/patches/sys-boot/grub/gnulinux.patch new file mode 100644 index 0000000..d8bce1e --- /dev/null +++ b/desktop/portage/patches/sys-boot/grub/gnulinux.patch @@ -0,0 +1,29 @@ +Not GNU/Linux. + +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" + CLASS="--class gnu-linux --class gnu --class os" + + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then +- OS=GNU/Linux ++ OS=Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ OS="${GRUB_DISTRIBUTOR} Linux" + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi + +--- a/util/grub.d/20_linux_xen.in ++++ b/util/grub.d/20_linux_xen.in +@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" + CLASS="--class gnu-linux --class gnu --class os --class xen" + + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then +- OS=GNU/Linux ++ OS=Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ OS="${GRUB_DISTRIBUTOR} Linux" + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi diff --git a/desktop/portage/patches/sys-libs/libcxx/6Tk5DmZ.patch b/desktop/portage/patches/sys-libs/libcxx/6Tk5DmZ.patch new file mode 100644 index 0000000..adf61bb --- /dev/null +++ b/desktop/portage/patches/sys-libs/libcxx/6Tk5DmZ.patch @@ -0,0 +1,49 @@ +From 0065ae7bda7bd2b0748e009cd58a3a95883609ec Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= +Date: Mon, 23 Jan 2023 22:54:29 +0100 +Subject: [PATCH] libcxx/musl: Don't apply ABI tags to extern "C" fns + +--- + libcxx/include/__support/musl/xlocale.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h +index 675ba93e113d..a9f29e37c0c1 100644 +--- a/libcxx/include/__support/musl/xlocale.h ++++ b/libcxx/include/__support/musl/xlocale.h +@@ -24,27 +24,27 @@ + extern "C" { + #endif + +-inline _LIBCPP_HIDE_FROM_ABI long long ++inline _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION long long + strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) { + return ::strtoll(__nptr, __endptr, __base); + } + +-inline _LIBCPP_HIDE_FROM_ABI unsigned long long ++inline _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION unsigned long long + strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) { + return ::strtoull(__nptr, __endptr, __base); + } + +-inline _LIBCPP_HIDE_FROM_ABI long long ++inline _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION long long + wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) { + return ::wcstoll(__nptr, __endptr, __base); + } + +-inline _LIBCPP_HIDE_FROM_ABI long long ++inline _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION long long + wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) { + return ::wcstoull(__nptr, __endptr, __base); + } + +-inline _LIBCPP_HIDE_FROM_ABI long double ++inline _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION long double + wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) { + return ::wcstold(__nptr, __endptr); + } +-- +2.39.1 + diff --git a/desktop/portage/profile/package.provided b/desktop/portage/profile/package.provided new file mode 100644 index 0000000..d1a9638 --- /dev/null +++ b/desktop/portage/profile/package.provided @@ -0,0 +1,7 @@ +# Inferencium +# Portage - package.provided + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 0.0.0.0 diff --git a/desktop/portage/profile/package.use.force b/desktop/portage/profile/package.use.force new file mode 100644 index 0000000..9c701ec --- /dev/null +++ b/desktop/portage/profile/package.use.force @@ -0,0 +1,7 @@ +# Inferencium +# Portage - package.use.force + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 0.0.0.0 diff --git a/desktop/portage/repos.conf b/desktop/portage/repos.conf new file mode 100644 index 0000000..3fe231f --- /dev/null +++ b/desktop/portage/repos.conf @@ -0,0 +1,39 @@ +# Inferencium +# Portage - repos.conf + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 7.0.0.14 + + +# ONLY IPV4 + IPV6 DUAL-STACK MIRRORS SHOULD BE USED! IPV4 IS BEING PHASED OUT! +# IF IPV6-ONLY IS SUPPORTED BY ISP, IPV6-ONLY MIRRORS SHOULD BE PREFERRED! + +# Gentoo +[gentoo] +location = /var/db/repos/gentoo/ +sync-type = git +sync-uri = https://github.com/gentoo-mirror/gentoo.git +sync-git-verify-commit-signature = yes +sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc +sync-openpgp-key-refresh = true +sync-openpgp-key-server = hkps://keys.gentoo.org +strict-misc-digests = true +sync-allow-hardlinks = true + +# Local +[local] +location = /var/db/repos/local/ + +# Inferencium +[sys] +location = /var/db/repos/sys/ +sync-type = git +sync-uri = https://git.inferencium.net/Inferencium/sys.git + +# LibreWolf +[librewolf] +location = /var/db/repos/librewolf/ +sync-type = git +sync-uri = https://gitlab.com/librewolf-community/browser/gentoo.git diff --git a/desktop/portage/sets/lang b/desktop/portage/sets/lang new file mode 100644 index 0000000..92b4a6e --- /dev/null +++ b/desktop/portage/sets/lang @@ -0,0 +1,26 @@ +# Inferencium +# Portage - Set - Programming Languages + +# Copyright 2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 1.0.0.1 + + +# Packages which contain or bootstrap programming languages. These packages should be recompiled +# after each toolchain update/change, and all software compiled using these programming languages +# should be recompiled using the recompiled programming languages afterwards. +dev-lang/duktape +dev-lang/go +dev-lang/lua +dev-lang/luajit +dev-lang/nasm +dev-lang/perl +dev-lang/python +dev-lang/python-exec +dev-lang/python-exec-conf +dev-lang/rust +dev-lang/swig +dev-lang/tcl +dev-lang/vala +dev-lang/yasm diff --git a/desktop/portage/sets/rust b/desktop/portage/sets/rust new file mode 100644 index 0000000..372e60d --- /dev/null +++ b/desktop/portage/sets/rust @@ -0,0 +1,13 @@ +# Inferencium +# Portage - Set - Rust + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 1.0.0.2 + + +# Packages which are written in Rust and are compiled via rustc. These packages should be recompiled +# after each Rust update/change. +sys-process/bottom +x11-terms/alacritty diff --git a/desktop/portage/sets/tc-llvm b/desktop/portage/sets/tc-llvm new file mode 100644 index 0000000..e427bb4 --- /dev/null +++ b/desktop/portage/sets/tc-llvm @@ -0,0 +1,21 @@ +# Inferencium +# Portage - Set - Toolchain - LLVM + +# Copyright 2022-2023 Jake Winters +# SPDX-License-Identifier: GPL-3.0-or-later + +# Version: 1.0.0.3 + + +sys-devel/clang +sys-devel/clang-common +sys-devel/clang-runtime +sys-devel/lld +sys-devel/llvm +sys-devel/llvm-common +sys-libs/compiler-rt +sys-libs/compiler-rt-sanitizers +sys-libs/libcxx +sys-libs/libcxxabi +sys-libs/libomp +sys-libs/llvm-libunwind