├── profiles ├── minmax-v1 │ ├── env │ │ ├── force-Os.conf │ │ ├── force-Oz.conf │ │ ├── grub.conf │ │ ├── disable-gold.conf │ │ ├── link-ubsan.conf │ │ ├── remove-lto.conf │ │ ├── use-gold.conf │ │ ├── disable-thinlto.conf │ │ ├── no-cfi-cast.conf │ │ ├── no-cfi-icall.conf │ │ ├── no-cfi-mfcall.conf │ │ ├── no-cfi-nvcall.conf │ │ ├── no-cfi-vcall.conf │ │ ├── skip-ir-check.conf │ │ ├── use-gcc-10.conf │ │ ├── use-gcc-11.conf │ │ ├── use-gcc-12.conf │ │ ├── use-gcc-13.conf │ │ ├── use-thinlto.conf │ │ ├── disable-gcf-lto.conf │ │ ├── makeopts-oom.conf │ │ ├── makeopts-plain.conf │ │ ├── remove-clang-lto.conf │ │ ├── remove-fno-plt.conf │ │ ├── remove-gcc-flags.conf │ │ ├── remove-gcc-lto.conf │ │ ├── remove-no-inline.conf │ │ ├── remove-retpoline.conf │ │ ├── split-lto-unit.conf │ │ ├── use-clang-11.conf │ │ ├── use-clang-12.conf │ │ ├── use-clang-13.conf │ │ ├── use-clang-14.conf │ │ ├── use-clang-15.conf │ │ ├── use-clang-16.conf │ │ ├── use-clang-17.conf │ │ ├── use-clang-18.conf │ │ ├── use-clang-19.conf │ │ ├── clear-flags.conf │ │ ├── disable-cfi-verify.conf │ │ ├── errors-as-warnings.conf │ │ ├── force-translate-gcc-retpoline.conf │ │ ├── makeopts-broken.conf │ │ ├── makeopts-normal.conf │ │ ├── makeopts-swappy.conf │ │ ├── no-ccache.conf │ │ ├── no-strip.conf │ │ ├── no-ubsan-undefined.conf │ │ ├── use-bfd.conf │ │ ├── use-lld.conf │ │ ├── extundelete.conf │ │ ├── force-translate-clang-retpoline.conf │ │ ├── no-cfi-derived-cast.conf │ │ ├── no-sandbox.conf │ │ ├── remove-z-retpolineplt.conf │ │ ├── disable-cfi-at-system.conf │ │ ├── disable-clang-cfi.conf │ │ ├── disable-so-load-verify.conf │ │ ├── no-cfi-unrelated-cast.conf │ │ ├── remove-split-lto-unit.conf │ │ ├── cfi-canonical-jump-tables.conf │ │ ├── march.conf │ │ ├── remove-omit-frame-pointer.conf │ │ ├── skip-lib-correctness-check.conf │ │ ├── disable-perl-makemaker-autoedit.conf │ │ ├── enable-perl-makemaker-autoedit.conf │ │ ├── no-cfi-canonical-jump-tables.conf │ │ ├── disable-override-compiler-check.conf │ │ ├── pipe.conf │ │ ├── python.conf │ │ ├── use-clang-cfi.conf │ │ ├── use-souper.conf │ │ ├── use-wc-bfd.conf │ │ ├── use-wc-lld.conf │ │ ├── O1.conf │ │ ├── clang-retpoline.conf │ │ ├── disable-souper.conf │ │ ├── makeopts-gcc-oom.conf │ │ ├── use-wc-gold.conf │ │ ├── makeopts-gcc-broken.conf │ │ ├── makeopts-gcc-normal.conf │ │ ├── makeopts-gcc-plain.conf │ │ ├── makeopts-gcc-swappy.conf │ │ ├── makeopts-clang-oom.conf │ │ ├── pesign.conf │ │ ├── disable-lto-stripping.conf │ │ ├── makeopts-clang-broken.conf │ │ ├── makeopts-clang-normal.conf │ │ ├── makeopts-clang-plain.conf │ │ ├── makeopts-clang-swappy.conf │ │ ├── rename-registers.conf │ │ ├── skipless.conf │ │ ├── souper-size.conf │ │ ├── omit-frame-pointer.conf │ │ ├── rust.conf │ │ ├── souper-speed.conf │ │ ├── stc.conf │ │ ├── cfi-cast-strict.conf │ │ ├── disable-libcxx-as-default.conf │ │ ├── print-unroll-loops-stats.conf │ │ ├── Oz.conf │ │ ├── no-debug.conf │ │ ├── z-retpolineplt.conf │ │ ├── no-allow-store-data-races.conf │ │ ├── wmname.conf │ │ ├── disable-integrated-as.conf │ │ ├── bypass-fallow-store-data-races-check.conf │ │ ├── gcc-retpoline-thunk.conf │ │ ├── fast-math.conf │ │ ├── use-gcc.conf │ │ ├── bolt-app.conf │ │ ├── use-clang.conf │ │ ├── O2.conf │ │ ├── O3.conf │ │ ├── linker-errors-as-warnings.conf │ │ ├── O0.conf │ │ ├── makeopts-severe-swapping.conf │ │ ├── Os.conf │ │ ├── makeopts-gcc-severe-swapping.conf │ │ ├── makeopts-clang-severe-swapping.conf │ │ ├── cfi-ignore-list.conf │ │ ├── Ofast-ts.conf │ │ ├── multicoreloops.conf │ │ ├── prefetch-loop-arrays.conf │ │ └── Ofast.conf │ ├── package.cfi_ignore │ │ ├── sys-apps │ │ │ └── apparmor │ │ ├── x11-drivers │ │ │ └── xf86-video-dummy │ │ ├── dev-lang │ │ │ └── vala │ │ ├── media-libs │ │ │ ├── opus │ │ │ ├── openusd │ │ │ └── libpng-compat │ │ ├── app-portage │ │ │ └── eix │ │ ├── dev-util │ │ │ └── ccache │ │ └── net-dns │ │ │ └── c-ares │ ├── find-broken-so-stripping.sh │ ├── patches │ │ └── sys-apps │ │ │ └── portage │ │ │ └── no-stripping-cfi-symbols.patch │ ├── install.sh │ ├── emerge-uncfied.sh │ ├── emerge-unltoed.sh │ └── docs │ │ └── Development.md ├── minmax-v2 │ ├── env │ │ ├── force-Os.conf │ │ ├── force-Oz.conf │ │ ├── grub.conf │ │ ├── disable-gold.conf │ │ ├── link-ubsan.conf │ │ ├── remove-lto.conf │ │ ├── use-gold.conf │ │ ├── disable-thinlto.conf │ │ ├── no-cfi-cast.conf │ │ ├── no-cfi-icall.conf │ │ ├── no-cfi-mfcall.conf │ │ ├── no-cfi-nvcall.conf │ │ ├── no-cfi-vcall.conf │ │ ├── skip-ir-check.conf │ │ ├── use-gcc-10.conf │ │ ├── use-gcc-11.conf │ │ ├── use-gcc-12.conf │ │ ├── use-gcc-13.conf │ │ ├── use-thinlto.conf │ │ ├── disable-gcf-lto.conf │ │ ├── makeopts-oom.conf │ │ ├── makeopts-plain.conf │ │ ├── remove-clang-lto.conf │ │ ├── remove-fno-plt.conf │ │ ├── remove-gcc-flags.conf │ │ ├── remove-gcc-lto.conf │ │ ├── remove-no-inline.conf │ │ ├── remove-retpoline.conf │ │ ├── split-lto-unit.conf │ │ ├── use-clang-11.conf │ │ ├── use-clang-12.conf │ │ ├── use-clang-13.conf │ │ ├── use-clang-14.conf │ │ ├── use-clang-15.conf │ │ ├── use-clang-16.conf │ │ ├── use-clang-17.conf │ │ ├── use-clang-18.conf │ │ ├── use-clang-19.conf │ │ ├── clear-flags.conf │ │ ├── disable-cfi-verify.conf │ │ ├── errors-as-warnings.conf │ │ ├── force-translate-gcc-retpoline.conf │ │ ├── makeopts-broken.conf │ │ ├── makeopts-normal.conf │ │ ├── makeopts-swappy.conf │ │ ├── no-ccache.conf │ │ ├── no-strip.conf │ │ ├── no-ubsan-undefined.conf │ │ ├── use-bfd.conf │ │ ├── use-lld.conf │ │ ├── extundelete.conf │ │ ├── force-translate-clang-retpoline.conf │ │ ├── no-cfi-derived-cast.conf │ │ ├── no-sandbox.conf │ │ ├── remove-z-retpolineplt.conf │ │ ├── disable-cfi-at-system.conf │ │ ├── disable-clang-cfi.conf │ │ ├── disable-so-load-verify.conf │ │ ├── no-cfi-unrelated-cast.conf │ │ ├── remove-split-lto-unit.conf │ │ ├── cfi-canonical-jump-tables.conf │ │ ├── march.conf │ │ ├── remove-omit-frame-pointer.conf │ │ ├── skip-lib-correctness-check.conf │ │ ├── disable-perl-makemaker-autoedit.conf │ │ ├── enable-perl-makemaker-autoedit.conf │ │ ├── no-cfi-canonical-jump-tables.conf │ │ ├── disable-override-compiler-check.conf │ │ ├── pipe.conf │ │ ├── python.conf │ │ ├── use-clang-cfi.conf │ │ ├── use-souper.conf │ │ ├── use-wc-bfd.conf │ │ ├── use-wc-lld.conf │ │ ├── O1.conf │ │ ├── clang-retpoline.conf │ │ ├── disable-souper.conf │ │ ├── makeopts-gcc-oom.conf │ │ ├── use-wc-gold.conf │ │ ├── makeopts-gcc-broken.conf │ │ ├── makeopts-gcc-normal.conf │ │ ├── makeopts-gcc-plain.conf │ │ ├── makeopts-gcc-swappy.conf │ │ ├── makeopts-clang-oom.conf │ │ ├── pesign.conf │ │ ├── disable-lto-stripping.conf │ │ ├── makeopts-clang-broken.conf │ │ ├── makeopts-clang-normal.conf │ │ ├── makeopts-clang-plain.conf │ │ ├── makeopts-clang-swappy.conf │ │ ├── rename-registers.conf │ │ ├── skipless.conf │ │ ├── souper-size.conf │ │ ├── omit-frame-pointer.conf │ │ ├── rust.conf │ │ ├── souper-speed.conf │ │ ├── stc.conf │ │ ├── cfi-cast-strict.conf │ │ ├── disable-libcxx-as-default.conf │ │ ├── print-unroll-loops-stats.conf │ │ ├── Oz.conf │ │ ├── no-debug.conf │ │ ├── z-retpolineplt.conf │ │ ├── no-allow-store-data-races.conf │ │ ├── wmname.conf │ │ ├── disable-integrated-as.conf │ │ ├── bypass-fallow-store-data-races-check.conf │ │ ├── gcc-retpoline-thunk.conf │ │ ├── fast-math.conf │ │ ├── use-gcc.conf │ │ ├── bolt-app.conf │ │ ├── use-clang.conf │ │ ├── O2.conf │ │ ├── O3.conf │ │ ├── linker-errors-as-warnings.conf │ │ ├── O0.conf │ │ ├── makeopts-severe-swapping.conf │ │ ├── Os.conf │ │ ├── makeopts-gcc-severe-swapping.conf │ │ ├── makeopts-clang-severe-swapping.conf │ │ ├── cfi-ignore-list.conf │ │ ├── Ofast-ts.conf │ │ ├── multicoreloops.conf │ │ ├── prefetch-loop-arrays.conf │ │ └── Ofast.conf │ ├── package.cfi_ignore │ │ ├── sys-apps │ │ │ └── apparmor │ │ ├── x11-drivers │ │ │ └── xf86-video-dummy │ │ ├── dev-lang │ │ │ └── vala │ │ ├── media-libs │ │ │ ├── opus │ │ │ └── openusd │ │ ├── app-portage │ │ │ └── eix │ │ ├── dev-util │ │ │ └── ccache │ │ └── net-dns │ │ │ └── c-ares │ ├── testing.lst │ ├── package_env-header.txt │ ├── find-broken-so-stripping.sh │ ├── patches │ │ └── sys-apps │ │ │ └── portage │ │ │ └── no-stripping-cfi-symbols.patch │ ├── makeopts.lst │ ├── install.sh │ ├── emerge-uncfied.sh │ ├── emerge-unltoed.sh │ └── docs │ │ └── Development.md ├── gaming │ ├── env │ │ ├── git-offline.conf │ │ ├── bfd.conf │ │ ├── ccache.conf │ │ ├── git-shallow.conf │ │ ├── lld.conf │ │ ├── mold.conf │ │ ├── no-strip.conf │ │ ├── nostrip.conf │ │ ├── features-test.conf │ │ ├── no-sandbox.conf │ │ ├── no-userpriv.conf │ │ ├── npm-audit-off.conf │ │ ├── npm-utils-no-audit.conf │ │ ├── userpriv.conf │ │ ├── vips.conf │ │ ├── zopfli.conf │ │ ├── compressdebug.conf │ │ ├── no-ipc-sandbox.conf │ │ ├── no-pid-sandbox.conf │ │ ├── no-usersandbox.conf │ │ ├── network-sandbox.conf │ │ ├── no-builtin-strlen.conf │ │ ├── no-network-sandbox.conf │ │ ├── npm-secaudit-no-die-on-audit.conf │ │ ├── harfbuzz.conf │ │ ├── j3.conf │ │ ├── npm-allow-session-replay.conf │ │ ├── ggdb3.conf │ │ ├── obs-studio.conf │ │ ├── closure-compiler-npm.conf │ │ ├── j1.conf │ │ ├── j12.conf │ │ ├── j2.conf │ │ ├── j4.conf │ │ ├── j6.conf │ │ ├── gold.conf │ │ ├── j24.conf │ │ ├── firefox.conf │ │ ├── liri-session.conf │ │ ├── npm-allow-analytics.conf │ │ ├── rust-bti.conf │ │ ├── ssp-basic.conf │ │ ├── mold-1-thread.conf │ │ ├── rust-full-relro.conf │ │ ├── rust-pac-ret.conf │ │ ├── ssp-all.conf │ │ ├── full-relro.conf │ │ ├── gold-1-thread.conf │ │ ├── gold-3-threads.conf │ │ ├── lld-1-thread.conf │ │ ├── rust-nightly-cfi.conf │ │ ├── rust-retpoline.conf │ │ ├── gcc-bfdlto.conf │ │ ├── gcc-goldlto.conf │ │ ├── rust-pac-ret-bti.conf │ │ ├── ssp-strong.conf │ │ ├── gold-2-threads.conf │ │ ├── gold-4-threads.conf │ │ ├── gold-6-threads.conf │ │ ├── j8.conf │ │ ├── rust-nightly-ssp-all.conf │ │ ├── rust-nightly-ssp-basic.conf │ │ ├── sccache.conf │ │ ├── somebar.conf │ │ ├── thinlto.conf │ │ ├── clang-bfdlto.conf │ │ ├── enigma-commit.conf │ │ ├── gold-12-threads.conf │ │ ├── gold-24-threads.conf │ │ ├── j16.conf │ │ ├── j32.conf │ │ ├── rust-nightly-ssp-strong.conf │ │ ├── clang-goldlto.conf │ │ ├── rust-nightly-no-sanitize-recover.conf │ │ ├── rust-nightly-bti.conf │ │ ├── vtable-verify-std.conf │ │ ├── rust-nightly-pac-ret.conf │ │ ├── O1.conf │ │ ├── O2.conf │ │ ├── Os.conf │ │ ├── Oz.conf │ │ ├── bti.conf │ │ ├── fhardened.conf │ │ ├── rust-overflow-checks.conf │ │ ├── gold-16-threads.conf │ │ ├── gold-8-threads.conf │ │ ├── gold-32-threads.conf │ │ ├── Oshit.conf │ │ ├── gcc-11.conf │ │ ├── gcc-12.conf │ │ ├── gcc-13.conf │ │ ├── gcc-14.conf │ │ ├── gcc-15.conf │ │ ├── rust-stack-probe.conf │ │ ├── pac-ret.conf │ │ ├── rust-nightly-pac-ret-bti.conf │ │ ├── fortify-source-2.conf │ │ ├── fortify-source-3.conf │ │ ├── no-allow-store-data-races.conf │ │ ├── bolt.conf │ │ ├── fast-math.conf │ │ ├── cf-protection-full.conf │ │ ├── clang.conf │ │ ├── mindirect-branch-ibrs.conf │ │ ├── pac-ret-bti.conf │ │ ├── trapv.conf │ │ ├── clang-14.conf │ │ ├── clang-15.conf │ │ ├── clang-16.conf │ │ ├── clang-17.conf │ │ ├── clang-18.conf │ │ ├── clang-19.conf │ │ ├── clang-20.conf │ │ ├── liri-shell.conf │ │ ├── march-native.conf │ │ ├── llvm-safe-stack.conf │ │ ├── no-sanitize-recover.conf │ │ ├── O0.conf │ │ ├── noexecstack.conf │ │ ├── stack-clash-protection.conf │ │ ├── O3.conf │ │ ├── O4.conf │ │ ├── trivial-auto-var-init-zero.conf │ │ ├── Wformat-security.conf │ │ ├── dwm.conf │ │ ├── prefetch-loop-arrays.conf │ │ ├── fortify-fix-lto.conf │ │ ├── indirect-branch-register.conf │ │ ├── fortify-fix-1-gcc.conf │ │ ├── Ofast.conf │ │ ├── fortify-fix-1-clang.conf │ │ ├── retpoline-clang-speed.conf │ │ ├── rust-nightly-gcc-lsan.conf │ │ ├── rust-nightly-llvm-lsan.conf │ │ ├── splitdebug.conf │ │ ├── libvpx.conf │ │ ├── rust-nightly-gcc-asan.conf │ │ ├── rust-nightly-gcc-tsan.conf │ │ ├── rust-nightly-llvm-asan.conf │ │ ├── rust-nightly-llvm-dfsan.conf │ │ ├── rust-nightly-llvm-msan.conf │ │ ├── rust-nightly-llvm-rtsan.conf │ │ ├── rust-nightly-llvm-tsan.conf │ │ ├── rust-nightly-llvm-tysan.conf │ │ ├── retpoline-gcc-thunk-inline.conf │ │ ├── rust-nightly-gcc-hwasan.conf │ │ ├── rust-nightly-gcc-ubsan.conf │ │ ├── rust-nightly-llvm-hwasan.conf │ │ ├── rust-nightly-llvm-ubsan.conf │ │ ├── retpoline-gcc-thunk-extern.conf │ │ ├── rust-nightly-llvm-safe-stack.conf │ │ ├── rust-nightly-llvm-scs.conf │ │ ├── retpoline-gcc-thunk.conf │ │ ├── retpoline-clang-lightweight.conf │ │ ├── rust-nightly-gcc-scs.conf │ │ ├── gcc-scs.conf │ │ ├── rust-deterministic-floats-arm64.conf │ │ ├── gcc-lsan.conf │ │ ├── fortify-fix-2-gcc.conf │ │ ├── Og.conf │ │ ├── llvm-16-commit.conf │ │ ├── fortify-fix-2-clang.conf │ │ ├── llvm-allsan.conf │ │ ├── gcc-tsan.conf │ │ ├── libaom.conf │ │ ├── llvm-scs.conf │ │ ├── rust-deterministic-floats-amd64.conf │ │ ├── llvm-lsan.conf │ │ ├── fortify-fix-3-gcc.conf │ │ ├── fortify-fix-3-clang.conf │ │ ├── fortify-fix-3-gcc-no-inline.conf │ │ ├── deterministic-floats-arm64.conf │ │ ├── llvm-tsan.conf │ │ ├── llvm-msan.conf │ │ ├── fortify-fix-3-clang-no-inline.conf │ │ ├── gcc-asan.conf │ │ ├── gcc-hwasan.conf │ │ ├── gcc-ubsan.conf │ │ ├── webkit-gtk.conf │ │ ├── llvm-asan.conf │ │ ├── llvm-hwasan.conf │ │ ├── llvm-ubsan.conf │ │ ├── ffmpeg.conf │ │ ├── deterministic-floats-amd64.conf │ │ └── chromium.conf │ ├── make.conf │ └── install.sh └── minmax-2018 │ ├── env │ ├── use-clang.conf │ ├── bfd.conf │ ├── clear-flags.conf │ ├── no-ccache.conf │ ├── no-plt.conf │ ├── march.conf │ ├── O0.conf │ ├── O1.conf │ ├── binutils-gold-default.conf │ ├── fpic.conf │ ├── j3.conf │ ├── pipe.conf │ ├── j1.conf │ ├── j12.conf │ ├── j2.conf │ ├── j4.conf │ ├── j6.conf │ ├── fast-math.conf │ ├── gold.conf │ ├── j24.conf │ ├── clang-retpoline.conf │ ├── gold-1-thread.conf │ ├── gold-3-threads.conf │ ├── lld-1-thread.conf │ ├── rename-registers.conf │ ├── rust.conf │ ├── omit-frame-pointer.conf │ ├── gold-2-threads.conf │ ├── gold-4-threads.conf │ ├── gold-6-threads.conf │ ├── gold-plt-retpoline.conf │ ├── j8.conf │ ├── gold-12-threads.conf │ ├── gold-24-threads.conf │ ├── j16.conf │ ├── j32.conf │ ├── no-debug.conf │ ├── O2.conf │ ├── gold-16-threads.conf │ ├── gold-8-threads.conf │ ├── gold-32-threads.conf │ ├── gcc-retpoline-thunk.conf │ ├── gcc-retpoline-thunk-extern.conf │ ├── gcc-retpoline-thunk-inline.conf │ ├── O3.conf │ ├── multicoreloops.conf │ └── prefetch-loop-arrays.conf │ ├── make.conf │ └── install.sh ├── README.md └── gcf2 /profiles/minmax-v1/env/force-Os.conf: -------------------------------------------------------------------------------- 1 | FORCE_OS="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/force-Oz.conf: -------------------------------------------------------------------------------- 1 | FORCE_OZ="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/grub.conf: -------------------------------------------------------------------------------- 1 | CPP="gcc -E" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/force-Os.conf: -------------------------------------------------------------------------------- 1 | FORCE_OS="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/force-Oz.conf: -------------------------------------------------------------------------------- 1 | FORCE_OZ="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/grub.conf: -------------------------------------------------------------------------------- 1 | CPP="gcc -E" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/git-offline.conf: -------------------------------------------------------------------------------- 1 | EVCS_OFFLINE=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-gold.conf: -------------------------------------------------------------------------------- 1 | USE_GOLDLTO=0 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/link-ubsan.conf: -------------------------------------------------------------------------------- 1 | LINK_UBSAN="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-gold.conf: -------------------------------------------------------------------------------- 1 | USE_GOLDLTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-gold.conf: -------------------------------------------------------------------------------- 1 | USE_GOLDLTO=0 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/link-ubsan.conf: -------------------------------------------------------------------------------- 1 | LINK_UBSAN="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-gold.conf: -------------------------------------------------------------------------------- 1 | USE_GOLDLTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-thinlto.conf: -------------------------------------------------------------------------------- 1 | USE_THINLTO=0 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-cast.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_CAST="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-icall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_ICALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-mfcall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_MFCALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-nvcall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_NVCALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-vcall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_VCALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/skip-ir-check.conf: -------------------------------------------------------------------------------- 1 | SKIP_IR_CHECK=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-gcc-10.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="10" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-gcc-11.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="11" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-gcc-12.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="12" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-gcc-13.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="13" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-thinlto.conf: -------------------------------------------------------------------------------- 1 | USE_THINLTO="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-thinlto.conf: -------------------------------------------------------------------------------- 1 | USE_THINLTO=0 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-cast.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_CAST="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-icall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_ICALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-mfcall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_MFCALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-nvcall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_NVCALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-vcall.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_VCALL="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/skip-ir-check.conf: -------------------------------------------------------------------------------- 1 | SKIP_IR_CHECK=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-gcc-10.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="10" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-gcc-11.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="11" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-gcc-12.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="12" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-gcc-13.conf: -------------------------------------------------------------------------------- 1 | USE_GCC_SLOT="13" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-thinlto.conf: -------------------------------------------------------------------------------- 1 | USE_THINLTO="1" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/bfd.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=bfd" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/ccache.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} ccache" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/git-shallow.conf: -------------------------------------------------------------------------------- 1 | EGIT_CLONE_TYPE="shallow" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/lld.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=lld" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/mold.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=mold" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-strip.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} nostrip" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/nostrip.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} nostrip" 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/use-clang.conf: -------------------------------------------------------------------------------- 1 | CC=clang 2 | CXX=clang++ 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-gcf-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_GCF_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-oom.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="oom" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-plain.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="plain" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-clang-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_CLANG_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-fno-plt.conf: -------------------------------------------------------------------------------- 1 | DISABLE_FNO_PLT=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-gcc-flags.conf: -------------------------------------------------------------------------------- 1 | DISABLE_GCC_FLAGS=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-gcc-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_GCC_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-no-inline.conf: -------------------------------------------------------------------------------- 1 | DISABLE_NO_INLINE=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-retpoline.conf: -------------------------------------------------------------------------------- 1 | DISABLE_RETPOLINE=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/split-lto-unit.conf: -------------------------------------------------------------------------------- 1 | SPLIT_LTO_UNIT="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-11.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="11" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-12.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="12" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-13.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="13" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-14.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="14" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-15.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="15" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-16.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="16" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-17.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="17" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-18.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="18" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-19.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="19" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-gcf-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_GCF_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-oom.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="oom" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-plain.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="plain" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-clang-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_CLANG_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-fno-plt.conf: -------------------------------------------------------------------------------- 1 | DISABLE_FNO_PLT=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-gcc-flags.conf: -------------------------------------------------------------------------------- 1 | DISABLE_GCC_FLAGS=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-gcc-lto.conf: -------------------------------------------------------------------------------- 1 | DISABLE_GCC_LTO=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-no-inline.conf: -------------------------------------------------------------------------------- 1 | DISABLE_NO_INLINE=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-retpoline.conf: -------------------------------------------------------------------------------- 1 | DISABLE_RETPOLINE=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/split-lto-unit.conf: -------------------------------------------------------------------------------- 1 | SPLIT_LTO_UNIT="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-11.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="11" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-12.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="12" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-13.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="13" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-14.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="14" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-15.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="15" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-16.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="16" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-17.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="17" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-18.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="18" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-19.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_SLOT="19" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/features-test.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} test" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -sandbox" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-userpriv.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -userpriv" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/npm-audit-off.conf: -------------------------------------------------------------------------------- 1 | NPM_SECAUDIT_ALLOW_AUDIT="0" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/npm-utils-no-audit.conf: -------------------------------------------------------------------------------- 1 | NPM_UTILS_ALLOW_AUDIT=0 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/userpriv.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} userpriv" 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/bfd.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=bfd" 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/clear-flags.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="" 2 | CXXFLAGS="" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/clear-flags.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="" 2 | CXXFLAGS="" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-cfi-verify.conf: -------------------------------------------------------------------------------- 1 | DISABLE_CFI_VERIFY=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/errors-as-warnings.conf: -------------------------------------------------------------------------------- 1 | ERRORS_AS_WARNINGS="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/force-translate-gcc-retpoline.conf: -------------------------------------------------------------------------------- 1 | USE_GCC=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-broken.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="broken" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-normal.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="normal" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-swappy.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="swappy" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-ccache.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -ccache" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-strip.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} nostrip" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-ubsan-undefined.conf: -------------------------------------------------------------------------------- 1 | NO_UBSAN_UNDEFINED="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-bfd.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=bfd" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-lld.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=lld" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/clear-flags.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="" 2 | CXXFLAGS="" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-cfi-verify.conf: -------------------------------------------------------------------------------- 1 | DISABLE_CFI_VERIFY=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/errors-as-warnings.conf: -------------------------------------------------------------------------------- 1 | ERRORS_AS_WARNINGS="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/force-translate-gcc-retpoline.conf: -------------------------------------------------------------------------------- 1 | USE_GCC=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-broken.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="broken" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-normal.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="normal" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-swappy.conf: -------------------------------------------------------------------------------- 1 | MAKEOPTS_MODE="swappy" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-ccache.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -ccache" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-strip.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} nostrip" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-ubsan-undefined.conf: -------------------------------------------------------------------------------- 1 | NO_UBSAN_UNDEFINED="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-bfd.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=bfd" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-lld.conf: -------------------------------------------------------------------------------- 1 | LDFLAGS="${LDFLAGS} -fuse-ld=lld" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/vips.conf: -------------------------------------------------------------------------------- 1 | VIPS_LD_PRELOAD_SANDBOX_DISABLE="accept" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/zopfli.conf: -------------------------------------------------------------------------------- 1 | ZOPFLI_TRAINER_NOTO_EMOJI_PERCENT_IMAGES=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/no-ccache.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -ccache" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/extundelete.conf: -------------------------------------------------------------------------------- 1 | CXXFLAGS="${CXXFLAGS} -std=c++98" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/force-translate-clang-retpoline.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-derived-cast.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_DERIVED_CAST="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -sandbox" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-z-retpolineplt.conf: -------------------------------------------------------------------------------- 1 | DISABLE_Z_RETPOLINEPLT=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/extundelete.conf: -------------------------------------------------------------------------------- 1 | CXXFLAGS="${CXXFLAGS} -std=c++98" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/force-translate-clang-retpoline.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-derived-cast.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_DERIVED_CAST="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -sandbox" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-z-retpolineplt.conf: -------------------------------------------------------------------------------- 1 | DISABLE_Z_RETPOLINEPLT=1 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/compressdebug.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} compressdebug" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-ipc-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -ipc-sandbox" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-pid-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -pid-sandbox" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-usersandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -usersandbox" 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/no-plt.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="-fno-plt" 2 | CXXFLAGS="-fno-plt" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-cfi-at-system.conf: -------------------------------------------------------------------------------- 1 | DISABLE_CFI_AT_SYSTEM="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-clang-cfi.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_CFI=0 2 | LINK_UBSAN=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-so-load-verify.conf: -------------------------------------------------------------------------------- 1 | DISABLE_SO_LOAD_VERIFY="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-unrelated-cast.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_UNRELATED_CAST="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-split-lto-unit.conf: -------------------------------------------------------------------------------- 1 | DISABLE_SPLIT_LTO_UNIT="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-cfi-at-system.conf: -------------------------------------------------------------------------------- 1 | DISABLE_CFI_AT_SYSTEM="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-clang-cfi.conf: -------------------------------------------------------------------------------- 1 | USE_CLANG_CFI=0 2 | LINK_UBSAN=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-so-load-verify.conf: -------------------------------------------------------------------------------- 1 | DISABLE_SO_LOAD_VERIFY="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-unrelated-cast.conf: -------------------------------------------------------------------------------- 1 | NO_CFI_UNRELATED_CAST="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-split-lto-unit.conf: -------------------------------------------------------------------------------- 1 | DISABLE_SPLIT_LTO_UNIT="1" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/network-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -network-sandbox" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-builtin-strlen.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fno-builtin-strlen" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-network-sandbox.conf: -------------------------------------------------------------------------------- 1 | FEATURES="${FEATURES} -network-sandbox" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/npm-secaudit-no-die-on-audit.conf: -------------------------------------------------------------------------------- 1 | NPM_SECAUDIT_NO_DIE_ON_AUDIT=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/march.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="-march=native" 2 | CXXFLAGS="${CFLAGS}" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/cfi-canonical-jump-tables.conf: -------------------------------------------------------------------------------- 1 | CFI_CANONICAL_JUMP_TABLES="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/march.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="-march=native" 2 | CXXFLAGS="${CFLAGS}" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/remove-omit-frame-pointer.conf: -------------------------------------------------------------------------------- 1 | REMOVE_OMIT_FRAME_POINTER="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/skip-lib-correctness-check.conf: -------------------------------------------------------------------------------- 1 | SKIP_LIB_CORRECTNESS_CHECK=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/cfi-canonical-jump-tables.conf: -------------------------------------------------------------------------------- 1 | CFI_CANONICAL_JUMP_TABLES="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/march.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="-march=native" 2 | CXXFLAGS="${CFLAGS}" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/remove-omit-frame-pointer.conf: -------------------------------------------------------------------------------- 1 | REMOVE_OMIT_FRAME_POINTER="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/skip-lib-correctness-check.conf: -------------------------------------------------------------------------------- 1 | SKIP_LIB_CORRECTNESS_CHECK=1 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/harfbuzz.conf: -------------------------------------------------------------------------------- 1 | CPPFLAGS="${CPPFLAGS} -DCOLRV1_DISABLE_SUBSETTING=0" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/j3.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, with thrashing 2 | MAKEOPTS="${MAKEOPTS} -j3" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/npm-allow-session-replay.conf: -------------------------------------------------------------------------------- 1 | ELECTRON_APP_SESSION_REPLAY="allow" 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/O0.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -O0" 2 | CXXFLAGS="${CXXFLAGS} -O0" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/O1.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -O1" 2 | CXXFLAGS="${CXXFLAGS} -O1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/binutils-gold-default.conf: -------------------------------------------------------------------------------- 1 | EXTRA_ECONF="--enable-gold=default" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-perl-makemaker-autoedit.conf: -------------------------------------------------------------------------------- 1 | PERL_MAKEMAKER_AUTOEDIT="0" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/enable-perl-makemaker-autoedit.conf: -------------------------------------------------------------------------------- 1 | PERL_MAKEMAKER_AUTOEDIT="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-cfi-canonical-jump-tables.conf: -------------------------------------------------------------------------------- 1 | CFI_CANONICAL_JUMP_TABLES="0" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-perl-makemaker-autoedit.conf: -------------------------------------------------------------------------------- 1 | PERL_MAKEMAKER_AUTOEDIT="0" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/enable-perl-makemaker-autoedit.conf: -------------------------------------------------------------------------------- 1 | PERL_MAKEMAKER_AUTOEDIT="1" 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-cfi-canonical-jump-tables.conf: -------------------------------------------------------------------------------- 1 | CFI_CANONICAL_JUMP_TABLES="0" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/ggdb3.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -ggdb3" 2 | CXXFLAGS="${CXXFLAGS} -ggdb3" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/obs-studio.conf: -------------------------------------------------------------------------------- 1 | #OBS_STUDIO_STREAMING_SERVICES_WHITELIST="" # Examples 2 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/fpic.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fPIC" 2 | CXXFLAGS="${CXXFLAGS} -fPIC" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j3.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, with thrashing 2 | MAKEOPTS="${MAKEOPTS} -j3" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/pipe.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -pipe" 2 | CXXFLAGS="${CXXFLAGS} -pipe" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-override-compiler-check.conf: -------------------------------------------------------------------------------- 1 | DISABLE_OVERRIDE_COMPILER_CHECK=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/pipe.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -pipe" 2 | CXXFLAGS="${CXXFLAGS} -pipe" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-override-compiler-check.conf: -------------------------------------------------------------------------------- 1 | DISABLE_OVERRIDE_COMPILER_CHECK=1 2 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/pipe.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -pipe" 2 | CXXFLAGS="${CXXFLAGS} -pipe" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/closure-compiler-npm.conf: -------------------------------------------------------------------------------- 1 | export CLOSURE_COMPILER_NPM_LD_PRELOAD_RISKS="allow" 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/j1.conf: -------------------------------------------------------------------------------- 1 | # For 1 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j1" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j12.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 2 threads per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j6" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j2.conf: -------------------------------------------------------------------------------- 1 | # For 2 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j2" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j4.conf: -------------------------------------------------------------------------------- 1 | # For 4 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j4" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j6.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j6" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold.conf: -------------------------------------------------------------------------------- 1 | # Gold is single thread by default. 2 | LDFLAGS="${LDFLAGS} -fuse-ld=gold" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j24.conf: -------------------------------------------------------------------------------- 1 | # For 12 core, 2 threads per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j24" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j1.conf: -------------------------------------------------------------------------------- 1 | # For 1 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j12.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 2 threads per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j6" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j2.conf: -------------------------------------------------------------------------------- 1 | # For 2 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j2" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j4.conf: -------------------------------------------------------------------------------- 1 | # For 4 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j4" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j6.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 1 thread per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j6" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/python.conf: -------------------------------------------------------------------------------- 1 | # x86 is no; arm is no or yes 2 | ax_cv_c_float_words_bigendian=no 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang-cfi.conf: -------------------------------------------------------------------------------- 1 | # This is to prevent switching to GCC 2 | USE_CLANG_CFI=1 3 | 4 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/python.conf: -------------------------------------------------------------------------------- 1 | # x86 is no; arm is no or yes 2 | ax_cv_c_float_words_bigendian=no 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang-cfi.conf: -------------------------------------------------------------------------------- 1 | # This is to prevent switching to GCC 2 | USE_CLANG_CFI=1 3 | 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/firefox.conf: -------------------------------------------------------------------------------- 1 | #CFLAGS="${CFLAGS}" 2 | #CXXFLAGS="${CXXFLAGS}" 3 | #LDFLAGS="${LDFLAGS}" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/fast-math.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -ffast-math" 2 | CXXFLAGS="${CXXFLAGS} -ffast-math" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold.conf: -------------------------------------------------------------------------------- 1 | # Gold is single thread by default. 2 | LDFLAGS="${LDFLAGS} -fuse-ld=gold" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j24.conf: -------------------------------------------------------------------------------- 1 | # For 12 core, 2 threads per core (tpc) 2 | MAKEOPTS="${MAKEOPTS} -j24" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-souper.conf: -------------------------------------------------------------------------------- 1 | # Use Souper overoptimization for code reduction 2 | USE_SOUPER="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-wc-bfd.conf: -------------------------------------------------------------------------------- 1 | # For problems with libtool 2 | LDFLAGS="${LDFLAGS} -Wc,-fuse-ld=bfd" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-wc-lld.conf: -------------------------------------------------------------------------------- 1 | # For problems with libtool 2 | LDFLAGS="${LDFLAGS} -Wc,-fuse-ld=lld" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-souper.conf: -------------------------------------------------------------------------------- 1 | # Use Souper overoptimization for code reduction 2 | USE_SOUPER="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-wc-bfd.conf: -------------------------------------------------------------------------------- 1 | # For problems with libtool 2 | LDFLAGS="${LDFLAGS} -Wc,-fuse-ld=bfd" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-wc-lld.conf: -------------------------------------------------------------------------------- 1 | # For problems with libtool 2 | LDFLAGS="${LDFLAGS} -Wc,-fuse-ld=lld" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/liri-session.conf: -------------------------------------------------------------------------------- 1 | #LIRI_SESSION_CURSOR_THEME="Paper" 2 | LIRI_SESSION_CURSOR_THEME="Adwaita" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/npm-allow-analytics.conf: -------------------------------------------------------------------------------- 1 | ELECTRON_APP_ANALYTICS="allow" 2 | NPM_SECAUDIT_ANALYTICS="allow" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/O1.conf: -------------------------------------------------------------------------------- 1 | # -O1 is for optimizations without the heavy time cost. 2 | 3 | OPT_LEVEL="-O1" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/clang-retpoline.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mretpoline" 2 | CXXFLAGS="${CXXFLAGS} -mretpoline" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-souper.conf: -------------------------------------------------------------------------------- 1 | # Disable Souper overoptimization for code reduction 2 | USE_SOUPER="0" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-gcc-oom.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="oom" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-wc-gold.conf: -------------------------------------------------------------------------------- 1 | # For problems with libtool 2 | LDFLAGS="${LDFLAGS} -Wc,-fuse-ld=gold" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/O1.conf: -------------------------------------------------------------------------------- 1 | # -O1 is for optimizations without the heavy time cost. 2 | 3 | OPT_LEVEL="-O1" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/clang-retpoline.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mretpoline" 2 | CXXFLAGS="${CXXFLAGS} -mretpoline" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-souper.conf: -------------------------------------------------------------------------------- 1 | # Disable Souper overoptimization for code reduction 2 | USE_SOUPER="0" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-gcc-oom.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="oom" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-wc-gold.conf: -------------------------------------------------------------------------------- 1 | # For problems with libtool 2 | LDFLAGS="${LDFLAGS} -Wc,-fuse-ld=gold" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-bti.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+bti" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/ssp-basic.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fstack-protector" 2 | CXXFLAGS="${CXXFLAGS} -fstack-protector" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/clang-retpoline.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mretpoline" 2 | CXXFLAGS="${CXXFLAGS} -mretpoline" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-gcc-broken.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="broken" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-gcc-normal.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="normal" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-gcc-plain.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="plain" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-gcc-swappy.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="swappy" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-gcc-broken.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="broken" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-gcc-normal.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="normal" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-gcc-plain.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="plain" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-gcc-swappy.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | MAKEOPTS_MODE_GCC="swappy" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/mold-1-thread.conf: -------------------------------------------------------------------------------- 1 | # Use only if severe thrashing or error related 2 | LDFLAGS="${LDFLAGS} --no-threads" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-full-relro.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | RUSTFLAGS="${RUSTFLAGS} -C relro-level=full" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-pac-ret.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+pac-ret" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/ssp-all.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fstack-protector-all" 2 | CXXFLAGS="${CXXFLAGS} -fstack-protector-all" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-clang-oom.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="oom" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/pesign.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -Wno-macro-redefined" 2 | CXXFLAGS="${CXXFLAGS} -Wno-macro-redefined" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-clang-oom.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="oom" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/pesign.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -Wno-macro-redefined" 2 | CXXFLAGS="${CXXFLAGS} -Wno-macro-redefined" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/full-relro.conf: -------------------------------------------------------------------------------- 1 | # Adds Full Relro to mitigate ZC, CE, PE, DT 2 | LDFLAGS="${LDFLAGS} -Wl,-z,relro -Wl,-z,now" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-1-thread.conf: -------------------------------------------------------------------------------- 1 | # Use only if severe thrashing or error related 2 | LDFLAGS="${LDFLAGS} -Wl,--no-threads" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-3-threads.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, with thrashing 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,3" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/lld-1-thread.conf: -------------------------------------------------------------------------------- 1 | # Use only if severe thrashing or error related 2 | LDFLAGS="${LDFLAGS} -Wl,--threads=1" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-cfi.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=cfi" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-retpoline.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+retpoline" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-lto-stripping.conf: -------------------------------------------------------------------------------- 1 | # Use this to disable auto removal of LTO flags 2 | DISABLE_LTO_STRIPPING=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-clang-broken.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="broken" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-clang-normal.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="normal" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-clang-plain.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="plain" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-clang-swappy.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="swappy" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/rename-registers.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -frename-registers" 2 | CXXFLAGS="${CXXFLAGS} -frename-registers" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/skipless.conf: -------------------------------------------------------------------------------- 1 | # Prevent use of clang for so we can use gcc's -fprefetch-loop-arrays 2 | GCF_IS_SKIPLESS=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/souper-size.conf: -------------------------------------------------------------------------------- 1 | # Adds Souper static profile counters related to size reduction 2 | USE_SOUPER_SIZE="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-lto-stripping.conf: -------------------------------------------------------------------------------- 1 | # Use this to disable auto removal of LTO flags 2 | DISABLE_LTO_STRIPPING=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-clang-broken.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="broken" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-clang-normal.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="normal" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-clang-plain.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="plain" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-clang-swappy.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | MAKEOPTS_MODE_CLANG="swappy" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/rename-registers.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -frename-registers" 2 | CXXFLAGS="${CXXFLAGS} -frename-registers" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/skipless.conf: -------------------------------------------------------------------------------- 1 | # Prevent use of clang for so we can use gcc's -fprefetch-loop-arrays 2 | GCF_IS_SKIPLESS=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/souper-size.conf: -------------------------------------------------------------------------------- 1 | # Adds Souper static profile counters related to size reduction 2 | USE_SOUPER_SIZE="1" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-bfdlto.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -flto" 2 | CXXFLAGS="${CXXFLAGS} -flto" 3 | LDFLAGS="${LDFLAGS} -fuse-ld=bfd" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-goldlto.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -flto" 2 | CXXFLAGS="${CXXFLAGS} -flto" 3 | LDFLAGS="${LDFLAGS} -fuse-ld=gold" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-pac-ret-bti.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+pac-ret,+bti" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/ssp-strong.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fstack-protector-strong" 2 | CXXFLAGS="${CXXFLAGS} -fstack-protector-strong" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-1-thread.conf: -------------------------------------------------------------------------------- 1 | # Use only if severe thrashing or error related 2 | LDFLAGS="${LDFLAGS} -Wl,--no-threads" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-3-threads.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, with thrashing 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,3" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/lld-1-thread.conf: -------------------------------------------------------------------------------- 1 | # Use only if severe thrashing or error related 2 | LDFLAGS="${LDFLAGS} -Wl,--threads=1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/rename-registers.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -frename-registers" 2 | CXXFLAGS="${CXXFLAGS} -frename-registers" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/rust.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -Wno-implicit-fallthrough" 2 | CXXFLAGS="${CXXFLAGS} -Wno-implicit-fallthrough" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/omit-frame-pointer.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fomit-frame-pointer" 2 | CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/rust.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -Wno-implicit-fallthrough" 2 | CXXFLAGS="${CXXFLAGS} -Wno-implicit-fallthrough" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/souper-speed.conf: -------------------------------------------------------------------------------- 1 | # Adds Souper dynamic profile counters related to execution speed 2 | USE_SOUPER_SPEED="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/stc.conf: -------------------------------------------------------------------------------- 1 | # Optimize branching with a duplicate code space cost tradeoff 2 | FREORDER_BLOCKS_ALGORITHM="stc" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/omit-frame-pointer.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fomit-frame-pointer" 2 | CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/rust.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -Wno-implicit-fallthrough" 2 | CXXFLAGS="${CXXFLAGS} -Wno-implicit-fallthrough" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/souper-speed.conf: -------------------------------------------------------------------------------- 1 | # Adds Souper dynamic profile counters related to execution speed 2 | USE_SOUPER_SPEED="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/stc.conf: -------------------------------------------------------------------------------- 1 | # Optimize branching with a duplicate code space cost tradeoff 2 | FREORDER_BLOCKS_ALGORITHM="stc" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-2-threads.conf: -------------------------------------------------------------------------------- 1 | # For 2 core, 1 thread per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,2" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-4-threads.conf: -------------------------------------------------------------------------------- 1 | # For 4 core, 1 thread per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,4" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-6-threads.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 1 thread per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,6" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j8.conf: -------------------------------------------------------------------------------- 1 | # For 4 core, 2 thread per core (tpc) 2 | # For 8 core, 1 thread per core (tpc) 3 | MAKEOPTS="${MAKEOPTS} -j8" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-ssp-all.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z stack-protector=all" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-ssp-basic.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z stack-protector=basic" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/sccache.conf: -------------------------------------------------------------------------------- 1 | RUSTC_WRAPPER=/usr/bin/sccache 2 | SCCACHE_DIR=/var/cache/sccache 3 | SCCACHE_MAX_FRAME_LENGTH=104857600 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/somebar.conf: -------------------------------------------------------------------------------- 1 | SOMEBAR_FONT="Monospace 9" 2 | SOMEBAR_TERMCMD="st" 3 | SOMEBAR_PADDINGX="10" 4 | SOMEBAR_PADDINGY="3" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/thinlto.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -flto=thin" 2 | CXXFLAGS="${CXXFLAGS} -flto=thin" 3 | LDFLAGS="${LDFLAGS} -fuse-ld=lld" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/omit-frame-pointer.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fomit-frame-pointer" 2 | CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/cfi-cast-strict.conf: -------------------------------------------------------------------------------- 1 | # This makes the cast checks stronger. The default is to relax them. 2 | CFI_CAST_STRICT="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/cfi-cast-strict.conf: -------------------------------------------------------------------------------- 1 | # This makes the cast checks stronger. The default is to relax them. 2 | CFI_CAST_STRICT="1" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-bfdlto.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -flto=full" 2 | CXXFLAGS="${CXXFLAGS} -flto=full" 3 | LDFLAGS="${LDFLAGS} -fuse-ld=bfd" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/enigma-commit.conf: -------------------------------------------------------------------------------- 1 | #EGIT_OVERRIDE_COMMIT_ENIGMA_DEV_ENIGMA_DEV="2ddad078c6cd355dcaa45996cf9f3a49df020102" # For RadialGM 2 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-12-threads.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 2 threads per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,12" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-24-threads.conf: -------------------------------------------------------------------------------- 1 | # For 12 core, 2 threads per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,24" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/j16.conf: -------------------------------------------------------------------------------- 1 | # For 8 core, 2 threads per core (tpc) 2 | # For 16 core, 1 threads per core (tpc) 3 | MAKEOPTS="${MAKEOPTS} -j16" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/j32.conf: -------------------------------------------------------------------------------- 1 | # For 16 core, 2 threads per core (tpc) 2 | # For 32 core, 1 threads per core (tpc) 3 | MAKEOPTS="${MAKEOPTS} -j32" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-ssp-strong.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z stack-protector=strong" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-2-threads.conf: -------------------------------------------------------------------------------- 1 | # For 2 core, 1 thread per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,2" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-4-threads.conf: -------------------------------------------------------------------------------- 1 | # For 4 core, 1 thread per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,4" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-6-threads.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 1 thread per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,6" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-plt-retpoline.conf: -------------------------------------------------------------------------------- 1 | # Gold is single thread by default. 2 | LDFLAGS="${LDFLAGS} -fuse-ld=gold -Wl,-z,retpolineplt" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j8.conf: -------------------------------------------------------------------------------- 1 | # For 4 core, 2 thread per core (tpc) 2 | # For 8 core, 1 thread per core (tpc) 3 | MAKEOPTS="${MAKEOPTS} -j8" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-libcxx-as-default.conf: -------------------------------------------------------------------------------- 1 | # Use this if you cannot use libc++ for c++ based programs. 2 | USE_LIBCXX_AS_DEFAULT="0" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-libcxx-as-default.conf: -------------------------------------------------------------------------------- 1 | # Use this if you cannot use libc++ for c++ based programs. 2 | USE_LIBCXX_AS_DEFAULT="0" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-goldlto.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -flto=full" 2 | CXXFLAGS="${CXXFLAGS} -flto=full" 3 | LDFLAGS="${LDFLAGS} -fuse-ld=gold" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-no-sanitize-recover.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer-recover=off" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-12-threads.conf: -------------------------------------------------------------------------------- 1 | # For 6 core, 2 threads per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,12" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-24-threads.conf: -------------------------------------------------------------------------------- 1 | # For 12 core, 2 threads per core (tpc) 2 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,24" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j16.conf: -------------------------------------------------------------------------------- 1 | # For 8 core, 2 threads per core (tpc) 2 | # For 16 core, 1 threads per core (tpc) 3 | MAKEOPTS="${MAKEOPTS} -j16" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/j32.conf: -------------------------------------------------------------------------------- 1 | # For 16 core, 2 threads per core (tpc) 2 | # For 32 core, 1 threads per core (tpc) 3 | MAKEOPTS="${MAKEOPTS} -j32" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/print-unroll-loops-stats.conf: -------------------------------------------------------------------------------- 1 | # For gcc only 2 | CFLAGS="${CFLAGS} -fopt-info-loop" 3 | CXXFLAGS="${CXXFLAGS} -fopt-info-loop" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/print-unroll-loops-stats.conf: -------------------------------------------------------------------------------- 1 | # For gcc only 2 | CFLAGS="${CFLAGS} -fopt-info-loop" 3 | CXXFLAGS="${CXXFLAGS} -fopt-info-loop" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/no-debug.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fno-asynchronous-unwind-tables" 2 | CXXFLAGS="${CXXFLAGS} -fno-asynchronous-unwind-tables" 3 | 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/Oz.conf: -------------------------------------------------------------------------------- 1 | # O2 without vectorization. Clang only flag. 2 | 3 | # To see inlining add (-fopt-info-inline) 4 | 5 | OPT_LEVEL="-Oz" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-debug.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fno-asynchronous-unwind-tables" 2 | CXXFLAGS="${CXXFLAGS} -fno-asynchronous-unwind-tables" 3 | 4 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/Oz.conf: -------------------------------------------------------------------------------- 1 | # O2 without vectorization. Clang only flag. 2 | 3 | # To see inlining add (-fopt-info-inline) 4 | 5 | OPT_LEVEL="-Oz" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-debug.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fno-asynchronous-unwind-tables" 2 | CXXFLAGS="${CXXFLAGS} -fno-asynchronous-unwind-tables" 3 | 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-bti.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | # For JOP mitigation 3 | RUSTFLAGS="${RUSTFLAGS} -Z branch-protection=+bti" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/z-retpolineplt.conf: -------------------------------------------------------------------------------- 1 | # This requires lld or patched binutils with -z retpolineplt support. 2 | LDFLAGS="${LDFLAGS} -Wl,-z,retpolineplt" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/z-retpolineplt.conf: -------------------------------------------------------------------------------- 1 | # This requires lld or patched binutils with -z retpolineplt support. 2 | LDFLAGS="${LDFLAGS} -Wl,-z,retpolineplt" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/vtable-verify-std.conf: -------------------------------------------------------------------------------- 1 | # Mitigates against ZC, CE, PE 2 | CFLAGS="${CFLAGS} -fvtable-verify=std" 3 | CXXFLAGS="${CXXFLAGS} -fvtable-verify=std" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/no-allow-store-data-races.conf: -------------------------------------------------------------------------------- 1 | # This could be used when -Ofast is building against a threaded package. 2 | NO_ALLOW_STORE_DATA_RACES="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/wmname.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -m64" 2 | CXXFLAGS="${CXXFLAGS} -m64" 3 | LDFLAGS="${LDFLAGS} -m64 -L/usr/lib64" 4 | LDEMULATION="elf_x86_64" 5 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/no-allow-store-data-races.conf: -------------------------------------------------------------------------------- 1 | # This could be used when -Ofast is building against a threaded package. 2 | NO_ALLOW_STORE_DATA_RACES="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/wmname.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -m64" 2 | CXXFLAGS="${CXXFLAGS} -m64" 3 | LDFLAGS="${LDFLAGS} -m64 -L/usr/lib64" 4 | LDEMULATION="elf_x86_64" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-pac-ret.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | # For ROP mitigation 3 | RUSTFLAGS="${RUSTFLAGS} -Z branch-protection=+pac-ret" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/O2.conf: -------------------------------------------------------------------------------- 1 | # O2 does inlining 2 | 3 | # To see inlining add (-fopt-info-inline) 4 | 5 | CFLAGS="${CFLAGS} -O2" 6 | CXXFLAGS="${CXXFLAGS} -O2" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/disable-integrated-as.conf: -------------------------------------------------------------------------------- 1 | # Use this if Clang's integrated assembler won't work but the package requires GAS instead. 2 | DISABLE_INTEGRATED_AS="1" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/disable-integrated-as.conf: -------------------------------------------------------------------------------- 1 | # Use this if Clang's integrated assembler won't work but the package requires GAS instead. 2 | DISABLE_INTEGRATED_AS="1" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/O1.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -O1" 2 | CFLAGS="${CFLAGS} -O1" 3 | CXXFLAGS="${CXXFLAGS} -O1" 4 | FCFLAGS="${FCFLAGS} -O1" 5 | FFLAGS="${FFLAGS} -O1" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/O2.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -O2" 2 | CFLAGS="${CFLAGS} -O2" 3 | CXXFLAGS="${CXXFLAGS} -O2" 4 | FCFLAGS="${FCFLAGS} -O2" 5 | FFLAGS="${FFLAGS} -O2" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/Os.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -Os" 2 | CFLAGS="${CFLAGS} -Os" 3 | CXXFLAGS="${CXXFLAGS} -Os" 4 | FCFLAGS="${FCFLAGS} -Os" 5 | FFLAGS="${FFLAGS} -Os" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/Oz.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -Oz" 2 | CFLAGS="${CFLAGS} -Oz" 3 | CXXFLAGS="${CXXFLAGS} -Oz" 4 | FCFLAGS="${FCFLAGS} -Oz" 5 | FFLAGS="${FFLAGS} -Oz" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/bti.conf: -------------------------------------------------------------------------------- 1 | # Mitigations for JOP 2 | # Performance-critical 3 | CFLAGS="${CFLAGS} -mbranch-protection=bti" 4 | CXXFLAGS="${CXXFLAGS} -mbranch-protection=bti" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/fhardened.conf: -------------------------------------------------------------------------------- 1 | # It requires >= GCC 14.2 and >= -O1. 2 | # It doesn't work with Clang. 3 | CFLAGS="${CFLAGS} -fhardened" 4 | CXXFLAGS="${CXXFLAGS} -fhardened" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-overflow-checks.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | # For signed Integer Overflow (IO) mitigation 3 | RUSTFLAGS="${RUSTFLAGS} -C overflow-checks=on" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/bypass-fallow-store-data-races-check.conf: -------------------------------------------------------------------------------- 1 | # It is safe to disable if the global data is not accessed by threads. 2 | DISABLE_FALLOW_STORE_DATA_RACES_CHECK=1 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/bypass-fallow-store-data-races-check.conf: -------------------------------------------------------------------------------- 1 | # It is safe to disable if the global data is not accessed by threads. 2 | DISABLE_FALLOW_STORE_DATA_RACES_CHECK=1 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-16-threads.conf: -------------------------------------------------------------------------------- 1 | # For 8 core, 2 threads per core (tpc) 2 | # For 16 core, 1 threads per core (tpc) 3 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,16" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-8-threads.conf: -------------------------------------------------------------------------------- 1 | # For 8 core, 1 thread per core (tpc) 2 | # For 4 core, 2 threads per core (tpc) 3 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,8" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/gold-32-threads.conf: -------------------------------------------------------------------------------- 1 | # For 16 core, 2 threads per core (tpc) 2 | # For 32 core, 1 threads per core (tpc) 3 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,32" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-16-threads.conf: -------------------------------------------------------------------------------- 1 | # For 8 core, 2 threads per core (tpc) 2 | # For 16 core, 1 threads per core (tpc) 3 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,16" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-8-threads.conf: -------------------------------------------------------------------------------- 1 | # For 8 core, 1 thread per core (tpc) 2 | # For 4 core, 2 threads per core (tpc) 3 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,8" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/Oshit.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -Oshit" 2 | CFLAGS="${CFLAGS} -Oshit" 3 | CXXFLAGS="${CXXFLAGS} -Oshit" 4 | FCFLAGS="${FCFLAGS} -Oshit" 5 | FFLAGS="${FFLAGS} -Oshit" 6 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gold-32-threads.conf: -------------------------------------------------------------------------------- 1 | # For 16 core, 2 threads per core (tpc) 2 | # For 32 core, 1 threads per core (tpc) 3 | LDFLAGS="${LDFLAGS} -Wl,--threads -Wl,--thread-count,32" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-11.conf: -------------------------------------------------------------------------------- 1 | CC="gcc-11" 2 | CXX="g++-11" 3 | CPP="${CC} -E" 4 | AR="ar" 5 | NM="nm" 6 | OBJCOPY="objcopy" 7 | OBJDUMP="objdump" 8 | READELF="readelf" 9 | STRIP="strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-12.conf: -------------------------------------------------------------------------------- 1 | CC="gcc-12" 2 | CXX="g++-12" 3 | CPP="${CC} -E" 4 | AR="ar" 5 | NM="nm" 6 | OBJCOPY="objcopy" 7 | OBJDUMP="objdump" 8 | READELF="readelf" 9 | STRIP="strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-13.conf: -------------------------------------------------------------------------------- 1 | CC="gcc-13" 2 | CXX="g++-13" 3 | CPP="${CC} -E" 4 | AR="ar" 5 | NM="nm" 6 | OBJCOPY="objcopy" 7 | OBJDUMP="objdump" 8 | READELF="readelf" 9 | STRIP="strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-14.conf: -------------------------------------------------------------------------------- 1 | CC="gcc-14" 2 | CXX="g++-14" 3 | CPP="${CC} -E" 4 | AR="ar" 5 | NM="nm" 6 | OBJCOPY="objcopy" 7 | OBJDUMP="objdump" 8 | READELF="readelf" 9 | STRIP="strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-15.conf: -------------------------------------------------------------------------------- 1 | CC="gcc-15" 2 | CXX="g++-15" 3 | CPP="${CC} -E" 4 | AR="ar" 5 | NM="nm" 6 | OBJCOPY="objcopy" 7 | OBJDUMP="objdump" 8 | READELF="readelf" 9 | STRIP="strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-stack-probe.conf: -------------------------------------------------------------------------------- 1 | # Compatible with Rust stable. 2 | # For stack clash attack and Stack Overflow (SO) mitigation 3 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+stack-probe" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gcc-retpoline-thunk.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mindirect-branch=thunk -mindirect-branch-register" 2 | CXXFLAGS="${CXXFLAGS} -mindirect-branch=thunk -mindirect-branch-register" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/gcc-retpoline-thunk.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mindirect-branch=thunk -mindirect-branch-register" 2 | CXXFLAGS="${CXXFLAGS} -mindirect-branch=thunk -mindirect-branch-register" 3 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/gcc-retpoline-thunk.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mindirect-branch=thunk -mindirect-branch-register" 2 | CXXFLAGS="${CXXFLAGS} -mindirect-branch=thunk -mindirect-branch-register" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/pac-ret.conf: -------------------------------------------------------------------------------- 1 | # Mitigations for partial Heap Overflow (HO), ROP 2 | # Balanced 3 | CFLAGS="${CFLAGS} -mbranch-protection=pac-ret" 4 | CXXFLAGS="${CXXFLAGS} -mbranch-protection=pac-ret" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-pac-ret-bti.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | # For security-critical, ROP and JOP mitigation 3 | RUSTFLAGS="${RUSTFLAGS} -Z branch-protection=+pac-ret,+bti" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-source-2.conf: -------------------------------------------------------------------------------- 1 | # _FORTIFY_SOURCE is a poor man's ASan. 2 | CFLAGS="${CFLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" 3 | CXXFLAGS="${CXXFLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-source-3.conf: -------------------------------------------------------------------------------- 1 | # _FORTIFY_SOURCE is a poor man's ASan. 2 | CFLAGS="${CFLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3" 3 | CXXFLAGS="${CXXFLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/sys-apps/apparmor: -------------------------------------------------------------------------------- 1 | [cfi-nvcall|cfi-vcall] 2 | type:*basic_stringstream* 3 | type:*basic_streambuf* 4 | type:*basic_ostream* 5 | type:*basic_ostringstream* 6 | type:*ios_base* 7 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/sys-apps/apparmor: -------------------------------------------------------------------------------- 1 | [cfi-nvcall|cfi-vcall] 2 | type:*basic_stringstream* 3 | type:*basic_streambuf* 4 | type:*basic_ostream* 5 | type:*basic_ostringstream* 6 | type:*ios_base* 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-allow-store-data-races.conf: -------------------------------------------------------------------------------- 1 | # Mitigates DoS, DT with -Ofast for security-critical package. 2 | CFLAGS="${CFLAGS} -fno-allow-store-data-races" 3 | CXXFLAGS="${CXXFLAGS} -fno-allow-store-data-races" 4 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gcc-retpoline-thunk-extern.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mindirect-branch=thunk-extern -mindirect-branch-register" 2 | CXXFLAGS="${CXXFLAGS} -mindirect-branch=thunk-extern -mindirect-branch-register" 3 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/gcc-retpoline-thunk-inline.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -mindirect-branch=thunk-inline -mindirect-branch-register" 2 | CXXFLAGS="${CXXFLAGS} -mindirect-branch=thunk-inline -mindirect-branch-register" 3 | -------------------------------------------------------------------------------- /profiles/gaming/env/bolt.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fno-reorder-blocks-and-partition" 2 | CXXFLAGS="${CXXFLAGS} -fno-reorder-blocks-and-partition" 3 | LDFLAGS="${LDFLAGS} -fno-reorder-blocks-and-partition -Wl,--emit-relocs" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/fast-math.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -ffast-math" 2 | CFLAGS="${CFLAGS} -ffast-math" 3 | CXXFLAGS="${CXXFLAGS} -ffast-math" 4 | FCFLAGS="${FCFLAGS} -ffast-math" 5 | FFLAGS="${FFLAGS} -ffast-math" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/fast-math.conf: -------------------------------------------------------------------------------- 1 | # Uses 2 | # statistics (averages, probability) 3 | # scaling images/audio 4 | # image/audio processing 5 | 6 | CFLAGS="${CFLAGS} -ffast-math" 7 | CXXFLAGS="${CXXFLAGS} -ffast-math" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-gcc.conf: -------------------------------------------------------------------------------- 1 | USE_GCC=1 2 | CC=gcc 3 | CXX=g++ 4 | CPP="${CC} -E" 5 | AR=ar 6 | AS=as 7 | NM=nm 8 | OBJCOPY=objcopy 9 | OBJDUMP=objdump 10 | RANLIB=ranlib 11 | READELF=readelf 12 | STRIP=strip 13 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/fast-math.conf: -------------------------------------------------------------------------------- 1 | # Uses 2 | # statistics (averages, probability) 3 | # scaling images/audio 4 | # image/audio processing 5 | 6 | CFLAGS="${CFLAGS} -ffast-math" 7 | CXXFLAGS="${CXXFLAGS} -ffast-math" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-gcc.conf: -------------------------------------------------------------------------------- 1 | USE_GCC=1 2 | CC=gcc 3 | CXX=g++ 4 | CPP="${CC} -E" 5 | AR=ar 6 | AS=as 7 | NM=nm 8 | OBJCOPY=objcopy 9 | OBJDUMP=objdump 10 | RANLIB=ranlib 11 | READELF=readelf 12 | STRIP=strip 13 | -------------------------------------------------------------------------------- /profiles/gaming/env/cf-protection-full.conf: -------------------------------------------------------------------------------- 1 | # Adds mitigation against hijacked control flow or ROP attacks with hardware accelerated CET. 2 | CFLAGS="${CFLAGS} -fcf-protection=full" 3 | CXXFLAGS="${CXXFLAGS} -fcf-protection=full" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang.conf: -------------------------------------------------------------------------------- 1 | CC="clang" 2 | CXX="clang++" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/mindirect-branch-ibrs.conf: -------------------------------------------------------------------------------- 1 | # Adds hardware accelerated Spectre v2 mitigation against Information Disclosure (ID). 2 | CFLAGS="${CFLAGS} -mindirect-branch=ibrs" 3 | CXXFLAGS="${CXXFLAGS} -mindirect-branch=ibrs" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/pac-ret-bti.conf: -------------------------------------------------------------------------------- 1 | # Mitigations for partial Heap Overflow (HO), JOP, ROP 2 | # Security-critical 3 | CFLAGS="${CFLAGS} -mbranch-protection=pac-ret+bti" 4 | CXXFLAGS="${CXXFLAGS} -mbranch-protection=pac-ret+bti" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/trapv.conf: -------------------------------------------------------------------------------- 1 | # Adds Integer Overflow (IO) mitigation. 2 | # Mitigates against ZC, CE, PE, DoS, DT, ID. 3 | # For comprehensive mitigation, see UBSan. 4 | CFLAGS="${CFLAGS} -ftrapv" 5 | CXXFLAGS="${CXXFLAGS} -ftrapv" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-14.conf: -------------------------------------------------------------------------------- 1 | CC="clang-14" 2 | CXX="clang++-14" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-15.conf: -------------------------------------------------------------------------------- 1 | CC="clang-15" 2 | CXX="clang++-15" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-16.conf: -------------------------------------------------------------------------------- 1 | CC="clang-16" 2 | CXX="clang++-16" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-17.conf: -------------------------------------------------------------------------------- 1 | CC="clang-17" 2 | CXX="clang++-17" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-18.conf: -------------------------------------------------------------------------------- 1 | CC="clang-18" 2 | CXX="clang++-18" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-19.conf: -------------------------------------------------------------------------------- 1 | CC="clang-19" 2 | CXX="clang++-19" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/clang-20.conf: -------------------------------------------------------------------------------- 1 | CC="clang-20" 2 | CXX="clang++-20" 3 | CPP="${CC} -E" 4 | AR="llvm-ar" 5 | NM="llvm-nm" 6 | OBJCOPY="llvm-objcopy" 7 | OBJDUMP="llvm-objdump" 8 | READELF="llvm-readelf" 9 | STRIP="llvm-strip" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/liri-shell.conf: -------------------------------------------------------------------------------- 1 | #LIRI_SHELL_PINNED_LAUNCHERS="" 2 | LIRI_SHELL_DATE_TIME_FORMAT="ddd MMM dd h:mm:ss" 3 | #LIRI_SHELL_DATE_TIME_FORMAT="yyyyMMdd hh:mm:ss" 4 | #LIRI_SHELL_DATE_TIME_LOCALE_FORMAT="QLocale::LongFormat" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/march-native.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -march=native" 2 | CFLAGS="${CFLAGS} -march=native" 3 | CXXFLAGS="${CXXFLAGS} -march=native" 4 | FCFLAGS="${FCFLAGS} -march=native" 5 | FFLAGS="${FFLAGS} -march=native" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-safe-stack.conf: -------------------------------------------------------------------------------- 1 | # For partial backward-edge ROP mitigation and SO mitigation 2 | CFLAGS="${CFLAGS} -fsanitize=safe-stack" 3 | CXXFLAGS="${CXXFLAGS} -fsanitize=safe-stack" 4 | LDFLAGS="${LDFLAGS} -fsanitize=safe-stack" 5 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/bolt-app.conf: -------------------------------------------------------------------------------- 1 | # It shouldn't be necessary to change flags if the build scripts 2 | # or ebuild is built correctly with BOLT support. 3 | # This will add -fno-reorder-blocks-and-partition to *FLAGS 4 | BOLT_OPTIMIZED_APP="1" 5 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/bolt-app.conf: -------------------------------------------------------------------------------- 1 | # It shouldn't be necessary to change flags if the build scripts 2 | # or ebuild is built correctly with BOLT support. 3 | # This will add -fno-reorder-blocks-and-partition to *FLAGS 4 | BOLT_OPTIMIZED_APP="1" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/no-sanitize-recover.conf: -------------------------------------------------------------------------------- 1 | # Add flag to finalize sanitizer flags for production. 2 | # Halts ASan, UBSan, etc when violation encountered. 3 | CFLAGS="${CFLAGS} -fno-sanitize-recover" 4 | CXXFLAGS="${CXXFLAGS} -fno-sanitize-recover" 5 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/use-clang.conf: -------------------------------------------------------------------------------- 1 | CC=clang 2 | CXX=clang++ 3 | CPP="${CC} -E" 4 | AR=llvm-ar 5 | AS=llvm-as 6 | NM=llvm-nm 7 | OBJCOPY=llvm-objcopy 8 | OBJDUMP=llvm-objdump 9 | RANLIB=llvm-ranlib 10 | READELF=llvm-readelf 11 | STRIP=llvm-strip 12 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/use-clang.conf: -------------------------------------------------------------------------------- 1 | CC=clang 2 | CXX=clang++ 3 | CPP="${CC} -E" 4 | AR=llvm-ar 5 | AS=llvm-as 6 | NM=llvm-nm 7 | OBJCOPY=llvm-objcopy 8 | OBJDUMP=llvm-objdump 9 | RANLIB=llvm-ranlib 10 | READELF=llvm-readelf 11 | STRIP=llvm-strip 12 | -------------------------------------------------------------------------------- /profiles/gaming/env/O0.conf: -------------------------------------------------------------------------------- 1 | # For full debug or 2x build time 2 | # Do not use for security-critical packages. 3 | COMMON_FLAGS="${COMMON_FLAGS} -O0" 4 | CFLAGS="${CFLAGS} -O0" 5 | CXXFLAGS="${CXXFLAGS} -O0" 6 | FCFLAGS="${FCFLAGS} -O0" 7 | FFLAGS="${FFLAGS} -O0" 8 | -------------------------------------------------------------------------------- /profiles/gaming/env/noexecstack.conf: -------------------------------------------------------------------------------- 1 | # Add mitigation against ZC, CE, PE by marking stacks non-executable via linker or assembler. 2 | CFLAGS="${CFLAGS} -Wa,--noexecstack" 3 | CXXFLAGS="${CXXFLAGS} -Wa,--noexecstack" 4 | LDFLAGS="${LDFLAGS} -Wl,-z,noexecstack" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/stack-clash-protection.conf: -------------------------------------------------------------------------------- 1 | # Mitigates against Code Execution (CE), Privilege Escalation (PE), Denial of Service (DoS), Data Tampering (DT) 2 | CFLAGS="${CFLAGS} -fstack-clash-protection" 3 | CXXFLAGS="${CXXFLAGS} -fstack-clash-protection" 4 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/O2.conf: -------------------------------------------------------------------------------- 1 | # -O2 does inlining, very-cheap vectorization (SIMD) for use in shorter execution 2 | # times, but not autopar (multicore). 3 | 4 | # For autopar see multicoreloops.conf 5 | # To see inlining add (-fopt-info-inline) 6 | 7 | OPT_LEVEL="-O2" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/O3.conf: -------------------------------------------------------------------------------- 1 | # -O3 does inlining, dynamic vectorization (SIMD) for use in longer execution 2 | # times, but not autopar (multicore). 3 | 4 | # For autopar see multicoreloops.conf 5 | 6 | # To see inlining add (-fopt-info-inline) 7 | 8 | OPT_LEVEL="-O3" 9 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/O2.conf: -------------------------------------------------------------------------------- 1 | # -O2 does inlining, very-cheap vectorization (SIMD) for use in shorter execution 2 | # times, but not autopar (multicore). 3 | 4 | # For autopar see multicoreloops.conf 5 | # To see inlining add (-fopt-info-inline) 6 | 7 | OPT_LEVEL="-O2" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/O3.conf: -------------------------------------------------------------------------------- 1 | # -O3 does inlining, dynamic vectorization (SIMD) for use in longer execution 2 | # times, but not autopar (multicore). 3 | 4 | # For autopar see multicoreloops.conf 5 | 6 | # To see inlining add (-fopt-info-inline) 7 | 8 | OPT_LEVEL="-O3" 9 | -------------------------------------------------------------------------------- /profiles/gaming/env/O3.conf: -------------------------------------------------------------------------------- 1 | # Do not use for security-critical packages. 2 | # Using -O3 will degrade the _FORTIFY_SOURCE fixes. 3 | COMMON_FLAGS="${COMMON_FLAGS} -O3" 4 | CFLAGS="${CFLAGS} -O3" 5 | CXXFLAGS="${CXXFLAGS} -O3" 6 | FCFLAGS="${FCFLAGS} -O3" 7 | FFLAGS="${FFLAGS} -O3" 8 | -------------------------------------------------------------------------------- /profiles/gaming/env/O4.conf: -------------------------------------------------------------------------------- 1 | # Do not use for security-critical packages. 2 | # Using -O4 will degrade the _FORTIFY_SOURCE fixes. 3 | COMMON_FLAGS="${COMMON_FLAGS} -O4" 4 | CFLAGS="${CFLAGS} -O4" 5 | CXXFLAGS="${CXXFLAGS} -O4" 6 | FCFLAGS="${FCFLAGS} -O4" 7 | FFLAGS="${FFLAGS} -O4" 8 | -------------------------------------------------------------------------------- /profiles/gaming/env/trivial-auto-var-init-zero.conf: -------------------------------------------------------------------------------- 1 | # Initizalize local variables to zero. 2 | # For mitigation against Information Disclosure (ID) and Undefined Behavior (UB) 3 | CFLAGS="${CFLAGS} -ftrivial-auto-var-init=zero" 4 | CXXFLAGS="${CXXFLAGS} -ftrivial-auto-var-init=zero" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/Wformat-security.conf: -------------------------------------------------------------------------------- 1 | # Mitigate against String Format Vulnerability during build time. 2 | # It requires the developer to manually fix the string format expression. 3 | CFLAGS="${CFLAGS} -Werror -Wformat-security" 4 | CXXFLAGS="${CXXFLAGS} -Werror -Wformat-security" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/dwm.conf: -------------------------------------------------------------------------------- 1 | #DWM_BLACKLISTED_DIFFS="dwm-alttab-20220709-d3f93c7.diff dwm-fibonacci-5.8.2.diff dwm-fibonacci-20200418-c82db69.diff dwm-alttab-20220709-d3f93c7.diff" 2 | #DWM_BLACKLISTED_DATE="20220101" 3 | #DWM_BLACKLISTED_VERSION="6.2" 4 | #DWM_BLACKLISTED_UNVERSION="1" 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/prefetch-loop-arrays.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="${COMMON_FLAGS} -fprefetch-loop-arrays" 2 | CFLAGS="${CFLAGS} -fprefetch-loop-arrays" 3 | CXXFLAGS="${CXXFLAGS} -fprefetch-loop-arrays" 4 | FCFLAGS="${FCFLAGS} -fprefetch-loop-arrays" 5 | FFLAGS="${FFLAGS} -fprefetch-loop-arrays" 6 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/O3.conf: -------------------------------------------------------------------------------- 1 | # O3 does inlining, vectorization (SIMD), but not autopar (multicore). 2 | # For autopar see multicoreloops.conf 3 | 4 | # To see inlining add (-fopt-info-inline) 5 | 6 | CFLAGS="${CFLAGS} -O3 -fopt-info-vec" 7 | CXXFLAGS="${CXXFLAGS} -O3 -fopt-info-vec" 8 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-lto.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE with LTO 2 | CFLAGS="${CFLAGS} -fno-lto-promote-static-vtables -fno-whole-program-vtables -fno-ipa-cp -fno-ipa-icf" 3 | CXXFLAGS="${CXXFLAGS} -fno-lto-promote-static-vtables -fno-whole-program-vtables -fno-ipa-cp -fno-ipa-icf" 4 | -------------------------------------------------------------------------------- /profiles/gaming/env/indirect-branch-register.conf: -------------------------------------------------------------------------------- 1 | # Mitigation for Code Execution (CE), Information Disclosure (ID), and partially Zero Click Attack (ZCA) but related to GCC Retpoline. 2 | # Not supported on Clang. 3 | CFLAGS="${CFLAGS} -mindirect-branch-register" 4 | CXXFLAGS="${CXXFLAGS} -mindirect-branch-register" 5 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/linker-errors-as-warnings.conf: -------------------------------------------------------------------------------- 1 | # Only allowed for packages without executibles 2 | # and the following error: 3 | # error: undefined reference to '__ubsan_handle_cfi_check_fail_abort' 4 | # This gets resolved by LD_PRELOAD or by linking the ubsan lib with the executible. 5 | LINKER_ERRORS_AS_WARNINGS="1" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/linker-errors-as-warnings.conf: -------------------------------------------------------------------------------- 1 | # Only allowed for packages without executibles 2 | # and the following error: 3 | # error: undefined reference to '__ubsan_handle_cfi_check_fail_abort' 4 | # This gets resolved by LD_PRELOAD or by linking the ubsan lib with the executible. 5 | LINKER_ERRORS_AS_WARNINGS="1" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-1-gcc.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For trusted data packages 3 | # You must use with -O1 or -O2 with GCC to maintain ~90% integrity of _FORTIFY_SOURCE. 4 | CFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-loop-optimize" 5 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-loop-optimize" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/Ofast.conf: -------------------------------------------------------------------------------- 1 | # Do not use for security-critical packages or packages that require high uptime. 2 | # Using -Ofast will degrade the _FORTIFY_SOURCE fixes. 3 | COMMON_FLAGS="${COMMON_FLAGS} -Ofast" 4 | CFLAGS="${CFLAGS} -Ofast" 5 | CXXFLAGS="${CXXFLAGS} -Ofast" 6 | FCFLAGS="${FCFLAGS} -Ofast" 7 | FFLAGS="${FFLAGS} -Ofast" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/O0.conf: -------------------------------------------------------------------------------- 1 | # -O0 is typically used for debugging broken default ON flags or build time 2 | # optimized configurations accepting lowered security risk. 3 | 4 | # Do not use -O0 if using variation of _FORTIFY_SOURCE in project with system 5 | # designed for secure configurations. It will lower security. 6 | 7 | OPT_LEVEL="-O0" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/O0.conf: -------------------------------------------------------------------------------- 1 | # -O0 is typically used for debugging broken default ON flags or build time 2 | # optimized configurations accepting lowered security risk. 3 | 4 | # Do not use -O0 if using variation of _FORTIFY_SOURCE in project with system 5 | # designed for secure configurations. It will lower security. 6 | 7 | OPT_LEVEL="-O0" 8 | -------------------------------------------------------------------------------- /profiles/minmax-v2/testing.lst: -------------------------------------------------------------------------------- 1 | # Testing (Flags are in testing or not final) 2 | # If blender fails, uncomment the entire group below. 3 | # CFIed blender hasn't been tested yet. 4 | #media-gfx/blender use-clang.conf remove-lto.conf disable-clang-cfi.conf # [Err 7] still in dependencies while disable-clang-cfi.conf is applied to the blender package 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-1-clang.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For trusted data packages 3 | # You must use with -O1 or -O2 with Clang to maintain ~90% integrity of _FORTIFY_SOURCE. 4 | CFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-loop-optimizations" 5 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-loop-optimizations" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/retpoline-clang-speed.conf: -------------------------------------------------------------------------------- 1 | # Add mitigation against Spectre v2, a Information Disclosure (ID) type of attack. 2 | # Designed for execution speed, for non-embedded devices. 3 | # -mretpoline is mutually exclusive with -fcf-protection. 4 | CFLAGS="${CFLAGS} -mretpoline" 5 | CXXFLAGS="${CXXFLAGS} -mretpoline" 6 | LDFLAGS="${LDFLAGS} -Wl,-z,retpolineplt" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package_env-header.txt: -------------------------------------------------------------------------------- 1 | # Generated by gen_package_env.sh 2 | 3 | # Comment lines with a "#" may mean package(s) are not in use. 4 | # You are free to uncomment some of them. 5 | # They are provided as a suggestion of possible optimization settings. 6 | 7 | # Any changes mentioned may require a rebuild. Typically 8 | # sections with fixes require rebuilds. 9 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-gcc-lsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=leak" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-liblsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-lsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=leak" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/splitdebug.conf: -------------------------------------------------------------------------------- 1 | # installsources requires dev-util/debugedit 2 | # -nostrip is required to produce the /usr/lib*/debug/<...>/.debug file. 3 | # -binpkg-dostrip is required to produce /usr/lib/debug/usr/bin/.debug file. 4 | # Do not append nostrip.conf to this config. 5 | FEATURES="${FEATURES} splitdebug installsources -nostrip -binpkg-dostrip" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-severe-swapping.conf: -------------------------------------------------------------------------------- 1 | # Use only one linker instance. 2 | # 2 linker instances at 3 GiB each is very counterproductive on a 4 GiB RAM machine. 3 | # Processing one at a time cuts the swap overhead and bottlenecks that shouldn't exist in the first place. 4 | # Rebalance so that goodput is much greater than swap overhead. 5 | MAKEOPTS_MODE="severe-swapping" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-severe-swapping.conf: -------------------------------------------------------------------------------- 1 | # Use only one linker instance. 2 | # 2 linker instances at 3 GiB each is very counterproductive on a 4 GiB RAM machine. 3 | # Processing one at a time cuts the swap overhead and bottlenecks that shouldn't exist in the first place. 4 | # Rebalance so that goodput is much greater than swap overhead. 5 | MAKEOPTS_MODE="severe-swapping" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/libvpx.conf: -------------------------------------------------------------------------------- 1 | # These environment variables only apply to the libvpx ebuild on the 2 | # oiledmachine-overlay with support for PGO training. 3 | 4 | #LIBVPX_TRAINING_VIDEO_GENERAL_0="" # Abspath to your own assets 5 | LIBVPX_TRAINING_CUSTOM_VOD_RESOLUTIONS=" 6 | 30;1280;720;sdr 7 | " 8 | LIBVPX_TRAINING_CUSTOM_VOD_RESOLUTIONS_QUICK=" 9 | 30;1280;720;sdr 10 | " 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-gcc-asan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=address" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libasan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-gcc-tsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=thread" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libtsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-asan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=address" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-dfsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=dataflow" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-msan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=memory" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-rtsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=realtime" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-tsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=thread" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-tysan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=type" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/retpoline-gcc-thunk-inline.conf: -------------------------------------------------------------------------------- 1 | # Adds mitigation against Information Disclosure. 2 | # Mutually exclusive with -fcf-protection. 3 | # This retpoline flavor is designed for non-embedded, for execution speed. 4 | CFLAGS="${CFLAGS} -mfunction-return=thunk-inline -mindirect-branch=thunk-inline" 5 | CXXFLAGS="${CFLAGS} -mfunction-return=thunk-inline -mindirect-branch=thunk-inline" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-gcc-hwasan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=hwaddress" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libasan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-gcc-ubsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=undefined" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libubsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-hwasan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=hwaddress" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-ubsan.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=undefined" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/retpoline-gcc-thunk-extern.conf: -------------------------------------------------------------------------------- 1 | # Adds mitigation against Information Disclosure. 2 | # Mutually exclusive with -fcf-protection. 3 | # This retpoline flavor is designed for embedded devices, for space savings. 4 | CFLAGS="${CFLAGS} -mfunction-return=thunk-extern -mindirect-branch=thunk-extern" 5 | CXXFLAGS="${CFLAGS} -mfunction-return=thunk-extern -mindirect-branch=thunk-extern" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-safe-stack.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=safestack" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-llvm-scs.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=shadow-call-stack" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libsan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/retpoline-gcc-thunk.conf: -------------------------------------------------------------------------------- 1 | # Adds mitigation against Information Disclosure. 2 | # Mutually exclusive with -fcf-protection. 3 | # This retpoline flavor is designed for general case or default. 4 | # The performance may vary and is vendor dependent. 5 | CFLAGS="${CFLAGS} -mfunction-return=thunk -mindirect-branch=thunk" 6 | CXXFLAGS="${CFLAGS} -mfunction-return=thunk -mindirect-branch=thunk" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/Os.conf: -------------------------------------------------------------------------------- 1 | # Os does O2 (inlining, very-cheap vectorization (SIMD), but not autopar (multicore)) without padding 2 | # For autopar see multicoreloops.conf 3 | 4 | # To see inlining add (-fopt-info-inline) 5 | 6 | # Estimated build time penalty: ~25% reduction relative to -O3 7 | # Estimated performance penalty: ~1% or less relative to -O3 in some cases 8 | 9 | OPT_LEVEL="-Os" 10 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/Os.conf: -------------------------------------------------------------------------------- 1 | # Os does O2 (inlining, very-cheap vectorization (SIMD), but not autopar (multicore)) without padding 2 | # For autopar see multicoreloops.conf 3 | 4 | # To see inlining add (-fopt-info-inline) 5 | 6 | # Estimated build time penalty: ~25% reduction relative to -O3 7 | # Estimated performance penalty: ~1% or less relative to -O3 in some cases 8 | 9 | OPT_LEVEL="-Os" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/retpoline-clang-lightweight.conf: -------------------------------------------------------------------------------- 1 | # Add mitigation against Spectre v2, a Information Disclosure (ID) type of attack. 2 | # Designed for space savings, for embedded devices. 3 | # -mretpoline is mutually exclusive with -fcf-protection. 4 | CFLAGS="${CFLAGS} -mretpoline -mretpoline-external-thunk" 5 | CXXFLAGS="${CXXFLAGS} -mretpoline -mretpoline-external-thunk" 6 | LDFLAGS="${LDFLAGS} -Wl,-z,retpolineplt" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-nightly-gcc-scs.conf: -------------------------------------------------------------------------------- 1 | # Compatibile with only Rust nightly. 2 | RUSTFLAGS="${RUSTFLAGS} -Z sanitizer=shadow-call-stack" 3 | 4 | # Statically link to prevent DoS when upgrading or removing package. 5 | # Requires -Wl,--as-needed to be removed. 6 | RUSTFLAGS="${RUSTFLAGS} -C link-arg=--push-state -C link-arg=--whole-archive -C link-arg=-static-libgcc -C link-arg=-static-libasan -C link-arg=--pop-state" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/x11-drivers/xf86-video-dummy: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/x11-drivers/xf86-video-dummy-0.3.8/temp/lto-llvm-095eff.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFiP7_ScreenE_align' can not be used when making a shared object 3 | src:dummy_cursor.c 4 | src:dummy_driver.c 5 | 6 | # The dga USE flag may require the below changes: 7 | #src:dummy_dga.c 8 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/x11-drivers/xf86-video-dummy: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/x11-drivers/xf86-video-dummy-0.3.8/temp/lto-llvm-095eff.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFiP7_ScreenE_align' can not be used when making a shared object 3 | src:dummy_cursor.c 4 | src:dummy_driver.c 5 | 6 | # The dga USE flag may require the below changes: 7 | #src:dummy_dga.c 8 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-gcc-severe-swapping.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | # Use only one linker instance. 3 | # 2 linker instances at 3 GiB each is very counterproductive on a 4 GiB RAM machine. 4 | # Processing one at a time cuts the swap overhead and bottlenecks that shouldn't exist in the first place. 5 | # Rebalance so that goodput is much greater than swap overhead. 6 | MAKEOPTS_MODE_GCC="severe-swapping" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-gcc-severe-swapping.conf: -------------------------------------------------------------------------------- 1 | # Applies when only gcc is being used. 2 | # Use only one linker instance. 3 | # 2 linker instances at 3 GiB each is very counterproductive on a 4 GiB RAM machine. 4 | # Processing one at a time cuts the swap overhead and bottlenecks that shouldn't exist in the first place. 5 | # Rebalance so that goodput is much greater than swap overhead. 6 | MAKEOPTS_MODE_GCC="severe-swapping" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-scs.conf: -------------------------------------------------------------------------------- 1 | # For full backward-edge ROP mitigation 2 | CFLAGS="${CFLAGS} -fsanitize=shadow-call-stack" 3 | CXXFLAGS="${CXXFLAGS} -fsanitize=shadow-call-stack" 4 | LDFLAGS="${LDFLAGS} -fsanitize=shadow-call-stack" 5 | 6 | # Prevent DoS when sanitizer package removed or upgraded. 7 | # -Wl,--as-needed needs to be removed from LDFLAGS. 8 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libtsan -Wl,--pop-state" 9 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-deterministic-floats-arm64.conf: -------------------------------------------------------------------------------- 1 | # For safety-critical systems, float based cryptography 2 | # Requires -Ofast downgraded to O3 for float integrity. 3 | RUSTFLAGS="${RUSTFLAGS} -C target-cpu=generic -C target-feature=-fp-armv8,-neon" 4 | RUSTFLAGS="${RUSTFLAGS} -C opt-level=3" 5 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+strict-fp -C target-feature=-fast-math -C float-precision=exact -C soft-float -C codegen-units=1" 6 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/makeopts-clang-severe-swapping.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | # Use only one linker instance. 3 | # 2 linker instances at 3 GiB each is very counterproductive on a 4 GiB RAM machine. 4 | # Processing one at a time cuts the swap overhead and bottlenecks that shouldn't exist in the first place. 5 | # Rebalance so that goodput is much greater than swap overhead. 6 | MAKEOPTS_MODE_CLANG="severe-swapping" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/makeopts-clang-severe-swapping.conf: -------------------------------------------------------------------------------- 1 | # Applies to only when clang* is being used. 2 | # Use only one linker instance. 3 | # 2 linker instances at 3 GiB each is very counterproductive on a 4 GiB RAM machine. 4 | # Processing one at a time cuts the swap overhead and bottlenecks that shouldn't exist in the first place. 5 | # Rebalance so that goodput is much greater than swap overhead. 6 | MAKEOPTS_MODE_CLANG="severe-swapping" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-lsan.conf: -------------------------------------------------------------------------------- 1 | # Adds mitigation against memory leaks, a type of Denial of Service (DoS) vulnerability. 2 | CFLAGS="${CFLAGS} -fsanitize=leak" 3 | CXXFLAGS="${CXXFLAGS} -fsanitize=leak" 4 | LDFLAGS="${LDFLAGS} -fsanitize=leak" 5 | 6 | # Prevent DoS when sanitizer package removed or upgraded. 7 | # -Wl,--as-needed needs to be removed from LDFLAGS. 8 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-liblsan -Wl,--pop-state" 9 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-2-gcc.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For untrusted data packages, practical security-critical (for passwords) 3 | # You must use with -O1 or -O2 with GCC to maintain ~99% integrity of _FORTIFY_SOURCE. 4 | CFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-dce -fno-tree-loop-optimize -fno-optimize-sibling-calls" 5 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-dce -fno-tree-loop-optimize -fno-optimize-sibling-calls" 6 | -------------------------------------------------------------------------------- /profiles/minmax-2018/make.conf: -------------------------------------------------------------------------------- 1 | # This is is for copying and pasting not for replacing the entire file. 2 | COMMON_FLAGS="-march=native -O2 -fomit-frame-pointer -frename-registers -fno-plt -mindirect-branch=thunk -mindirect-branch-register -pipe" 3 | CFLAGS="${COMMON_FLAGS}" 4 | CXXFLAGS="${COMMON_FLAGS}" 5 | USE="${USE} custom-cflags lto pgo" 6 | FEATURES="${FEATURES} ccache" 7 | 8 | # Added to /etc/portage/package.use/gcc 9 | # sys-devel/gcc graphite 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/Og.conf: -------------------------------------------------------------------------------- 1 | # Slightly degraded debug experience with decent runtime performance. 2 | # For full debug, use -O0. 3 | # -Og is recommended for projects that take a hour or more to build. 4 | # The estimated performance impact is 1-3x faster relative to -O0. 5 | COMMON_FLAGS="${COMMON_FLAGS} -Og" 6 | CFLAGS="${CFLAGS} -Og" 7 | CXXFLAGS="${CXXFLAGS} -Og" 8 | FCFLAGS="${FCFLAGS} -Og" 9 | FFLAGS="${FFLAGS} -Og" 10 | FEATURES="${FEATURES} nostrip" 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-16-commit.conf: -------------------------------------------------------------------------------- 1 | #EGIT_OVERRIDE_COMMIT_LLVM_LLVM_PROJECT="db720dc17ca435ffb9a0c6ba63ebb92e130b38e6" # Oct 4, 2022 2 | #EGIT_OVERRIDE_COMMIT_LLVM_LLVM_PROJECT="d9ed93da86a3ffd663f6b19481551855d5cc86be" # Nov 24, 2022 # Used personally but disabled for repo 3 | #EGIT_OVERRIDE_COMMIT_LLVM_LLVM_PROJECT="e6329388c39d18c428afdbbfd0f1330e782bc348" # Dec 30, 2022 4 | #EGIT_OVERRIDE_COMMIT_LLVM_LLVM_PROJECT="0011c0a159395ac8736f680392949bf8d8bcc287" # Sep 30, 2022 5 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-2-clang.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For untrusted data packages, practical security-critical (for passwords) 3 | # You must use with -O1 or -O2 with Clang to maintain ~99% integrity of _FORTIFY_SOURCE. 4 | CFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-dce -mllvm -disable-loop-optimizations -fno-optimize-sibling-calls" 5 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-dce -mllvm -disable-loop-optimizations -fno-optimize-sibling-calls" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-allsan.conf: -------------------------------------------------------------------------------- 1 | CFLAGS="${CFLAGS} -fsanitize=all -fno-omit-frame-pointer" 2 | CXXFLAGS="${CXXFLAGS} -fsanitize=all -fno-omit-frame-pointer" 3 | LDFLAGS="${LDFLAGS} -fsanitize=all -fno-omit-frame-pointer" 4 | 5 | # Prevent DoS when sanitizer package removed or upgraded. 6 | # -Wl,--as-needed needs to be removed from LDFLAGS. 7 | CFLAGS="${CFLAGS} -static-libsan" 8 | CXXFLAGS="${CXXFLAGS} -static-libsan" 9 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 10 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/multicoreloops.conf: -------------------------------------------------------------------------------- 1 | # Use it only when the library / software doesn't use threading to be safe. 2 | # Also use it when -O3 (because of presence of -ftree-loop-distribute-*). 3 | 4 | # This should only be rarely to prevent the thread explosion problem or 5 | # to minimize thread overhead. 6 | 7 | # Should report: optimized: parallelizing inner loop 8 | 9 | CFLAGS="${CFLAGS} -ftree-parallelize-loops=4 -fopt-info-loop" 10 | CXXFLAGS="${CXXFLAGS} -ftree-parallelize-loops=4 -fopt-info-loop" 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-tsan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation for Race Condition (RC) vulnerabilites. 2 | # It requires no-sanitize-recover.conf for it to be effective in production. 3 | CFLAGS="${CFLAGS} -fsanitize=thread" 4 | CXXFLAGS="${CXXFLAGS} -fsanitize=thread" 5 | LDFLAGS="${LDFLAGS} -fsanitize=thread" 6 | 7 | # Prevent DoS when sanitizer package removed or upgraded. 8 | # -Wl,--as-needed needs to be removed from LDFLAGS. 9 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libtsan -Wl,--pop-state" 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/libaom.conf: -------------------------------------------------------------------------------- 1 | # These environment variables only apply to the libaom ebuild on the 2 | # oiledmachine-overlay with support for PGO training. 3 | 4 | # LIBAOM_TRAINING_VIDEO_GENERAL_0="" # Abspath to your own assets 5 | LIBAOM_TRAINING_CUSTOM_VOD_RESOLUTIONS=" 6 | 25;426;240;sdr 7 | " 8 | LIBAOM_TRAINING_CUSTOM_VOD_RESOLUTIONS_QUICK=" 9 | 25;426;240;sdr 10 | " 11 | #UOPTS_BOLT_OPTIMIZATIONS="-reorder-blocks=branch-predictor -reorder-functions=hfsort -split-functions -split-all-cold -split-eh -dyno-stats" 12 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-scs.conf: -------------------------------------------------------------------------------- 1 | # For full backward-edge ROP mitigation 2 | CFLAGS="${CFLAGS} -fsanitize=shadow-call-stack" 3 | CXXFLAGS="${CXXFLAGS} -fsanitize=shadow-call-stack" 4 | LDFLAGS="${LDFLAGS} -fsanitize=shadow-call-stack" 5 | 6 | # Prevent DoS when sanitizer package removed or upgraded. 7 | # -Wl,--as-needed needs to be removed from LDFLAGS. 8 | CFLAGS="${CFLAGS} -static-libsan" 9 | CXXFLAGS="${CXXFLAGS} -static-libsan" 10 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/rust-deterministic-floats-amd64.conf: -------------------------------------------------------------------------------- 1 | # For safety-critical systems, float based cryptography 2 | # Requires -Ofast downgraded to O3 for float integrity. 3 | RUSTFLAGS="${RUSTFLAGS} -C target-cpu=generic -C target-feature=-3dnow,-avx,-avx2,-avx512cd,-avx512dq,-avx512f,-avx512ifma,-avx512vl,-fma,-mmx,-msse4,-msse4.1,-sse,-sse2" 4 | RUSTFLAGS="${RUSTFLAGS} -C opt-level=3" 5 | RUSTFLAGS="${RUSTFLAGS} -C target-feature=+strict-fp -C target-feature=-fast-math -C float-precision=exact -C soft-float -C codegen-units=1" 6 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-lsan.conf: -------------------------------------------------------------------------------- 1 | # Adds mitigation against memory leaks, a type of Denial of Service (DoS) vulnerability. 2 | CFLAGS="${CFLAGS} -fsanitize=leak" 3 | CXXFLAGS="${CXXFLAGS} -fsanitize=leak" 4 | LDFLAGS="${LDFLAGS} -fsanitize=leak" 5 | 6 | # Prevent DoS when sanitizer package removed or upgraded. 7 | # -Wl,--as-needed needs to be removed from LDFLAGS. 8 | CFLAGS="${CFLAGS} -static-libsan" 9 | CXXFLAGS="${CXXFLAGS} -static-libsan" 10 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-3-gcc.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For untrusted data packages, theoretical security-critical (sensitive tokens/credentials, audited packages) 3 | # You must use with -O1 or -O2 with GCC to maintain 99% integrity of _FORTIFY_SOURCE. 4 | # Use this version if the package requires inline. 5 | CFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-dce -fno-tree-loop-optimize -fno-optimize-sibling-calls" 6 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-dce -fno-tree-loop-optimize -fno-optimize-sibling-calls" 7 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/cfi-ignore-list.conf: -------------------------------------------------------------------------------- 1 | # The bashrc script expect the lists to placed in one of the following: 2 | # "/etc/portage/package.cfi_ignore/${CATEGORY}/${PN}" 3 | # "/etc/portage/package.cfi_ignore/${CATEGORY}/${PN}-${PV}" 4 | # "/etc/portage/package.cfi_ignore/${CATEGORY}/${PN}-${PVR}" 5 | # Using the ignore list will allow you to use the CFI scheme for the package 6 | # but disallow a function to be sanitized by that scheme, minimizing the attack 7 | # surface. One may choose or avoid the problem in the first place. 8 | USE_CFI_IGNORE_LIST=1 9 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/cfi-ignore-list.conf: -------------------------------------------------------------------------------- 1 | # The bashrc script expect the lists to placed in one of the following: 2 | # "/etc/portage/package.cfi_ignore/${CATEGORY}/${PN}" 3 | # "/etc/portage/package.cfi_ignore/${CATEGORY}/${PN}-${PV}" 4 | # "/etc/portage/package.cfi_ignore/${CATEGORY}/${PN}-${PVR}" 5 | # Using the ignore list will allow you to use the CFI scheme for the package 6 | # but disallow a function to be sanitized by that scheme, minimizing the attack 7 | # surface. One may choose or avoid the problem in the first place. 8 | USE_CFI_IGNORE_LIST=1 9 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/dev-lang/vala: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # Found when building libsoup package 3 | # timsort.c:2129:5: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 4 | fun:_vala_array_destroy 5 | 6 | # Found when building gnome-calculator 7 | # arraylist.c:340:68: runtime error: control flow integrity check for type 'void *(void *)' failed during indirect function call 8 | # (/usr/lib64/vala-0.52/libvalaccodegen.so+0x6b170): note: (unknown) defined here 9 | # gee/arraylist.c is generated code 10 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/dev-lang/vala: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # Found when building libsoup package 3 | # timsort.c:2129:5: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 4 | fun:_vala_array_destroy 5 | 6 | # Found when building gnome-calculator 7 | # arraylist.c:340:68: runtime error: control flow integrity check for type 'void *(void *)' failed during indirect function call 8 | # (/usr/lib64/vala-0.52/libvalaccodegen.so+0x6b170): note: (unknown) defined here 9 | # gee/arraylist.c is generated code 10 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-3-clang.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For untrusted data packages, theoretical security-critical (sensitive tokens/credentials, audited packages) 3 | # You must use with -O1 or -O2 with Clang to maintain ~99% integrity of _FORTIFY_SOURCE. 4 | # Use this version if the package requires inline. 5 | CFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-dce -mllvm -disable-loop-optimizations -fno-optimize-sibling-calls" 6 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-dce -mllvm -disable-loop-optimizations -fno-optimize-sibling-calls" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-3-gcc-no-inline.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For untrusted data packages, theoretical security-critical (sensitive tokens/credentials, audited packages) 3 | # You must use with -O1 or -O2 with GCC to maintain 99% integrity of _FORTIFY_SOURCE. 4 | # Use this version if the package doesn't require inline. 5 | CFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-dce -fno-tree-loop-optimize -fno-optimize-sibling-calls -fno-inline" 6 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -fno-tree-dce -fno-tree-loop-optimize -fno-optimize-sibling-calls -fno-inline" 7 | -------------------------------------------------------------------------------- /profiles/gaming/env/deterministic-floats-arm64.conf: -------------------------------------------------------------------------------- 1 | # For safety-critical systems, float based cryptography 2 | # Requires -Ofast downgraded to O3 for float integrity. 3 | # This is to ensure float integrity across microarches. 4 | CFLAGS="${CFLAGS} -march=armv8-a -mfloat-abi=soft -mfpu=none" 5 | CXXFLAGS="${CXXFLAGS} -march=armv8-a -mfloat-abi=soft -mfpu=none" 6 | 7 | CFLAGS="${CFLAGS} -fno-fast-math -ffloat-store -fexcess-precision=standard -ffp-contract=off -frounding-math" 8 | CXXFLAGS="${CXXFLAGS} -fno-fast-math -ffloat-store -fexcess-precision=standard -ffp-contract=off -frounding-math" 9 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-tsan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation for Race Condition (RC) vulnerabilites. 2 | # It requires no-sanitize-recover.conf for it to be effective in production. 3 | CFLAGS="${CFLAGS} -fsanitize=thread" 4 | CXXFLAGS="${CXXFLAGS} -fsanitize=thread" 5 | LDFLAGS="${LDFLAGS} -fsanitize=thread" 6 | 7 | # Prevent DoS when sanitizer package removed or upgraded. 8 | # -Wl,--as-needed needs to be removed from LDFLAGS. 9 | CFLAGS="${CFLAGS} -static-libsan" 10 | CXXFLAGS="${CXXFLAGS} -static-libsan" 11 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 12 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/Ofast-ts.conf: -------------------------------------------------------------------------------- 1 | # Ofast is does inlining, dynamic vectorization (SIMD) for use in longer 2 | # execution times, but not autopar (multicore), and float math optimizations 3 | # (-ffast-math and more) 4 | 5 | # For GCC use this if using/linking against threading library 6 | 7 | # Estimated build time penalty: ~1% difference relative to -O3 8 | # Estimated performance: +-|~5% or less| relative to -O3 9 | 10 | # Uses: 11 | # statistics (averages, probability) 12 | # scaling images/audio 13 | # image/audio processing 14 | 15 | OPT_LEVEL="-Ofast" 16 | NO_ALLOW_STORE_DATA_RACES="1" 17 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/Ofast-ts.conf: -------------------------------------------------------------------------------- 1 | # Ofast is does inlining, dynamic vectorization (SIMD) for use in longer 2 | # execution times, but not autopar (multicore), and float math optimizations 3 | # (-ffast-math and more) 4 | 5 | # For GCC use this if using/linking against threading library 6 | 7 | # Estimated build time penalty: ~1% difference relative to -O3 8 | # Estimated performance: +-|~5% or less| relative to -O3 9 | 10 | # Uses: 11 | # statistics (averages, probability) 12 | # scaling images/audio 13 | # image/audio processing 14 | 15 | OPT_LEVEL="-Ofast" 16 | NO_ALLOW_STORE_DATA_RACES="1" 17 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-msan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation against Uninitalized Memory (UM) vulnerabilities. 2 | # It requires no-sanitize-recover.conf for it to be effective in production. 3 | CFLAGS="${CFLAGS} -fsanitize=memory" 4 | CXXFLAGS="${CXXFLAGS} -fsanitize=memory" 5 | LDFLAGS="${LDFLAGS} -fsanitize=memory" 6 | 7 | # Prevent DoS when sanitizer package removed or upgraded. 8 | # -Wl,--as-needed needs to be removed from LDFLAGS. 9 | CFLAGS="${CFLAGS} -static-libsan" 10 | CXXFLAGS="${CXXFLAGS} -static-libsan" 11 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 12 | -------------------------------------------------------------------------------- /profiles/gaming/env/fortify-fix-3-clang-no-inline.conf: -------------------------------------------------------------------------------- 1 | # For fixing _FORTIFY_SOURCE 2 | # For untrusted data packages, theoretical security-critical (sensitive tokens/credentials, audited packages) 3 | # You must use with -O1 or -O2 with Clang to maintain ~99% integrity of _FORTIFY_SOURCE. 4 | # Use this version if the package doesn't require inline. 5 | CFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-dce -mllvm -disable-loop-optimizations -fno-optimize-sibling-calls -fno-inline" 6 | CXXFLAGS="${CFLAGS} -fno-strict-aliasing -mllvm -disable-dce -mllvm -disable-loop-optimizations -fno-optimize-sibling-calls -fno-inline" 7 | -------------------------------------------------------------------------------- /profiles/minmax-2018/env/prefetch-loop-arrays.conf: -------------------------------------------------------------------------------- 1 | # From empirical testing, it requires at least n >= 160 loop iterations, with array 2 | # size >= n, and at least n elements accessed to emit prefetch instruction. 3 | # Works with O(n) loop. You cannot use a stack variable in the same context as the loop 4 | # in order for it to emit a prefetch instruction. 5 | # It must be declared as a global or from parent function. 6 | # See also https://github.com/gcc-mirror/gcc/blob/releases/gcc-10.2.0/gcc/tree-ssa-loop-prefetch.c#L52 7 | 8 | CFLAGS="${CFLAGS} -fprefetch-loop-arrays" 9 | CXXFLAGS="${CXXFLAGS} -fprefetch-loop-arrays" 10 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/multicoreloops.conf: -------------------------------------------------------------------------------- 1 | # Use it only when the library / software doesn't use threading to be safe. 2 | # Also use it when -O3 (because of presence of -ftree-loop-distribute-*). 3 | 4 | # This should only be rarely to prevent the thread explosion problem or 5 | # to minimize thread overhead. 6 | 7 | # Should report: optimized: parallelizing inner loop 8 | 9 | CFLAGS="${CFLAGS} -ftree-parallelize-loops=4" 10 | CXXFLAGS="${CXXFLAGS} -ftree-parallelize-loops=4" 11 | 12 | # Only for GCC. Add remove-fopt-info.conf to disable. 13 | CFLAGS="${CFLAGS} -fopt-info-loop" 14 | CXXFLAGS="${CXXFLAGS} -fopt-info-loop" 15 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/prefetch-loop-arrays.conf: -------------------------------------------------------------------------------- 1 | # From empirical testing, it requires at least n >= 160 loop iterations, with array 2 | # size >= n, and at least n elements accessed to emit prefetch instruction. 3 | # Works with O(n) loop. You cannot use a stack variable in the same context as the loop 4 | # in order for it to emit a prefetch instruction. 5 | # It must be declared as a global or from parent function. 6 | # See also https://github.com/gcc-mirror/gcc/blob/releases/gcc-10.2.0/gcc/tree-ssa-loop-prefetch.c#L52 7 | 8 | CFLAGS="${CFLAGS} -fprefetch-loop-arrays" 9 | CXXFLAGS="${CXXFLAGS} -fprefetch-loop-arrays" 10 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/multicoreloops.conf: -------------------------------------------------------------------------------- 1 | # Use it only when the library / software doesn't use threading to be safe. 2 | # Also use it when -O3 (because of presence of -ftree-loop-distribute-*). 3 | 4 | # This should only be rarely to prevent the thread explosion problem or 5 | # to minimize thread overhead. 6 | 7 | # Should report: optimized: parallelizing inner loop 8 | 9 | CFLAGS="${CFLAGS} -ftree-parallelize-loops=4" 10 | CXXFLAGS="${CXXFLAGS} -ftree-parallelize-loops=4" 11 | 12 | # Only for GCC. Add remove-fopt-info.conf to disable. 13 | CFLAGS="${CFLAGS} -fopt-info-loop" 14 | CXXFLAGS="${CXXFLAGS} -fopt-info-loop" 15 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/prefetch-loop-arrays.conf: -------------------------------------------------------------------------------- 1 | # From empirical testing, it requires at least n >= 160 loop iterations, with array 2 | # size >= n, and at least n elements accessed to emit prefetch instruction. 3 | # Works with O(n) loop. You cannot use a stack variable in the same context as the loop 4 | # in order for it to emit a prefetch instruction. 5 | # It must be declared as a global or from parent function. 6 | # See also https://github.com/gcc-mirror/gcc/blob/releases/gcc-10.2.0/gcc/tree-ssa-loop-prefetch.c#L52 7 | 8 | CFLAGS="${CFLAGS} -fprefetch-loop-arrays" 9 | CXXFLAGS="${CXXFLAGS} -fprefetch-loop-arrays" 10 | -------------------------------------------------------------------------------- /profiles/minmax-v1/env/Ofast.conf: -------------------------------------------------------------------------------- 1 | # Ofast is does inlining, dynamic vectorization (SIMD) for use in longer 2 | # execution times, but not autopar (multicore), and float math optimizations 3 | # (-ffast-math and more) 4 | 5 | # For threaded apps/libs use Ofast-ts.conf instead. 6 | 7 | # For autopar see multicoreloops.conf 8 | 9 | # To see inlining add (-fopt-info-inline) 10 | 11 | # Estimated build time penalty: ~1% difference relative to -O3 12 | # Estimated performance: +-|~5% or less| relative to -O3 13 | 14 | # Uses: 15 | # statistics (averages, probability) 16 | # scaling images/audio 17 | # image/audio processing 18 | 19 | OPT_LEVEL="-Ofast" 20 | -------------------------------------------------------------------------------- /profiles/minmax-v2/env/Ofast.conf: -------------------------------------------------------------------------------- 1 | # Ofast is does inlining, dynamic vectorization (SIMD) for use in longer 2 | # execution times, but not autopar (multicore), and float math optimizations 3 | # (-ffast-math and more) 4 | 5 | # For threaded apps/libs use Ofast-ts.conf instead. 6 | 7 | # For autopar see multicoreloops.conf 8 | 9 | # To see inlining add (-fopt-info-inline) 10 | 11 | # Estimated build time penalty: ~1% difference relative to -O3 12 | # Estimated performance: +-|~5% or less| relative to -O3 13 | 14 | # Uses: 15 | # statistics (averages, probability) 16 | # scaling images/audio 17 | # image/audio processing 18 | 19 | OPT_LEVEL="-Ofast" 20 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-asan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation for Use-After-Free (UAF), HO (Heap Overflow), SO (Stack Overflow), UAR (Use After Return) 2 | # Adds runtime mitigation against memory corruption. 3 | # It requires no-sanitize-recover.conf for it to be effective in production. 4 | CFLAGS="${CFLAGS} -fsanitize=address -fno-omit-frame-pointer" 5 | CXXFLAGS="${CXXFLAGS} -fsanitize=address -fno-omit-frame-pointer" 6 | LDFLAGS="${LDFLAGS} -fsanitize=address -fno-omit-frame-pointer" 7 | 8 | # Prevent DoS when sanitizer package removed or upgraded. 9 | # -Wl,--as-needed needs to be removed from LDFLAGS. 10 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libasan -Wl,--pop-state" 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-hwasan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation for Use-After-Free (UAF), HO (Heap Overflow), SO (Stack Overflow), UAR (Use After Return) 2 | # Adds runtime mitigation against memory corruption. 3 | # It requires no-sanitize-recover.conf for it to be effective in production. 4 | CFLAGS="${CFLAGS} -fsanitize=hwaddress -fno-omit-frame-pointer" 5 | CXXFLAGS="${CXXFLAGS} -fsanitize=hwaddress -fno-omit-frame-pointer" 6 | LDFLAGS="${LDFLAGS} -fsanitize=hwaddress -fno-omit-frame-pointer" 7 | 8 | # Prevent DoS when sanitizer package removed or upgraded. 9 | # -Wl,--as-needed needs to be removed from LDFLAGS. 10 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libasan -Wl,--pop-state" 11 | -------------------------------------------------------------------------------- /profiles/gaming/env/gcc-ubsan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitigation against Undefined Behavior (UB). 2 | # Adds runtime mitigation against Integer Overflow (IO), Null Pointer Dereference (NPD), Out of Bounds Access (OOBA), Out of Bounds Read (OOBR), Out of Bounds Write (OOBR), Array Index Out of Bounds. 3 | # It requires no-sanitize-recover.conf for it to be effective in production. 4 | CFLAGS="${CFLAGS} -fsanitize=undefined" 5 | CXXFLAGS="${CXXFLAGS} -fsanitize=undefined" 6 | LDFLAGS="${LDFLAGS} -fsanitize=undefined" 7 | 8 | # Prevent DoS when sanitizer package removed or upgraded. 9 | # -Wl,--as-needed needs to be removed from LDFLAGS. 10 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libubsan -Wl,--pop-state" 11 | -------------------------------------------------------------------------------- /profiles/gaming/make.conf: -------------------------------------------------------------------------------- 1 | COMMON_FLAGS="-O2 -pipe" 2 | COMMON_LDFLAGS="" 3 | CFLAGS="${COMMON_FLAGS}" 4 | CXXFLAGS="${COMMON_FLAGS}" 5 | FCFLAGS="${COMMON_FLAGS}" 6 | FFLAGS="${COMMON_FLAGS}" 7 | LDFLAGS="${COMMON_LDFLAGS}" 8 | 9 | PORTDIR="/usr/portage" 10 | DISTDIR="/var/cache/distfiles" 11 | PKGDIR="/var/cache/binpkgs" 12 | 13 | USE="${USE} -* custom-cflags minimal" 14 | 15 | # This sets the language of build output to English. 16 | # Please keep this setting intact when reporting bugs. 17 | LC_MESSAGES=C 18 | 19 | # See https://packages.gentoo.org/packages/dev-lang/python 20 | #PYTHON_TARGETS="python3_10" 21 | #PYTHON_SINGLE_TARGET="python3_10" 22 | 23 | EPGO_GROUP="users" 24 | UOPTS_PGO_GROUP="users" 25 | UOPTS_BOLT_GROUP="users" 26 | -------------------------------------------------------------------------------- /profiles/gaming/env/webkit-gtk.conf: -------------------------------------------------------------------------------- 1 | # For OSHIT_OPT_LEVEL_, 1 is the same as -O1, 2 is the same as -O2. 2 | # It is capped at -O2 to avoid DoS (Denial of Service) and to maintain _FORTIFY_SOURCE integrity. 3 | OSHIT_OPT_LEVEL_ANGLE="1" # Acceptable values: 1, 2 4 | OSHIT_OPT_LEVEL_JSC="2" # Acceptable values: 2 5 | OSHIT_OPT_LEVEL_SHA1="1" # Acceptable values: 1, 2 6 | OSHIT_OPT_LEVEL_SKIA="1" # Acceptable values: 1, 2 7 | OSHIT_OPT_LEVEL_XXHASH="1" # Acceptable values: 1, 2 8 | OSHIT_OPT_LEVEL_WEBCORE="1" # Acceptable values: 1, 2 9 | # JIT_LEVEL_OVERRIDE # Acceptable values: 0 (inclusive) to 7 (inclusive). 0 is the slowest runtime performance, but fastest build time. 7 is the fastest runtime performance, but slowest built time. 10 | -------------------------------------------------------------------------------- /profiles/minmax-2018/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | main() { 4 | local ts=$(date "+%Y%m%d-%H.%M.%S") 5 | local dest="${EROOT}/etc/portage" 6 | if [[ -e "${dest}/bashrc" ]] ; then 7 | mv "${dest}/bashrc"{,.${ts}} 8 | fi 9 | cp -a "package.env" "${dest}" 10 | cp -a "${dest}/make.conf"{,.${ts}} 11 | cp -a "make.conf" "${dest}" 12 | cp -a "env" "${dest}" 13 | chown root:root "${dest}/make.conf" 14 | chown root:root "${dest}/package.env" 15 | chown -R root:root "${dest}/env" 16 | chmod 644 "${dest}/make.conf" 17 | chmod 644 "${dest}/package.env" 18 | chmod -R 644 "${dest}/env/"* 19 | chmod -R 755 "${dest}/env" 20 | echo 21 | echo "You need to manually update ${dest}/make.conf from" 22 | echo "${dest}/make.conf.${ts}" 23 | echo 24 | } 25 | 26 | main 27 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-asan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation for Use-After-Free (UAF), HO (Heap Overflow), SO (Stack Overflow), UAR (Use After Return) 2 | # Adds runtime mitigation against memory corruption. 3 | # It requires no-sanitize-recover.conf for it to be effective in production. 4 | CFLAGS="${CFLAGS} -fsanitize=address -fno-omit-frame-pointer" 5 | CXXFLAGS="${CXXFLAGS} -fsanitize=address -fno-omit-frame-pointer" 6 | LDFLAGS="${LDFLAGS} -fsanitize=address -fno-omit-frame-pointer" 7 | 8 | # Prevent DoS when sanitizer package removed or upgraded. 9 | # -Wl,--as-needed needs to be removed from LDFLAGS. 10 | CFLAGS="${CFLAGS} -static-libsan" 11 | CXXFLAGS="${CXXFLAGS} -static-libsan" 12 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 13 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-hwasan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitgation for Use-After-Free (UAF), HO (Heap Overflow), SO (Stack Overflow), UAR (Use After Return) 2 | # Adds runtime mitigation against memory corruption. 3 | # It requires no-sanitize-recover.conf for it to be effective in production. 4 | CFLAGS="${CFLAGS} -fsanitize=hwaddress -fno-omit-frame-pointer" 5 | CXXFLAGS="${CXXFLAGS} -fsanitize=hwaddress -fno-omit-frame-pointer" 6 | LDFLAGS="${LDFLAGS} -fsanitize=hwaddress -fno-omit-frame-pointer" 7 | 8 | # Prevent DoS when sanitizer package removed or upgraded. 9 | # -Wl,--as-needed needs to be removed from LDFLAGS. 10 | CFLAGS="${CFLAGS} -static-libsan" 11 | CXXFLAGS="${CXXFLAGS} -static-libsan" 12 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 13 | -------------------------------------------------------------------------------- /profiles/gaming/env/llvm-ubsan.conf: -------------------------------------------------------------------------------- 1 | # Adds runtime mitigation against Undefined Behavior (UB). 2 | # Adds runtime mitigation against Integer Overflow (IO), Null Pointer Dereference (NPD), Out of Bounds Access (OOBA), Out of Bounds Read (OOBR), Out of Bounds Write (OOBR), Array Index Out of Bounds. 3 | # It requires no-sanitize-recover.conf for it to be effective in production. 4 | CFLAGS="${CFLAGS} -fsanitize=undefined" 5 | CXXFLAGS="${CXXFLAGS} -fsanitize=undefined" 6 | LDFLAGS="${LDFLAGS} -fsanitize=undefined" 7 | 8 | # Prevent DoS when sanitizer package removed or upgraded. 9 | # -Wl,--as-needed needs to be removed from LDFLAGS. 10 | CFLAGS="${CFLAGS} -static-libsan" 11 | CXXFLAGS="${CXXFLAGS} -static-libsan" 12 | LDFLAGS="${LDFLAGS} -Wl,--push-state,--whole-archive -static-libsan -Wl,--pop-state" 13 | -------------------------------------------------------------------------------- /profiles/gaming/env/ffmpeg.conf: -------------------------------------------------------------------------------- 1 | # These environment variables only apply to the ffmpeg ebuild on the 2 | # oiledmachine-overlay with support for PGO training. 3 | 4 | #FFMPEG_TRAINING_VIDEO_REALISM_1="" # Abspath to your own assets 5 | #FFMPEG_TRAINING_AUDIO_VOICE_1="" # Abspath to your own assets 6 | FFMPEG_TRAINING_AUDIO_CODECS="" 7 | FFMPEG_TRAINING_VIDEO_CODECS="" # Required 8 | FFMPEG_TRAINING_AUDIO_CODECS="" # Required 9 | FFMPEG_TRAINING_VIDEO_STREAMING_1="/dev/video0" 10 | #FFMPEG_TRAINING_AV_CODECS="" # Required 11 | FFMPEG_TRAINING_AV_CODECS="" # Required 12 | FFMPEG_TRAINING_AV_DEVICE_0="/dev/video0" 13 | FFMPEG_TRAINING_X11_DISPLAY=":0" 14 | FFMPEG_TRAINING_CUSTOM_VOD_RESOLUTIONS=" 15 | 30;1280;720;sdr 16 | " 17 | FFMPEG_TRAINING_CUSTOM_VOD_RESOLUTIONS_QUICK=" 18 | 30;1280;720;sdr 19 | " 20 | 21 | -------------------------------------------------------------------------------- /profiles/gaming/env/deterministic-floats-amd64.conf: -------------------------------------------------------------------------------- 1 | # For safety-critical systems, float based cryptography 2 | # Requires -Ofast downgraded to O3 for float integrity. 3 | # This is to ensure float integrity across microarches. 4 | CFLAGS="${CFLAGS} -march=generic -mno-3dnow -mno-avx -mno-avx2 -mno-avx512cd -mno-avx512dq -mno-avx512f -mno-avx512ifma -mno-avx512vl -mno-mmx -mno-msse4 -mno-msse4.1 -mno-sse -mno-sse2" 5 | CXXFLAGS="${CXXFLAGS} -march=generic -mno-3dnow -mno-avx -mno-avx2 -mno-avx512cd -mno-avx512dq -mno-avx512f -mno-avx512ifma -mno-avx512vl -mno-mmx -mno-msse4 -mno-msse4.1 -mno-sse -mno-sse2" 6 | 7 | CFLAGS="${CFLAGS} -fno-fast-math -ffloat-store -fexcess-precision=standard -ffp-contract=off -frounding-math" 8 | CXXFLAGS="${CXXFLAGS} -fno-fast-math -ffloat-store -fexcess-precision=standard -ffp-contract=off -frounding-math" 9 | -------------------------------------------------------------------------------- /profiles/gaming/env/chromium.conf: -------------------------------------------------------------------------------- 1 | CHECKREQS_DONOTHING=1 2 | # For OSHIT_OPT_LEVEL_, 1 is the same as -O1, 2 is the same as -O2. 3 | # It is capped at -O2 to avoid DoS (Denial of Service) and to maintain _FORTIFY_SOURCE integrity. 4 | OSHIT_OPT_LEVEL_DAV1D="2" # Acceptable values: 2 5 | OSHIT_OPT_LEVEL_LIBAOM="1" # Acceptable values: 1, 2 6 | OSHIT_OPT_LEVEL_LIBVPX="2" # Acceptable values: 2 7 | OSHIT_OPT_LEVEL_OPENH264="1" # Acceptable values: 1, 2 8 | OSHIT_OPT_LEVEL_RNNOISE="1" # Acceptable values: 1, 2 9 | OSHIT_OPT_LEVEL_RUY="1" # Acceptable values: 1, 2 10 | OSHIT_OPT_LEVEL_TFLITE="1" # Acceptable values: 1, 2 11 | OSHIT_OPT_LEVEL_V8="2" # Acceptable values: 2 12 | OSHIT_OPT_LEVEL_XNNPACK="1" # Acceptable values: 1, 2 13 | JIT_LEVEL_OVERRIDE="2" # Acceptable values: 0 (inclusive) to 7 (inclusive). 0 is the slowest runtime performance, but fastest build time. 7 is the fastest runtime performance, but slowest built time. 14 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/media-libs/opus: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-ef79d5.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFiP18silk_encoder_statePKsE_align' can not be used when making a shared object 3 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-24f6e7.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvPfiPKviiiPvE_align' can not be used when making a shared object 4 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-c19040.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvPviiPKfiiS_E_align' can not be used when making a shared object 5 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-a037e6.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvPKvPfiiiiiE_align' can not be used when making a shared object 6 | 7 | # For _ZTSFiP18silk_encoder_statePKsE: 8 | src:*/encode_frame_FLP.c 9 | src:*/VAD.c 10 | src:*/VAD_sse4_1.c 11 | # For _ZTSFvPfiPKviiiPvE: 12 | src:*/opus_multistream_encoder.c 13 | src:*/opus_projection_encoder.c 14 | # For _ZTSFvPviiPKfiiS_E: 15 | src:*/opus_multistream_decoder.c 16 | src:*/opus_projection_decoder.c 17 | # For _ZTSFvPKvPfiiiiiE: 18 | src:*/analysis.c 19 | src:*/opus_encoder.c 20 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/media-libs/opus: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-ef79d5.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFiP18silk_encoder_statePKsE_align' can not be used when making a shared object 3 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-24f6e7.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvPfiPKviiiPvE_align' can not be used when making a shared object 4 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-c19040.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvPviiPKfiiS_E_align' can not be used when making a shared object 5 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/opus-1.3.1-r2/temp/lto-llvm-a037e6.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvPKvPfiiiiiE_align' can not be used when making a shared object 6 | 7 | # For _ZTSFiP18silk_encoder_statePKsE: 8 | src:*/encode_frame_FLP.c 9 | src:*/VAD.c 10 | src:*/VAD_sse4_1.c 11 | # For _ZTSFvPfiPKviiiPvE: 12 | src:*/opus_multistream_encoder.c 13 | src:*/opus_projection_encoder.c 14 | # For _ZTSFvPviiPKfiiS_E: 15 | src:*/opus_multistream_decoder.c 16 | src:*/opus_projection_decoder.c 17 | # For _ZTSFvPKvPfiiiiiE: 18 | src:*/analysis.c 19 | src:*/opus_encoder.c 20 | -------------------------------------------------------------------------------- /profiles/gaming/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | main() { 4 | local ts=$(date "+%Y%m%d-%H.%M.%S") 5 | local dest="${EROOT}/etc/portage" 6 | if [[ -e "${dest}/bashrc" ]] ; then 7 | mv "${dest}/bashrc"{,.${ts}} 8 | fi 9 | cp -a "package.env" "${dest}" 10 | cp -a "${dest}/make.conf"{,.${ts}} 11 | cp -a "make.conf" "${dest}" 12 | cp -a "env" "${dest}" 13 | cp -a "patches" "${dest}" 14 | chown root:root "${dest}/make.conf" 15 | chown root:root "${dest}/package.env" 16 | chown -R root:root "${dest}/env" 17 | chmod 644 "${dest}/make.conf" 18 | chmod 644 "${dest}/package.env" 19 | chmod -R 644 "${dest}/env/"* 20 | chmod -R 755 "${dest}/env" 21 | 22 | # We do it this way assuming sensitive data (credentials) are used as a patch. 23 | chown root:root "${dest}/patches/sys-devel/gcc:11/0000-gcc-11.3.1_p20230120-r1-ld.mold-support.patch" 24 | chown root:root "${dest}/patches/sys-devel/gcc:11" 25 | chown root:root "${dest}/patches/sys-devel" 26 | chown root:root "${dest}/patches" 27 | chmod 644 "${dest}/patches/sys-devel/gcc:11/0000-gcc-11.3.1_p20230120-r1-ld.mold-support.patch" 28 | chmod 755 "${dest}/patches/sys-devel/gcc:11" 29 | chmod 755 "${dest}/patches/sys-devel" 30 | chmod 755 "${dest}/patches" 31 | 32 | echo 33 | echo "You need to manually update ${dest}/make.conf from" 34 | echo "${dest}/make.conf.${ts}" 35 | echo 36 | } 37 | 38 | main 39 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/app-portage/eix: -------------------------------------------------------------------------------- 1 | [cfi-unrelated-cast|cfi-derived-cast] 2 | # 3 | # Triggered when doing eix-layman --help: 4 | # 5 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'Mask' failed during cast to unrelated type (vtable address 0x000000000000) 6 | # 0x000000000000: note: invalid vtable 7 | # 8 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: note: check failed in /usr/bin/eix, vtable located in (unknown) 9 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16 in 10 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'SetMask' failed during cast to unrelated type (vtable address 0x000000000000) 11 | # 0x000000000000: note: invalid vtable 12 | # 13 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: note: check failed in /usr/bin/eix, vtable located in (unknown) 14 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16 in 15 | # /usr/bin/eix-layman: illegal option -- - 16 | type:Mask 17 | type:SetMask 18 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/app-portage/eix: -------------------------------------------------------------------------------- 1 | [cfi-unrelated-cast|cfi-derived-cast] 2 | # 3 | # Triggered when doing eix-layman --help: 4 | # 5 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'Mask' failed during cast to unrelated type (vtable address 0x000000000000) 6 | # 0x000000000000: note: invalid vtable 7 | # 8 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: note: check failed in /usr/bin/eix, vtable located in (unknown) 9 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16 in 10 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'SetMask' failed during cast to unrelated type (vtable address 0x000000000000) 11 | # 0x000000000000: note: invalid vtable 12 | # 13 | # /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: note: check failed in /usr/bin/eix, vtable located in (unknown) 14 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/lib/gcc/*-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16 in 15 | # /usr/bin/eix-layman: illegal option -- - 16 | type:Mask 17 | type:SetMask 18 | -------------------------------------------------------------------------------- /profiles/minmax-v1/find-broken-so-stripping.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | _gcf_verify_src() { 4 | local location="${1}" 5 | if [[ "${location}" == "ED" ]] ; then 6 | # Verify in ${ED} when it is not stripped 7 | find "${ED}" -executable 8 | elif [[ "${location}" == "EROOT" ]] ; then 9 | # Verify after strip in ${EROOT} 10 | cat "${EROOT}/var/db/pkg/${p}/CONTENTS" | cut -f 2 -d " " 11 | fi 12 | } 13 | 14 | gcf_verify_loading_lib() { 15 | local location="${1}" 16 | IFS=$'\n' 17 | local row 18 | for row in $(_gcf_verify_src "${location}") ; do 19 | local f=$(echo "${row}" | cut -f 2 -d " ") 20 | local md5_expected=$(echo "${row}" | cut -f 3 -d " ") 21 | [[ "${f}" =~ ".so" ]] || continue 22 | local is_so=0 23 | file "${f}" | grep -q -e "ELF.*shared object" && is_so=1 24 | if (( ${is_so} == 1 )) ; then 25 | # ldd is insecure. See `man 1 ldd` 26 | local md5_actual=$(md5sum "${f}" | cut -f 1 -d " ") 27 | if [[ "${md5_expected}" == "${md5_actual}" ]] \ 28 | && ldd "${f}" | grep -q -e "not a dynamic executable" ; then 29 | echo "Found broken ${f} from ${p}" 30 | fi 31 | fi 32 | done 33 | IFS=$' \t\n' 34 | } 35 | 36 | main() { 37 | echo "Finding packages please wait" 38 | local F=$(find "${EROOT}/var/db/pkg" -name "CONTENTS") 39 | local f 40 | for f in ${F[@]} ; do 41 | local p=$(echo "${f}" | cut -f 5-6 -d "/") 42 | gcf_verify_loading_lib "EROOT" 43 | done 44 | } 45 | 46 | main 47 | -------------------------------------------------------------------------------- /profiles/minmax-v2/find-broken-so-stripping.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | _gcf_verify_src() { 4 | local location="${1}" 5 | if [[ "${location}" == "ED" ]] ; then 6 | # Verify in ${ED} when it is not stripped 7 | find "${ED}" -executable 8 | elif [[ "${location}" == "EROOT" ]] ; then 9 | # Verify after strip in ${EROOT} 10 | cat "${EROOT}/var/db/pkg/${p}/CONTENTS" | cut -f 2 -d " " 11 | fi 12 | } 13 | 14 | gcf_verify_loading_lib() { 15 | local location="${1}" 16 | IFS=$'\n' 17 | local row 18 | for row in $(_gcf_verify_src "${location}") ; do 19 | local f=$(echo "${row}" | cut -f 2 -d " ") 20 | local md5_expected=$(echo "${row}" | cut -f 3 -d " ") 21 | [[ "${f}" =~ ".so" ]] || continue 22 | local is_so=0 23 | file "${f}" | grep -q -e "ELF.*shared object" && is_so=1 24 | if (( ${is_so} == 1 )) ; then 25 | # ldd is insecure. See `man 1 ldd` 26 | local md5_actual=$(md5sum "${f}" | cut -f 1 -d " ") 27 | if [[ "${md5_expected}" == "${md5_actual}" ]] \ 28 | && ldd "${f}" | grep -q -e "not a dynamic executable" ; then 29 | echo "Found broken ${f} from ${p}" 30 | fi 31 | fi 32 | done 33 | IFS=$' \t\n' 34 | } 35 | 36 | main() { 37 | echo "Finding packages please wait" 38 | local F=$(find "${EROOT}/var/db/pkg" -name "CONTENTS") 39 | local f 40 | for f in ${F[@]} ; do 41 | local p=$(echo "${f}" | cut -f 5-6 -d "/") 42 | gcf_verify_loading_lib "EROOT" 43 | done 44 | } 45 | 46 | main 47 | -------------------------------------------------------------------------------- /profiles/minmax-v1/patches/sys-apps/portage/no-stripping-cfi-symbols.patch: -------------------------------------------------------------------------------- 1 | --- a/bin/estrip.orig 2021-12-12 00:05:48.000000000 -0800 2 | +++ b/bin/estrip 2022-01-31 00:53:30.718007745 -0800 3 | @@ -121,7 +121,7 @@ for t in STRIP:strip OBJCOPY:objcopy REA 4 | done 5 | 6 | # Figure out what tool set we're using to strip stuff 7 | -unset SAFE_STRIP_FLAGS DEF_STRIP_FLAGS SPLIT_STRIP_FLAGS 8 | +unset SAFE_STRIP_FLAGS DEF_STRIP_FLAGS SPLIT_STRIP_FLAGS CFI_STRIP_FLAGS 9 | case $(${STRIP} --version 2>/dev/null) in 10 | *elfutils*) # dev-libs/elfutils 11 | # elfutils default behavior is always safe, so don't need to specify 12 | @@ -129,6 +129,7 @@ case $(${STRIP} --version 2>/dev/null) i 13 | SAFE_STRIP_FLAGS="" 14 | DEF_STRIP_FLAGS="--remove-comment" 15 | SPLIT_STRIP_FLAGS="-f" 16 | + CFI_STRIP_FLAGS="" 17 | ;; 18 | *GNU*) # sys-devel/binutils 19 | # We'll leave out -R .note for now until we can check out the relevance 20 | @@ -136,9 +137,10 @@ case $(${STRIP} --version 2>/dev/null) i 21 | SAFE_STRIP_FLAGS="--strip-unneeded -N __gentoo_check_ldflags__" 22 | DEF_STRIP_FLAGS="-R .comment -R .GCC.command.line -R .note.gnu.gold-version" 23 | SPLIT_STRIP_FLAGS= 24 | + CFI_STRIP_FLAGS="-w -K *__cfi* -K *_cfi_*" 25 | ;; 26 | esac 27 | -: ${PORTAGE_STRIP_FLAGS=${SAFE_STRIP_FLAGS} ${DEF_STRIP_FLAGS}} 28 | +: ${PORTAGE_STRIP_FLAGS=${SAFE_STRIP_FLAGS} ${DEF_STRIP_FLAGS} ${CFI_STRIP_FLAGS}} 29 | 30 | prepstrip_sources_dir=${EPREFIX}/usr/src/debug/${CATEGORY}/${PF} 31 | 32 | -------------------------------------------------------------------------------- /profiles/minmax-v2/patches/sys-apps/portage/no-stripping-cfi-symbols.patch: -------------------------------------------------------------------------------- 1 | --- a/bin/estrip.orig 2021-12-12 00:05:48.000000000 -0800 2 | +++ b/bin/estrip 2022-01-31 00:53:30.718007745 -0800 3 | @@ -121,7 +121,7 @@ for t in STRIP:strip OBJCOPY:objcopy REA 4 | done 5 | 6 | # Figure out what tool set we're using to strip stuff 7 | -unset SAFE_STRIP_FLAGS DEF_STRIP_FLAGS SPLIT_STRIP_FLAGS 8 | +unset SAFE_STRIP_FLAGS DEF_STRIP_FLAGS SPLIT_STRIP_FLAGS CFI_STRIP_FLAGS 9 | case $(${STRIP} --version 2>/dev/null) in 10 | *elfutils*) # dev-libs/elfutils 11 | # elfutils default behavior is always safe, so don't need to specify 12 | @@ -129,6 +129,7 @@ case $(${STRIP} --version 2>/dev/null) i 13 | SAFE_STRIP_FLAGS="" 14 | DEF_STRIP_FLAGS="--remove-comment" 15 | SPLIT_STRIP_FLAGS="-f" 16 | + CFI_STRIP_FLAGS="" 17 | ;; 18 | *GNU*) # sys-devel/binutils 19 | # We'll leave out -R .note for now until we can check out the relevance 20 | @@ -136,9 +137,10 @@ case $(${STRIP} --version 2>/dev/null) i 21 | SAFE_STRIP_FLAGS="--strip-unneeded -N __gentoo_check_ldflags__" 22 | DEF_STRIP_FLAGS="-R .comment -R .GCC.command.line -R .note.gnu.gold-version" 23 | SPLIT_STRIP_FLAGS= 24 | + CFI_STRIP_FLAGS="-w -K *__cfi* -K *_cfi_*" 25 | ;; 26 | esac 27 | -: ${PORTAGE_STRIP_FLAGS=${SAFE_STRIP_FLAGS} ${DEF_STRIP_FLAGS}} 28 | +: ${PORTAGE_STRIP_FLAGS=${SAFE_STRIP_FLAGS} ${DEF_STRIP_FLAGS} ${CFI_STRIP_FLAGS}} 29 | 30 | prepstrip_sources_dir=${EPREFIX}/usr/src/debug/${CATEGORY}/${PF} 31 | 32 | -------------------------------------------------------------------------------- /profiles/minmax-v2/makeopts.lst: -------------------------------------------------------------------------------- 1 | sys-libs/slang makeopts-broken.conf 2 | 3 | # Smooth out multitasking 4 | # The choice of the compiler with different N values for MAKEOPTS=-jN 5 | # may affect the responsiveness. 6 | >=dev-cpp/tbb-2021:0 makeopts-plain.conf # It may randomly freeze the computer when building with -j$(2xCPUs). 7 | dev-haskell/aeson makeopts-swappy.conf 8 | dev-lang/ghc makeopts-swappy.conf 9 | dev-lang/spidermonkey makeopts-severe-swapping.conf 10 | dev-libs/boost makeopts-swappy.conf 11 | dev-qt/qtdeclarative makeopts-swappy.conf 12 | dev-qt/qtwebengine makeopts-swappy.conf 13 | dev-util/binaryen makeopts-swappy.conf 14 | dev-util/shellcheck makeopts-swappy.conf 15 | liri-base/aurora-compositor makeopts-swappy.conf 16 | llvm-core/clang makeopts-severe-swapping.conf 17 | llvm-core/llvm makeopts-swappy.conf 18 | media-gfx/blender makeopts-swappy.conf 19 | media-gfx/nanovdb makeopts-severe-swapping.conf 20 | media-gfx/openvdb makeopts-severe-swapping.conf # 8.2 works, but 9.x has build time problem or unmergable 21 | media-libs/libaom makeopts-swappy.conf 22 | media-libs/oidn makeopts-swappy.conf 23 | media-libs/openusd makeopts-swappy.conf 24 | media-libs/osl makeopts-swappy.conf 25 | sci-libs/tensorflow makeopts-severe-swapping.conf 26 | sys-devel/gcc makeopts-swappy.conf 27 | net-libs/nodejs makeopts-gcc-swappy.conf makeopts-clang-plain.conf 28 | net-libs/webkit-gtk makeopts-swappy.conf 29 | www-client/chromium makeopts-swappy.conf 30 | www-client/firefox makeopts-severe-swapping.conf 31 | -------------------------------------------------------------------------------- /profiles/minmax-v1/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | main() { 4 | local ts=$(date "+%Y%m%d-%H.%M.%S") 5 | local dest="${EROOT}/etc/portage" 6 | cp -a "${dest}/bashrc"{,.${ts}} 7 | cp -a "bashrc" "${dest}" 8 | cp -a "package.env" "${dest}" 9 | cp -a "${dest}/make.conf"{,.${ts}} 10 | cp -a "make.conf" "${dest}" 11 | cp -a "env" "${dest}" 12 | cp -a "package.cfi_ignore" "${dest}" 13 | cp -a "patches" "${dest}" 14 | find \ 15 | "${dest}/package.cfi_ignore" \ 16 | -type d -exec chmod 755 {} \; 17 | find \ 18 | "${dest}/package.cfi_ignore" \ 19 | -type f -exec chmod 644 {} \; 20 | find \ 21 | "${dest}/package.cfi_ignore" \ 22 | -exec chown root:root {} \; 23 | 24 | # We do it this way assuming sensitive data (credentials) are used as a patch. 25 | chown root:root "${dest}/patches/sys-apps/portage/no-stripping-cfi-symbols.patch" 26 | chown root:root "${dest}/patches/sys-apps/portage" 27 | chown root:root "${dest}/patches/sys-apps" 28 | chown root:root "${dest}/patches" 29 | chmod 644 "${dest}/patches/sys-apps/portage/no-stripping-cfi-symbols.patch" 30 | chmod 755 "${dest}/patches/sys-apps/portage" 31 | chmod 755 "${dest}/patches/sys-apps" 32 | chmod 755 "${dest}/patches" 33 | 34 | chown root:root "${dest}/make.conf" 35 | chown root:root "${dest}/package.env" 36 | chown -R root:root "${dest}/env" 37 | chmod 644 "${dest}/make.conf" 38 | chmod 644 "${dest}/package.env" 39 | chmod 755 "${dest}/bashrc" 40 | chmod -R 644 "${dest}/env/"* 41 | chmod -R 755 "${dest}/env" 42 | ./gen_pkg_lists.sh 43 | echo 44 | echo "You need to manually update ${dest}/make.conf from" 45 | echo "${dest}/make.conf.${ts}" 46 | echo 47 | echo "You need to manually update ${dest}/bashrc from" 48 | echo "${dest}/bashrc.${ts}" 49 | echo 50 | } 51 | 52 | main 53 | -------------------------------------------------------------------------------- /profiles/minmax-v2/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | main() { 4 | local ts=$(date "+%Y%m%d-%H.%M.%S") 5 | ./gen_package_env.sh 6 | local dest="${EROOT}/etc/portage" 7 | cp -a "${dest}/bashrc"{,.${ts}} 8 | cp -a "bashrc" "${dest}" 9 | cp -a "package.env" "${dest}" 10 | cp -a "${dest}/make.conf"{,.${ts}} 11 | cp -a "make.conf" "${dest}" 12 | cp -a "env" "${dest}" 13 | cp -a "package.cfi_ignore" "${dest}" 14 | cp -a "patches" "${dest}" 15 | find \ 16 | "${dest}/package.cfi_ignore" \ 17 | -type d -exec chmod 755 {} \; 18 | find \ 19 | "${dest}/package.cfi_ignore" \ 20 | -type f -exec chmod 644 {} \; 21 | find \ 22 | "${dest}/package.cfi_ignore" \ 23 | -exec chown root:root {} \; 24 | 25 | # We do it this way assuming sensitive data (credentials) are used as a patch. 26 | chown root:root "${dest}/patches/sys-apps/portage/no-stripping-cfi-symbols.patch" 27 | chown root:root "${dest}/patches/sys-apps/portage" 28 | chown root:root "${dest}/patches/sys-apps" 29 | chown root:root "${dest}/patches" 30 | chmod 644 "${dest}/patches/sys-apps/portage/no-stripping-cfi-symbols.patch" 31 | chmod 755 "${dest}/patches/sys-apps/portage" 32 | chmod 755 "${dest}/patches/sys-apps" 33 | chmod 755 "${dest}/patches" 34 | 35 | chown root:root "${dest}/make.conf" 36 | chown root:root "${dest}/package.env" 37 | chown -R root:root "${dest}/env" 38 | chmod 644 "${dest}/make.conf" 39 | chmod 644 "${dest}/package.env" 40 | chmod 755 "${dest}/bashrc" 41 | chmod -R 644 "${dest}/env/"* 42 | chmod -R 755 "${dest}/env" 43 | ./gen_pkg_lists.sh 44 | echo 45 | echo "You need to manually update ${dest}/make.conf from" 46 | echo "${dest}/make.conf.${ts}" 47 | echo 48 | echo "You need to manually update ${dest}/bashrc from" 49 | echo "${dest}/bashrc.${ts}" 50 | echo 51 | } 52 | 53 | main 54 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/media-libs/openusd: -------------------------------------------------------------------------------- 1 | [cfi-nvcall|cfi-vcall] 2 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: runtime error: control flow integrity check for type 'std::type_info' failed during non-virtual call (vtable address 0x7f43cbef9ef0) 3 | #0x7f43cbef9ef0: note: invalid vtable 4 | # 43 7f 00 00 00 b2 d1 cb 43 7f 00 00 20 b2 d1 cb 43 7f 00 00 a0 c1 d1 cb 43 7f 00 00 a0 c1 d1 cb 5 | # ^ 6 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: note: check failed in /usr/lib64/libopenjp2.so.7, vtable located in /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/libstdc++.so.6 7 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.cpp:216:33: runtime error: control flow integrity check for type 'std::type_info' failed during non-virtual call (vtable address 0x7f43cbef9cb8) 8 | #0x7f43cbef9cb8: note: invalid vtable 9 | # 43 7f 00 00 20 90 d1 cb 43 7f 00 00 40 90 d1 cb 43 7f 00 00 a0 c1 d1 cb 43 7f 00 00 a0 c1 d1 cb 10 | # ^ 11 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.cpp:216:33: note: check failed in /usr/lib64/libopenjp2.so.7, vtable located in /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/libstdc++.so.6 12 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: runtime error: control flow integrity check for type 'std::type_info' failed during non-virtual call (vtable address 0x7f43cbef9cb8) 13 | #0x7f43cbef9cb8: note: invalid vtable 14 | # 43 7f 00 00 20 90 d1 cb 43 7f 00 00 40 90 d1 cb 43 7f 00 00 a0 c1 d1 cb 43 7f 00 00 a0 c1 d1 cb 15 | # ^ 16 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: note: check failed in /usr/lib64/libopenjp2.so.7, vtable located in /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/libstdc++.so.6 17 | 18 | type:std::type_info* 19 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/media-libs/openusd: -------------------------------------------------------------------------------- 1 | [cfi-nvcall|cfi-vcall] 2 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: runtime error: control flow integrity check for type 'std::type_info' failed during non-virtual call (vtable address 0x7f43cbef9ef0) 3 | #0x7f43cbef9ef0: note: invalid vtable 4 | # 43 7f 00 00 00 b2 d1 cb 43 7f 00 00 20 b2 d1 cb 43 7f 00 00 a0 c1 d1 cb 43 7f 00 00 a0 c1 d1 cb 5 | # ^ 6 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: note: check failed in /usr/lib64/libopenjp2.so.7, vtable located in /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/libstdc++.so.6 7 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.cpp:216:33: runtime error: control flow integrity check for type 'std::type_info' failed during non-virtual call (vtable address 0x7f43cbef9cb8) 8 | #0x7f43cbef9cb8: note: invalid vtable 9 | # 43 7f 00 00 20 90 d1 cb 43 7f 00 00 40 90 d1 cb 43 7f 00 00 a0 c1 d1 cb 43 7f 00 00 a0 c1 d1 cb 10 | # ^ 11 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.cpp:216:33: note: check failed in /usr/lib64/libopenjp2.so.7, vtable located in /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/libstdc++.so.6 12 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: runtime error: control flow integrity check for type 'std::type_info' failed during non-virtual call (vtable address 0x7f43cbef9cb8) 13 | #0x7f43cbef9cb8: note: invalid vtable 14 | # 43 7f 00 00 20 90 d1 cb 43 7f 00 00 40 90 d1 cb 43 7f 00 00 a0 c1 d1 cb 43 7f 00 00 a0 c1 d1 cb 15 | # ^ 16 | #/var/tmp/portage/media-libs/openusd-21.11-r3/work/USD-21.11/pxr/base/arch/demangle.h:104:29: note: check failed in /usr/lib64/libopenjp2.so.7, vtable located in /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/libstdc++.so.6 17 | 18 | type:std::type_info* 19 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/dev-util/ccache: -------------------------------------------------------------------------------- 1 | [cfi-unrelated-cast|cfi-vcall] 2 | # Ebuild pkg_setup() run-time failures 3 | # /usr/lib/gcc/[0-9a-z_]+-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'storage::secondary::FileStorage' failed during cast to unrelated type (vtable address 0x[a-z0-9]+) 4 | # 0x[0-9a-c]+: note: invalid vtable 5 | # /usr/lib/gcc/[0-9a-z_]+-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'storage::secondary::HttpStorage' failed during cast to unrelated type (vtable address 0x[a-z0-9]+) 6 | # 0x[0-9a-c]+: note: invalid vtable 7 | 8 | type:storage::secondary::FileStorage 9 | type:storage::secondary::HttpStorage 10 | 11 | [cfi-nvcall|cfi-vcall] 12 | # Ebuild pkg_setup() run-time failures 13 | # /var/tmp/portage/dev-util/ccache-4.4.2/work/ccache-4.4.2/src/Config.cpp:388:7: runtime error: control flow integrity check for type 'std::basic_ios' failed during non-virtual call (vtable address 0x[a-z0-9]+) 14 | # 0x[0-9a-c]+: note: invalid vtable 15 | # /var/tmp/portage/dev-util/ccache-4.4.2/work/ccache-4.4.2/src/Lockfile.cpp:53:3: runtime error: control flow integrity check for type 'std::basic_ostream' failed during non-virtual call (vtable address 0x[a-z0-9]+) 16 | # 0x[0-9a-c]+: note: invalid vtable 17 | # /var/tmp/portage/dev-util/ccache-4.4.2/work/ccache-4.4.2/src/Lockfile.cpp:55:31: runtime error: control flow integrity check for type 'std::basic_stringstream' failed during non-virtual call (vtable address 0x[a-z0-9]+) 18 | # 0x[0-9a-c]+: note: invalid vtable 19 | # /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/sstream:1136:16: runtime error: control flow integrity check for type 'std::basic_stringbuf' failed during non-virtual call (vtable address 0x[a-z0-9]+) 20 | # 0x[0-9a-c]+: note: invalid vtable 21 | 22 | type:std::basic_ios* 23 | type:std::basic_ostream* 24 | type:std::basic_stringstream* 25 | type:std::basic_stringbuf* 26 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/dev-util/ccache: -------------------------------------------------------------------------------- 1 | [cfi-unrelated-cast|cfi-vcall] 2 | # Ebuild pkg_setup() run-time failures 3 | # /usr/lib/gcc/[0-9a-z_]+-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'storage::secondary::FileStorage' failed during cast to unrelated type (vtable address 0x[a-z0-9]+) 4 | # 0x[0-9a-c]+: note: invalid vtable 5 | # /usr/lib/gcc/[0-9a-z_]+-pc-linux-gnu/11.2.0/include/g++-v11/ext/aligned_buffer.h:115:16: runtime error: control flow integrity check for type 'storage::secondary::HttpStorage' failed during cast to unrelated type (vtable address 0x[a-z0-9]+) 6 | # 0x[0-9a-c]+: note: invalid vtable 7 | 8 | type:storage::secondary::FileStorage 9 | type:storage::secondary::HttpStorage 10 | 11 | [cfi-nvcall|cfi-vcall] 12 | # Ebuild pkg_setup() run-time failures 13 | # /var/tmp/portage/dev-util/ccache-4.4.2/work/ccache-4.4.2/src/Config.cpp:388:7: runtime error: control flow integrity check for type 'std::basic_ios' failed during non-virtual call (vtable address 0x[a-z0-9]+) 14 | # 0x[0-9a-c]+: note: invalid vtable 15 | # /var/tmp/portage/dev-util/ccache-4.4.2/work/ccache-4.4.2/src/Lockfile.cpp:53:3: runtime error: control flow integrity check for type 'std::basic_ostream' failed during non-virtual call (vtable address 0x[a-z0-9]+) 16 | # 0x[0-9a-c]+: note: invalid vtable 17 | # /var/tmp/portage/dev-util/ccache-4.4.2/work/ccache-4.4.2/src/Lockfile.cpp:55:31: runtime error: control flow integrity check for type 'std::basic_stringstream' failed during non-virtual call (vtable address 0x[a-z0-9]+) 18 | # 0x[0-9a-c]+: note: invalid vtable 19 | # /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include/g++-v11/sstream:1136:16: runtime error: control flow integrity check for type 'std::basic_stringbuf' failed during non-virtual call (vtable address 0x[a-z0-9]+) 20 | # 0x[0-9a-c]+: note: invalid vtable 21 | 22 | type:std::basic_ios* 23 | type:std::basic_ostream* 24 | type:std::basic_stringstream* 25 | type:std::basic_stringbuf* 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gcf2 2 | 3 | Formerly my gentoo-cflags. gcf2 is a collection of personal cflags profiles 4 | for the portage build system. 5 | 6 | ## Precautions 7 | 8 | * Backup make.conf, env/*, bashrc before using gcf2. These will be clobbered 9 | when restoring a profile. This can be done with `--save-profile=name`. 10 | * It is assumed that you will make additional changes to make.conf to work with 11 | your personal setup. 12 | * It is a hard requirement to have a Rescue CD/USB especially with CFI ON. 13 | [SystemRescue](https://www.system-rescue.org) can be used. 14 | 15 | ## Running 16 | 17 | `./gcf2 --help` - Gets help 18 | `./gcf2 --save-profile=name` - Saves profile as name 19 | `./gcf2 --restores-profile=name` - Restores profile from profiles/name 20 | 21 | ### Environment variables 22 | 23 | EROOT - The absolute path to the root of an existing installation. 24 | (It can be unset or be empty if CHOST == CBUILD.) 25 | 26 | ## Prebuilt profiles 27 | 28 | ### Production 29 | 30 | * gaming - optimizes for install time while maintaining decent runtime 31 | performance while sacrificing security. Anti premature optimization. 32 | Anti security. (Development is active) 33 | * minmax-2018 - Hardened GCC with systemwide Retpoline with -O3. No LTO. 34 | * minmax-v1 - LTO based profile which can be configured for CFI. It comes with 35 | an blacklist/whitelist LTO generator to prevent IR incompatibilities. 36 | (Development is End of Life [EOL]) 37 | 38 | ### Development / pre-alpha 39 | 40 | * minmax-v2 - LTO based profile with dynamically generated profiles with O(1) 41 | MLOC estimator to auto tag packages needing Ccache or -O1, auto tag -O3 or 42 | -Ofast based on matching keyword ebuild scans, auto disables fast-math 43 | sub-options with violations to minimize ffast-math related bugs. Includes 44 | minmax-v1 LTO generators. (Development is on ice) 45 | 46 | ## Notes 47 | 48 | Refer to profiles//README.md or profiles//docs for more information. 49 | 50 | Initially, it was decided to unify all profiles with minmax-v2 but at the same 51 | time have the capability to switch between cflag profiles for seasonal reasons 52 | like summer for gaming and winter for security. gcf2 is created as a result. 53 | 54 | The bashrc maybe moved or copied, and clobbered when restoring. If you have 55 | customizations, you need to add them back. 56 | -------------------------------------------------------------------------------- /profiles/minmax-v1/emerge-uncfied.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | T_PKGS=() 3 | PACKAGE_ENV_PATH=${PACKAGE_ENV_PATH:-"${EROOT}/etc/portage/package.env"} 4 | 5 | show_cfi_set() { 6 | local s="${1}" 7 | echo "Getting ${s} list please wait" 8 | local L=( $(emerge -pve ${s} 2>/dev/null \ 9 | | cut -c 18- \ 10 | | cut -f 1 -d " " \ 11 | | grep -e "/" \ 12 | | sed -E -e "s/:.*//g" \ 13 | | sort \ 14 | | uniq) ) 15 | local p 16 | echo "CFIed packages:" 17 | local n_total=0 18 | local n_cfied=0 19 | for p in ${L[@]} ; do 20 | p=$(echo "${p}" | sed -e "s|:.*||g" | sed -e "s|^<||g") 21 | local is_cfied=0 22 | if [[ -e "${EROOT}/var/db/pkg/${p}/CONTENTS" ]] ; then 23 | for f in $(cat "${EROOT}/var/db/pkg/${p}/CONTENTS" | cut -f 2 -d " ") ; do 24 | readelf -Ws "${f}" 2>/dev/null \ 25 | | grep -q -E -e "(cfi_bad_type|cfi_check_fail|__cfi_init)" 2>/dev/null \ 26 | && is_cfied=1 && break 27 | done 28 | fi 29 | if (( ${is_cfied} == 1 )) ; then 30 | echo "[cfied] ${p}" 31 | n_cfied=$((${n_cfied} + 1)) 32 | else 33 | T_PKGS+=( "=${p}" ) 34 | echo "[not-cfied] ${p}" 35 | fi 36 | n_total=$((${n_total} + 1)) 37 | done 38 | } 39 | 40 | main() { 41 | if [[ ! -e "${EROOT}/etc/portage/emerge-cfi-skip.lst" ]] ; then 42 | echo "[warn] Missing emerge-cfi-skip.lst. Run gen_pkg_lists.sh" 43 | fi 44 | if [[ ! -e "${EROOT}/etc/portage/emerge-cfi-no-cfi.lst" ]] ; then 45 | echo "[warn] Missing emerge-cfi-no-cfi.lst. Run gen_pkg_lists.sh" 46 | fi 47 | 48 | local exclude_pkgs=() 49 | if [[ -e "${PACKAGE_ENV_PATH}" ]] ; then 50 | if grep -q -E -e "(^[^#]).*disable-clang-cfi.conf" "${PACKAGE_ENV_PATH}" ; then 51 | exclude_pkgs=($(grep -E -e "(^[^#]).*disable-clang-cfi.conf" "${PACKAGE_ENV_PATH}" | cut -f 1 -d " ")) 52 | else 53 | echo "[warn] Did not find package.env rules with disable-clang-cfi.conf. Set PACKAGE_ENV_PATH path to the path containing disable-clang-cfi.conf rules." 54 | fi 55 | fi 56 | 57 | for s in system world ; do 58 | show_cfi_set "${s}" 59 | done 60 | L_SKIP=($(\ 61 | for x in $(cat \ 62 | "${EROOT}/etc/portage/emerge-cfi-skip.lst" \ 63 | "${EROOT}/etc/portage/emerge-cfi-no-cfi.lst" \ 64 | ) ; do \ 65 | echo "${x/:}" ; \ 66 | done \ 67 | )) 68 | PKGS=() 69 | for p in ${T_PKGS[@]} ; do 70 | [[ "${p}" =~ ^"#" ]] && continue 71 | local can_skip=0 72 | for p_skip in ${L_SKIP[@]} ${exclude_pkgs[@]} ; do 73 | [[ "${p_skip}" =~ ^("<"|">"|"=") ]] && continue 74 | if [[ "${p}" =~ "${p_skip}" ]] ; then 75 | can_skip=1 76 | fi 77 | done 78 | (( ${can_skip} == 0 )) && PKGS+=( "${p}" ) 79 | done 80 | emerge -1vO ${PKGS[@]} 81 | } 82 | 83 | main 84 | 85 | -------------------------------------------------------------------------------- /profiles/minmax-v2/emerge-uncfied.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | T_PKGS=() 3 | PACKAGE_ENV_PATH=${PACKAGE_ENV_PATH:-"${EROOT}/etc/portage/package.env"} 4 | 5 | show_cfi_set() { 6 | local s="${1}" 7 | echo "Getting ${s} list please wait" 8 | local L=( $(emerge -pve ${s} 2>/dev/null \ 9 | | cut -c 18- \ 10 | | cut -f 1 -d " " \ 11 | | grep -e "/" \ 12 | | sed -E -e "s/:.*//g" \ 13 | | sort \ 14 | | uniq) ) 15 | local p 16 | echo "CFIed packages:" 17 | local n_total=0 18 | local n_cfied=0 19 | for p in ${L[@]} ; do 20 | p=$(echo "${p}" | sed -e "s|:.*||g" | sed -e "s|^<||g") 21 | local is_cfied=0 22 | if [[ -e "${EROOT}/var/db/pkg/${p}/CONTENTS" ]] ; then 23 | for f in $(cat "${EROOT}/var/db/pkg/${p}/CONTENTS" | cut -f 2 -d " ") ; do 24 | readelf -Ws "${f}" 2>/dev/null \ 25 | | grep -q -E -e "(cfi_bad_type|cfi_check_fail|__cfi_init)" 2>/dev/null \ 26 | && is_cfied=1 && break 27 | done 28 | fi 29 | if (( ${is_cfied} == 1 )) ; then 30 | echo "[cfied] ${p}" 31 | n_cfied=$((${n_cfied} + 1)) 32 | else 33 | T_PKGS+=( "=${p}" ) 34 | echo "[not-cfied] ${p}" 35 | fi 36 | n_total=$((${n_total} + 1)) 37 | done 38 | } 39 | 40 | main() { 41 | if [[ ! -e "${EROOT}/etc/portage/emerge-cfi-skip.lst" ]] ; then 42 | echo "[warn] Missing emerge-cfi-skip.lst. Run gen_pkg_lists.sh" 43 | fi 44 | if [[ ! -e "${EROOT}/etc/portage/emerge-cfi-no-cfi.lst" ]] ; then 45 | echo "[warn] Missing emerge-cfi-no-cfi.lst. Run gen_pkg_lists.sh" 46 | fi 47 | 48 | local exclude_pkgs=() 49 | if [[ -e "${PACKAGE_ENV_PATH}" ]] ; then 50 | if grep -q -E -e "(^[^#]).*disable-clang-cfi.conf" "${PACKAGE_ENV_PATH}" ; then 51 | exclude_pkgs=($(grep -E -e "(^[^#]).*disable-clang-cfi.conf" "${PACKAGE_ENV_PATH}" | cut -f 1 -d " ")) 52 | else 53 | echo "[warn] Did not find package.env rules with disable-clang-cfi.conf. Set PACKAGE_ENV_PATH path to the path containing disable-clang-cfi.conf rules." 54 | fi 55 | fi 56 | 57 | for s in system world ; do 58 | show_cfi_set "${s}" 59 | done 60 | L_SKIP=($(\ 61 | for x in $(cat \ 62 | "${EROOT}/etc/portage/emerge-cfi-skip.lst" \ 63 | "${EROOT}/etc/portage/emerge-cfi-no-cfi.lst" \ 64 | ) ; do \ 65 | echo "${x/:}" ; \ 66 | done \ 67 | )) 68 | PKGS=() 69 | for p in ${T_PKGS[@]} ; do 70 | [[ "${p}" =~ ^"#" ]] && continue 71 | local can_skip=0 72 | for p_skip in ${L_SKIP[@]} ${exclude_pkgs[@]} ; do 73 | [[ "${p_skip}" =~ ^("<"|">"|"=") ]] && continue 74 | if [[ "${p}" =~ "${p_skip}" ]] ; then 75 | can_skip=1 76 | fi 77 | done 78 | (( ${can_skip} == 0 )) && PKGS+=( "${p}" ) 79 | done 80 | emerge -1vO ${PKGS[@]} 81 | } 82 | 83 | main 84 | 85 | -------------------------------------------------------------------------------- /profiles/minmax-v1/emerge-unltoed.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | T_PKGS=() 3 | PACKAGE_ENV_PATH=${PACKAGE_ENV_PATH:-"${EROOT}/etc/portage/package.env"} 4 | show_lto_set() { 5 | local s="${1}" 6 | echo "Getting ${s} list please wait" 7 | local L=( $(emerge -pve ${s} 2>/dev/null \ 8 | | cut -c 18- \ 9 | | cut -f 1 -d " " \ 10 | | grep -e "/" \ 11 | | sed -E -e "s/:.*//g" \ 12 | | sort \ 13 | | uniq) ) 14 | local p 15 | echo "LTOed packages:" 16 | local n_total=0 17 | local n_ltoed=0 18 | for p in ${L[@]} ; do 19 | p=$(echo "${p}" | sed -e "s|:.*||g" | sed -e "s|^<||g") 20 | local is_ltoed=0 21 | if [[ -e "${EROOT}/var/db/pkg/${p}/environment.bz2" ]] \ 22 | && bzcat "${EROOT}/var/db/pkg/${p}/environment.bz2" \ 23 | | grep -q -e "declare.*CFLAGS.*flto" ; then 24 | is_ltoed=1 25 | fi 26 | if [[ -e "${EROOT}/var/db/pkg/${p}/USE" ]] \ 27 | && grep -q -e "lto" "${EROOT}/var/db/pkg/${p}/USE" ; then 28 | is_ltoed=1 29 | fi 30 | if (( ${is_ltoed} == 1 )) ; then 31 | echo "[ltoed] ${p}" 32 | n_ltoed=$((${n_ltoed} + 1)) 33 | else 34 | T_PKGS+=( "=${p}" ) 35 | echo "[not-ltoed] ${p}" 36 | fi 37 | n_total=$((${n_total} + 1)) 38 | done 39 | } 40 | 41 | main() { 42 | for x in world system ; do 43 | if [[ ! -e "${EROOT}/etc/portage/emerge-${x}-lto-skip.lst" ]] ; then 44 | echo "[warn] Missing emerge-${x}-lto-skip.lst. Run gen_pkg_lists.sh" 45 | fi 46 | if [[ ! -e "${EROOT}/etc/portage/emerge-${x}-no-lto.lst" ]] ; then 47 | echo "[warn] Missing emerge-${x}-no-lto.lst. Run gen_pkg_lists.sh" 48 | fi 49 | done 50 | local exclude_pkgs=() 51 | if [[ -e "${PACKAGE_ENV_PATH}" ]] ; then 52 | if grep -q -E -e "(^[^#]).*remove-lto.conf" "${PACKAGE_ENV_PATH}" ; then 53 | exclude_pkgs=($(grep -E -e "(^[^#]).*remove-lto.conf" "${PACKAGE_ENV_PATH}" | cut -f 1 -d " ")) 54 | else 55 | echo "[warn] Did not find package.env rules with remove-lto.conf. Set PACKAGE_ENV_PATH path to the path containing remove-lto.conf rules." 56 | fi 57 | fi 58 | for s in system world ; do 59 | show_lto_set "${s}" 60 | done 61 | L_SKIP=($(\ 62 | for x in $(cat \ 63 | "${EROOT}/etc/portage/emerge-system-lto-skip.lst" \ 64 | "${EROOT}/etc/portage/emerge-world-lto-skip.lst" \ 65 | "${EROOT}/etc/portage/emerge-system-no-lto.lst" \ 66 | "${EROOT}/etc/portage/emerge-world-no-lto.lst" \ 67 | ) ; do \ 68 | echo "${x/:}" ; \ 69 | done \ 70 | )) 71 | PKGS=() 72 | for p in ${T_PKGS[@]} ; do 73 | [[ "${p}" =~ ^"#" ]] && continue 74 | local can_skip=0 75 | for p_skip in ${L_SKIP[@]} ${exclude_pkgs[@]} ; do 76 | if [[ "${p}" =~ "${p_skip}" ]] ; then 77 | can_skip=1 78 | fi 79 | done 80 | (( ${can_skip} == 0 )) && PKGS+=( "${p}" ) 81 | done 82 | emerge -1vO ${PKGS[@]} 83 | } 84 | 85 | main 86 | -------------------------------------------------------------------------------- /profiles/minmax-v2/emerge-unltoed.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | T_PKGS=() 3 | PACKAGE_ENV_PATH=${PACKAGE_ENV_PATH:-"${EROOT}/etc/portage/package.env"} 4 | show_lto_set() { 5 | local s="${1}" 6 | echo "Getting ${s} list please wait" 7 | local L=( $(emerge -pve ${s} 2>/dev/null \ 8 | | cut -c 18- \ 9 | | cut -f 1 -d " " \ 10 | | grep -e "/" \ 11 | | sed -E -e "s/:.*//g" \ 12 | | sort \ 13 | | uniq) ) 14 | local p 15 | echo "LTOed packages:" 16 | local n_total=0 17 | local n_ltoed=0 18 | for p in ${L[@]} ; do 19 | p=$(echo "${p}" | sed -e "s|:.*||g" | sed -e "s|^<||g") 20 | local is_ltoed=0 21 | if [[ -e "${EROOT}/var/db/pkg/${p}/environment.bz2" ]] \ 22 | && bzcat "${EROOT}/var/db/pkg/${p}/environment.bz2" \ 23 | | grep -q -e "declare.*CFLAGS.*flto" ; then 24 | is_ltoed=1 25 | fi 26 | if [[ -e "${EROOT}/var/db/pkg/${p}/USE" ]] \ 27 | && grep -q -e "lto" "${EROOT}/var/db/pkg/${p}/USE" ; then 28 | is_ltoed=1 29 | fi 30 | if (( ${is_ltoed} == 1 )) ; then 31 | echo "[ltoed] ${p}" 32 | n_ltoed=$((${n_ltoed} + 1)) 33 | else 34 | T_PKGS+=( "=${p}" ) 35 | echo "[not-ltoed] ${p}" 36 | fi 37 | n_total=$((${n_total} + 1)) 38 | done 39 | } 40 | 41 | main() { 42 | for x in world system ; do 43 | if [[ ! -e "${EROOT}/etc/portage/emerge-${x}-lto-skip.lst" ]] ; then 44 | echo "[warn] Missing emerge-${x}-lto-skip.lst. Run gen_pkg_lists.sh" 45 | fi 46 | if [[ ! -e "${EROOT}/etc/portage/emerge-${x}-no-lto.lst" ]] ; then 47 | echo "[warn] Missing emerge-${x}-no-lto.lst. Run gen_pkg_lists.sh" 48 | fi 49 | done 50 | local exclude_pkgs=() 51 | if [[ -e "${PACKAGE_ENV_PATH}" ]] ; then 52 | if grep -q -E -e "(^[^#]).*remove-lto.conf" "${PACKAGE_ENV_PATH}" ; then 53 | exclude_pkgs=($(grep -E -e "(^[^#]).*remove-lto.conf" "${PACKAGE_ENV_PATH}" | cut -f 1 -d " ")) 54 | else 55 | echo "[warn] Did not find package.env rules with remove-lto.conf. Set PACKAGE_ENV_PATH path to the path containing remove-lto.conf rules." 56 | fi 57 | fi 58 | for s in system world ; do 59 | show_lto_set "${s}" 60 | done 61 | L_SKIP=($(\ 62 | for x in $(cat \ 63 | "${EROOT}/etc/portage/emerge-system-lto-skip.lst" \ 64 | "${EROOT}/etc/portage/emerge-world-lto-skip.lst" \ 65 | "${EROOT}/etc/portage/emerge-system-no-lto.lst" \ 66 | "${EROOT}/etc/portage/emerge-world-no-lto.lst" \ 67 | ) ; do \ 68 | echo "${x/:}" ; \ 69 | done \ 70 | )) 71 | PKGS=() 72 | for p in ${T_PKGS[@]} ; do 73 | [[ "${p}" =~ ^"#" ]] && continue 74 | local can_skip=0 75 | for p_skip in ${L_SKIP[@]} ${exclude_pkgs[@]} ; do 76 | if [[ "${p}" =~ "${p_skip}" ]] ; then 77 | can_skip=1 78 | fi 79 | done 80 | (( ${can_skip} == 0 )) && PKGS+=( "${p}" ) 81 | done 82 | emerge -1vO ${PKGS[@]} 83 | } 84 | 85 | main 86 | -------------------------------------------------------------------------------- /profiles/minmax-v1/docs/Development.md: -------------------------------------------------------------------------------- 1 | ## Production status 2 | 3 | The semi-production ready image may need to be modified a bit on your side due 4 | to differences in package versions or hardware configuration. 5 | 6 | ### Development mode progress 7 | 8 | Plans for June 2022 and beyond: Currently this project repo is on freeze, 9 | but will be continue as new project(s). The plan is to keep this one 10 | around for users still interested in CFI and systemwide LTO but new repo(s) 11 | may be made based partly on the Aug 26, 2021 design with more simpler 12 | package.env. 13 | 14 | The new repo will continuation of Aug 26, 2021 design and will have a 15 | new package.env will be more simple. The project URL will be announced 16 | later. There will be more emphasis on build time (-O0) and sparing use of 17 | -O{1,2,3} optimization compiler flags based on observed severe dips on 18 | performance. This new project may be named gcf-game-perf and be more gamer and 19 | content creator centered as in again fast installs and performance required in 20 | observed execution performance degration scenarios or heavy time cost scenarios. 21 | There will be no LTO/CFI in this new project. This new primary project will 22 | de-emphasize premature optimization and so the package.env will be more 23 | selective and dramatically small. 24 | 25 | Another project may be spawned called gcf-infer. This will use generator 26 | scripts to generate a package.env based on ebuild contents. This will be more 27 | secondary since it is premature optimization. The scripts will guess the 28 | packages to optimize based on keyword search on DESCRIPTION and with *DEPENDs. 29 | No LTO/CFI again this time. 30 | 31 | This current repo state is more focused on both security and stable 32 | performance flags. It may be renamed gcf-adv. 33 | 34 | Gist of pre June 2022: 35 | 36 | LTO with CFI is mostly working and on par with a basic www setup. Current 37 | development is focused on systemwide CFI. Performance degration with CFI is 38 | indiscernible mostly maybe except for loading times and build times. CFI 39 | coverage is not complete which is why it is not recommended for use 40 | from this repo. With a disabled CFI @system, the benefits also diminish 41 | by maybe 15% around 8% required CFI disabled due to noreserve bug so 42 | around 23% unprotected for production safe configuration. 43 | 44 | * CFIing @world excluding @system should be safe and easy to recover if 45 | problematic. 46 | * CFIing @system is not safe due to KEYWORD and slot issues that can break 47 | the entire @system set with minor gcc updates. It is not recommeded to CFI 48 | @system. 49 | * Souper flags support has been added, but currently disabled until it passes 50 | unit testing. It not recommended since upstream claims research grade 51 | quality and the file sizes were more or less the same with much worst 52 | compile time from my own initial testing. 53 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/net-dns/c-ares: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # npx --help 3 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:175:3: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 4 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 5 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:175:3: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 6 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:175:3 in 7 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:176:3: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 8 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 9 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:176:3: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 10 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:176:3 in 11 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2206:17: runtime error: control flow integrity check for type 'void *(void *, unsigned long)' failed during indirect function call 12 | # (/lib64/libc.so.6+0x9b7c0): note: (unknown) defined here 13 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2206:17: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 14 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2206:17 in 15 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:1849:7: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 16 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 17 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:1849:7: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 18 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:1849:7 in 19 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2564:3: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 20 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 21 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2564:3: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 22 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2564:3 in 23 | # npm exec 24 | src:*/ares_strsplit.c 25 | src:*/ares_init.c 26 | -------------------------------------------------------------------------------- /profiles/minmax-v2/package.cfi_ignore/net-dns/c-ares: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # npx --help 3 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:175:3: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 4 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 5 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:175:3: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 6 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:175:3 in 7 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:176:3: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 8 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 9 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:176:3: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 10 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_strsplit.c:176:3 in 11 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2206:17: runtime error: control flow integrity check for type 'void *(void *, unsigned long)' failed during indirect function call 12 | # (/lib64/libc.so.6+0x9b7c0): note: (unknown) defined here 13 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2206:17: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 14 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2206:17 in 15 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:1849:7: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 16 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 17 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:1849:7: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 18 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:1849:7 in 19 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2564:3: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call 20 | # (/lib64/libc.so.6+0x9b580): note: (unknown) defined here 21 | # /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2564:3: note: check failed in /usr/lib64/libbrotlidec.so.1, destination function located in /lib64/libc.so.6 22 | # SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /var/tmp/portage/net-dns/c-ares-1.18.1/work/c-ares-1.18.1/src/lib/ares_init.c:2564:3 in 23 | # npm exec 24 | src:*/ares_strsplit.c 25 | src:*/ares_init.c 26 | -------------------------------------------------------------------------------- /profiles/minmax-v2/docs/Development.md: -------------------------------------------------------------------------------- 1 | ## Production status 2 | 3 | The semi-production ready image may need to be modified a bit on your side due 4 | to differences in package versions or hardware configuration. 5 | 6 | ### Development mode progress 7 | 8 | Plans for June 2022 and beyond: Currently this project repo is on freeze, 9 | but will be continue as new project(s). The plan is to keep this one 10 | around for users still interested in CFI and systemwide LTO but new repo(s) 11 | may be made based partly on the Aug 26, 2021 design with more simpler 12 | package.env. 13 | 14 | The new repo will continuation of Aug 26, 2021 design and will have a 15 | new package.env will be more simple. The project URL will be announced 16 | later. There will be more emphasis on build time (-O0) and sparing use of 17 | -O{1,2,3} optimization compiler flags based on observed severe dips on 18 | performance. This new project may be named gcf-game-perf and be more gamer and 19 | content creator centered as in again fast installs and performance required in 20 | observed execution performance degration scenarios or heavy time cost scenarios. 21 | There will be no LTO/CFI in this new project. This new primary project will 22 | de-emphasize premature optimization and so the package.env will be more 23 | selective and dramatically small. 24 | 25 | Another project may be spawned called gcf-infer. This will use generator 26 | scripts to generate a package.env based on ebuild contents. This will be more 27 | secondary since it is premature optimization. The scripts will guess the 28 | packages to optimize based on keyword search on DESCRIPTION and with *DEPENDs. 29 | No LTO/CFI again this time. 30 | 31 | This current repo state is more focused on both security and stable 32 | performance flags. It may be renamed gcf-adv. 33 | 34 | Gist of pre June 2022: 35 | 36 | LTO with CFI is mostly working and on par with a basic www setup. Current 37 | development is focused on systemwide CFI. Performance degration with CFI is 38 | indiscernible mostly maybe except for loading times and build times. CFI 39 | coverage is not complete which is why it is not recommended for use 40 | from this repo. With a disabled CFI @system, the benefits also diminish 41 | by maybe 15% around 8% required CFI disabled due to noreserve bug so 42 | around 23% unprotected for production safe configuration. 43 | 44 | * CFIing @world excluding @system should be safe and easy to recover if 45 | problematic. 46 | * CFIing @system is not safe due to KEYWORD and slot issues that can break 47 | the entire @system set with minor gcc updates. It is not recommeded to CFI 48 | @system. 49 | * Souper flags support has been added, but currently disabled until it passes 50 | unit testing. It not recommended since upstream claims research grade 51 | quality and the file sizes were more or less the same with much worst 52 | compile time from my own initial testing. 53 | 54 | Gist of Q2 2022 55 | 56 | * Dynamic generated profiles 57 | 58 | Gist of Q1 2023 59 | 60 | * Manageable profiles 61 | * Rename repo from gentoo-cflags to gcf 62 | * minmax-v1 rolls back to pre-dynamic profiles. 63 | * minmax-v2 encapulates dev branch. 64 | * gaming encapsulates Q3 2022 - Q1 2023 65 | -------------------------------------------------------------------------------- /gcf2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PN=$(basename "$0") 4 | ARGV=($@) 5 | 6 | die() { 7 | echo "${@}" 8 | exit 1 9 | } 10 | 11 | print_help() { 12 | echo "" 13 | echo " ▓▓▓ ▓▓▓▓ ▓▓▓▓▓▓▓" 14 | echo " ▓▓▓ ▓▓▓ ▓ " 15 | echo " ▓▓ ▓▓ ▓ 2 " 16 | echo " ▓▓ ▓▓ ▓ " 17 | echo " ▓▓ ▓▓▓▓ ▓▓ ▓▓▓▓ " 18 | echo " ▓▓ ▓ ▓▓ ▓ " 19 | echo " ▓▓ ▓ ▓▓ ▓ " 20 | echo " ▓▓▓▓▓▓ ▓▓▓▓▓ ▓ " 21 | echo 22 | echo "${PN} - gcf2, a manager for env/*, package.env, make.conf" 23 | echo 24 | echo "--help, -h - show this help" 25 | echo "--list-profiles - list profiles" 26 | echo "--restore-profile= - restore profile" 27 | echo "--save-profile= - save profile" 28 | echo 29 | echo 30 | echo "Environment variables:" 31 | echo 32 | echo "EROOT - source root" 33 | echo 34 | exit 0 35 | } 36 | 37 | list_profiles() { 38 | echo 39 | echo "Profiles available:" 40 | echo 41 | ls -1 profiles 42 | echo 43 | echo 44 | exit 0 45 | } 46 | 47 | save_profile() { 48 | local name=$(echo "${ARGV[@]}" \ 49 | | grep -e "--save-profile=.*" \ 50 | | cut -f 2 -d "=") 51 | if [[ -z "${name}" ]] ; then 52 | echo 53 | echo "name in --save-profile= cannot be empty." 54 | echo 55 | exit 1 56 | fi 57 | echo 58 | echo "Saving profile as ${name}" 59 | echo 60 | if [[ -e "profiles/${name}" ]] ; then 61 | echo 62 | echo "Profile ${name} already exists." 63 | echo "Choose another name or delete it." 64 | echo 65 | exit 1 66 | fi 67 | local dest="profiles/${name}" 68 | mkdir -p "${dest}" 69 | cp -a "${EROOT}/etc/portage/make.conf" "${dest}" 2>/dev/null 70 | cp -a "${EROOT}/etc/portage/package.env" "${dest}" 2>/dev/null 71 | cp -a "${EROOT}/etc/portage/env" "${dest}" 2>/dev/null 72 | exit 0 73 | } 74 | 75 | restore_profile() { 76 | local name=$(echo "${ARGV[@]}" \ 77 | | grep -e "--restore-profile=.*" \ 78 | | cut -f 2 -d "=") 79 | if [[ -z "${name}" ]] ; then 80 | echo 81 | echo "name in --restore-profile= cannot be empty." 82 | echo 83 | exit 1 84 | fi 85 | echo 86 | echo "Restoring the ${name} profile" 87 | echo 88 | pushd "profiles/${name}" 1>/dev/null || die 89 | # The install.sh is used for dynamically generated profiles. 90 | if [[ -e "install.sh" ]] ; then 91 | ./install.sh || die 92 | else 93 | echo "" 94 | local dest="${EROOT}/etc/portage" 95 | rm -rf "${dest}/env" 96 | cp -a "make.conf" "${dest}" 2>/dev/null 97 | cp -a "package.env" "${dest}" 2>/dev/null 98 | cp -a "env" "${dest}" 2>/dev/null 99 | chown root:root "${dest}/make.conf" 100 | chown root:root "${dest}/package.env" 101 | chown -R root:root "${dest}/env" 102 | chmod 644 "${dest}/make.conf" 103 | chmod 644 "${dest}/package.env" 104 | chmod -R 644 "${dest}/env/"* 105 | chmod -R 755 "${dest}/env" 106 | fi 107 | popd 1>/dev/null 108 | exit 0 109 | } 110 | 111 | main() { 112 | case ${ARGV[@]} in 113 | --help|-h) 114 | print_help 115 | ;; 116 | --list-profiles) 117 | list_profiles 118 | ;; 119 | --restore-profile=*) 120 | restore_profile 121 | ;; 122 | --save-profile=*) 123 | save_profile 124 | ;; 125 | esac 126 | } 127 | 128 | main 129 | -------------------------------------------------------------------------------- /profiles/minmax-v1/package.cfi_ignore/media-libs/libpng-compat: -------------------------------------------------------------------------------- 1 | [cfi-icall] 2 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-2e3f84.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFPvP14png_struct_defmE_align' can not be used when making a shared object 3 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-dc5aba.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvP14png_struct_defPKcE_align' can not be used when making a shared object 4 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-c1f1a6.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFPvP14png_struct_defmE_align' can not be used when making a shared object 5 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-68597d.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFPvP14png_struct_defmE_align' can not be used when making a shared object 6 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-4e05b6.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFPvP14png_struct_defmE_align' can not be used when making a shared object 7 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-45baf6.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvP14png_struct_defPhmE_align' can not be used when making a shared object 8 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-88b049.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFPvP14png_struct_defmE_align' can not be used when making a shared object 9 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-361d67.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvP14png_struct_defPhmE_align' can not be used when making a shared object 10 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-7f3938.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFPvP14png_struct_defmE_align' can not be used when making a shared object 11 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-e2e87f.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvP14png_struct_defPhmE_align' can not be used when making a shared object 12 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-d0580a.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvP14png_struct_defPhmE_align' can not be used when making a shared object 13 | # /usr/bin/*-pc-linux-gnu-ld: /var/tmp/portage/media-libs/libpng-compat-1.5.30/temp/lto-llvm-c9de59.o: relocation R_*_8 against hidden symbol `__typeid__ZTSFvP14png_struct_defPhmE_align' can not be used when making a shared object 14 | 15 | # It doesn't work bugged 16 | #type:_ZTSFPvP14png_struct_defmE 17 | #type:_ZTSFvP14png_struct_defPKcE 18 | #type:_ZTSFvP14png_struct_defPhmE 19 | #type:_ZTSFvP14png_struct_defmiE 20 | 21 | # For _ZTSFPvP14png_struct_defmE 22 | src:*/pngmem.c 23 | 24 | # For _ZTSFvP14png_struct_defPhmE 25 | src:*/pngrio.c 26 | src:*/pngwutil.c 27 | src:*/pngrutil.c 28 | src:*/png.c 29 | src:*/pngwio.c 30 | src:*/pngpread.c 31 | 32 | # For _ZTSFvP14png_struct_defPKcE 33 | src:*/pngerror.c 34 | 35 | # For _ZTSFvP14png_struct_defmiE 36 | src:*/pngwrite.c 37 | src:*/pngread.c 38 | src:*/pngtrans.c 39 | --------------------------------------------------------------------------------