diff --git a/portage/env/basic.conf b/portage/env/basic.conf new file mode 100644 index 0000000..affe8f9 --- /dev/null +++ b/portage/env/basic.conf @@ -0,0 +1,25 @@ +# Clang - Basic. + + +# Toolchain. +AR="llvm-ar" +CC="clang" +CPP="clang-cpp" +CXX="clang++" +LD="ld.lld" +STRINGS="llvm-strings" +STRIP="llvm-strip" +NM="llvm-nm" +RANLIB="llvm-ranlib" +READELF="llvm-readelf" +OBJCOPY="llvm-objcopy" +OBJDUMP="llvm-objdump" + + +# Flags. +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -U__gnu_linux__" +CXXFLAGS="-march=znver1 -O2 -pipe" + +## Linker flags. +LDFLAGS="-fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind" diff --git a/portage/env/gcc-basic.conf b/portage/env/gcc-basic.conf new file mode 100644 index 0000000..e660e1c --- /dev/null +++ b/portage/env/gcc-basic.conf @@ -0,0 +1,18 @@ +# GCC - Basic. + + +# Toolchain. +CC="gcc" +CXX="g++" +AR="ar" +NM="nm" +RANLIB="ranlib" + + +# Flags. +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -U__gnu_linux__" +CXXFLAGS="-march=znver1 -O2 -pipe" + +## Linker flags. +LDFLAGS="-Wl,-O2" diff --git a/portage/env/gcc-nolto-nopie.conf b/portage/env/gcc-nolto-nopie.conf new file mode 100644 index 0000000..6fee7ac --- /dev/null +++ b/portage/env/gcc-nolto-nopie.conf @@ -0,0 +1,22 @@ +# GCC - No LTO, no PIE. + + +# Toolchain. +CC="gcc" +CXX="g++" +AR="ar" +NM="nm" +RANLIB="ranlib" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-Wl,-O2 ${LD_HARDENING}" diff --git a/portage/env/gcc-nolto.conf b/portage/env/gcc-nolto.conf new file mode 100644 index 0000000..91ea9a2 --- /dev/null +++ b/portage/env/gcc-nolto.conf @@ -0,0 +1,22 @@ +# GCC - No LTO. + + +# Toolchain. +CC="gcc" +CXX="g++" +AR="ar" +NM="nm" +RANLIB="ranlib" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIE -fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,-pie -Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-Wl,-O2 ${LD_HARDENING}" diff --git a/portage/env/gcc-nopie.conf b/portage/env/gcc-nopie.conf new file mode 100644 index 0000000..d8fd120 --- /dev/null +++ b/portage/env/gcc-nopie.conf @@ -0,0 +1,22 @@ +# GCC - No PIE. + + +# Toolchain. +CC="gcc" +CXX="g++" +AR="ar" +NM="nm" +RANLIB="ranlib" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -flto=4 -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe -flto=4 ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-Wl,-O2 ${LD_HARDENING}" diff --git a/portage/env/gcc.conf b/portage/env/gcc.conf new file mode 100644 index 0000000..9669318 --- /dev/null +++ b/portage/env/gcc.conf @@ -0,0 +1,22 @@ +# GCC. + + +# Toolchain. +CC="gcc" +CXX="g++" +AR="ar" +NM="nm" +RANLIB="ranlib" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIE -fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,-pie -Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -flto=4 -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe -flto=4 ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-Wl,-O2 ${LD_HARDENING}" diff --git a/portage/env/nolto-nopie.conf b/portage/env/nolto-nopie.conf new file mode 100644 index 0000000..f24b4b0 --- /dev/null +++ b/portage/env/nolto-nopie.conf @@ -0,0 +1,29 @@ +# Clang - No LTO, no PIE. + + +# Toolchain. +AR="llvm-ar" +CC="clang" +CPP="clang-cpp" +CXX="clang++" +LD="ld.lld" +STRINGS="llvm-strings" +STRIP="llvm-strip" +NM="llvm-nm" +RANLIB="llvm-ranlib" +READELF="llvm-readelf" +OBJCOPY="llvm-objcopy" +OBJDUMP="llvm-objdump" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind ${LD_HARDENING}" diff --git a/portage/env/nolto.conf b/portage/env/nolto.conf new file mode 100644 index 0000000..35e7a10 --- /dev/null +++ b/portage/env/nolto.conf @@ -0,0 +1,29 @@ +# Clang - No LTO. + + +# Toolchain. +AR="llvm-ar" +CC="clang" +CPP="clang-cpp" +CXX="clang++" +LD="ld.lld" +STRINGS="llvm-strings" +STRIP="llvm-strip" +NM="llvm-nm" +RANLIB="llvm-ranlib" +READELF="llvm-readelf" +OBJCOPY="llvm-objcopy" +OBJDUMP="llvm-objdump" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIE -fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,-pie -Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind ${LD_HARDENING}" diff --git a/portage/env/nopie.conf b/portage/env/nopie.conf new file mode 100644 index 0000000..aedd169 --- /dev/null +++ b/portage/env/nopie.conf @@ -0,0 +1,29 @@ +# Clang - No PIE. + + +# Toolchain. +AR="llvm-ar" +CC="clang" +CPP="clang-cpp" +CXX="clang++" +LD="ld.lld" +STRINGS="llvm-strings" +STRIP="llvm-strip" +NM="llvm-nm" +RANLIB="llvm-ranlib" +READELF="llvm-readelf" +OBJCOPY="llvm-objcopy" +OBJDUMP="llvm-objdump" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,--strip-all -Wl,-z,defs -Wl,-z,now -Wl,-z,relro" + +## Common flags. +CFLAGS="-march=znver1 -O2 -pipe -flto=full -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O2 -pipe -flto=full ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind ${LD_HARDENING}" diff --git a/portage/env/werror.conf b/portage/env/werror.conf new file mode 100644 index 0000000..67bb944 --- /dev/null +++ b/portage/env/werror.conf @@ -0,0 +1,29 @@ +# Clang - Wno-error. + + +# Toolchain. +AR="llvm-ar" +CC="clang" +CPP="clang-cpp" +CXX="clang++" +LD="ld.lld" +STRINGS="llvm-strings" +STRIP="llvm-strip" +NM="llvm-nm" +RANLIB="llvm-ranlib" +READELF="llvm-readelf" +OBJCOPY="llvm-objcopy" +OBJDUMP="llvm-objdump" + + +# Flags. +## Hardening flags. +C_HARDENING="-fPIE -fPIC -fstack-protector-all -fstack-clash-protection -D_FORTIFY_SOURCE=2" +LD_HARDENING="-Wl,-z,now -Wl,-z,relro -pie -Wl,--strip-all" + +## Common flags. +CFLAGS="-march=znver1 -O1 -pipe -flto=full -Wno-error -U__gnu_linux__ ${C_HARDENING}" +CXXFLAGS="-march=znver1 -O1 -pipe -flto=full ${C_HARDENING}" + +## Linker flags. +LDFLAGS="-fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind ${LD_HARDENING}"