diff --git a/env/clang b/env/clang index 47583b0..2b7de19 100644 --- a/env/clang +++ b/env/clang @@ -1,4 +1,5 @@ -COMMON_FLAGS="-O2 -pipe -march=native" +COMMON_FLAGS="-O2 -pipe -march=native -flto=full" + CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" FCFLAGS="${COMMON_FLAGS}" @@ -8,9 +9,19 @@ CC="clang" CXX="clang++" AR="llvm-ar" +AS="clang -c" +CPP="clang-cpp" NM="llvm-nm" +STRIP="llvm-strip" RANLIB="llvm-ranlib" +OBJCOPY="llvm-objcopy" +STRINGS="llvm-strings" +OBJDUMP="llvm-objdump" +READELF="llvm-readelf" +ADDR2LINE="llvm-addr2line" -LDFLAGS="-Wl,--as-needed -rtlib=compiler-rt -unwindlib=libunwind" +LD="ld.lld" + +LDFLAGS="-Wl,--as-needed -rtlib=compiler-rt -unwindlib=libunwind -fuse-ld=lld -flto" USE="clang llvm-libunwind" diff --git a/env/gcc b/env/gcc index d682167..4c95598 100644 --- a/env/gcc +++ b/env/gcc @@ -1,4 +1,4 @@ -COMMON_FLAGS="-O2 -pipe -march=native" +COMMON_FLAGS="-O2 -pipe -march=native -flto=auto" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" @@ -11,7 +11,7 @@ CXX="g++" LD="ld" -LDFLAGS="-Wl,--as-needed" +LDFLAGS="-Wl,--as-needed -flto" AR="ar" AS="as" diff --git a/env/lto b/env/lto deleted file mode 100644 index dc0bae7..0000000 --- a/env/lto +++ /dev/null @@ -1,6 +0,0 @@ -CFLAGS="${CFLAGS} -flto" -CXXFLAGS="${CXXFLAGS} -flto" - -LDFLAGS="${LDFLAGS} -flto" - -USE="lto" diff --git a/env/no-lto b/env/no-lto new file mode 100644 index 0000000..97c2d0d --- /dev/null +++ b/env/no-lto @@ -0,0 +1,7 @@ +CFLAGS="${CFLAGS} -fno-lto" +CXXFLAGS="${CXXFLAGS} -fno-lto" + +FCFLAGS="${FCFLAGS} -fno-lto" +FFLAGS="${FFLAGS} -fno-lto" + +LDFLAGS="${LDFLAGS} -fno-lto" diff --git a/make.conf/00common b/make.conf/00common index 74ecd31..5145706 100644 --- a/make.conf/00common +++ b/make.conf/00common @@ -1,4 +1,4 @@ -COMMON_FLAGS="-O2 -pipe -march=native -flto" +COMMON_FLAGS="-O2 -pipe -march=native -flto=full" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" @@ -11,10 +11,6 @@ RUSTFLAGS="-C target-cpu=native -C opt-level=3 -C linker=clang -C link-arg=-fuse CC="clang" CXX="clang++" -LD="ld.mold" - -LDFLAGS="${LDFLAGS} -fuse-ld=mold -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -flto" - AR="llvm-ar" AS="clang -c" CPP="clang-cpp" @@ -27,11 +23,12 @@ OBJDUMP="llvm-objdump" READELF="llvm-readelf" ADDR2LINE="llvm-addr2line" -# don't strip comment section of binaries -# assumes STRIP will be gnu-strip -PORTAGE_STRIP_FLAGS="--strip-unneeded -N __gentoo_check_ldflags__ -R .GCC.command.line -R .note.gnu.gold-version" +LD="ld.mold" -# EMERGE_DEFAULT_OPTS="--jobs 2" +LDFLAGS="${LDFLAGS} -fuse-ld=mold -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed -flto" + +# don't strip comment section of binaries +PORTAGE_STRIP_FLAGS="--strip-unneeded -N __gentoo_check_ldflags__ -R .GCC.command.line -R .note.gnu.gold-version" USE="clang dist-kernel llvm-libunwind lto pulseaudio X -systemd -wayland" diff --git a/package.env/ccache b/package.env/ccache index 05fcd5f..584920b 100644 --- a/package.env/ccache +++ b/package.env/ccache @@ -9,3 +9,7 @@ media-libs/mesa ccache www-client/firefox ccache mail-client/thunderbird ccache + +www-client/chromium + +net-libs/nodejs diff --git a/package.env/chromium b/package.env/chromium new file mode 100644 index 0000000..bfcbe4e --- /dev/null +++ b/package.env/chromium @@ -0,0 +1 @@ +# www-client/chromium clang lld diff --git a/package.env/ghc b/package.env/ghc index 9f1ece8..5a09351 100644 --- a/package.env/ghc +++ b/package.env/ghc @@ -1,2 +1,2 @@ -dev-lang/ghc gcc mold -app-admin/haskell-updater gcc lto mold +dev-lang/ghc gcc mold no-lto +app-admin/haskell-updater gcc mold diff --git a/package.env/libtomcrypt b/package.env/libtomcrypt index fafbeb0..eb58252 100644 --- a/package.env/libtomcrypt +++ b/package.env/libtomcrypt @@ -1 +1 @@ -dev-libs/libtomcrypt clang mold +dev-libs/libtomcrypt clang mold no-lto diff --git a/package.env/qt b/package.env/qt index 9f975e2..43cb786 100644 --- a/package.env/qt +++ b/package.env/qt @@ -1 +1 @@ -dev-qt/qtcore clang mold +dev-qt/qtcore clang mold no-lto diff --git a/package.env/sys b/package.env/sys index d1b747a..7fe2751 100644 --- a/package.env/sys +++ b/package.env/sys @@ -1,4 +1,4 @@ -sys-kernel/* clang lld +sys-kernel/* clang lld no-lto -sys-libs/efivar gcc mold -sys-libs/glibc gcc lto mold +sys-libs/efivar gcc mold no-lto +sys-libs/glibc gcc lto mold no-lto diff --git a/package.use/chromium b/package.use/chromium new file mode 100644 index 0000000..17528c5 --- /dev/null +++ b/package.use/chromium @@ -0,0 +1,9 @@ +# required by www-client/chromium-116.0.5845.96::gentoo +# required by www-client/chromium (argument) +>=sys-libs/zlib-1.2.13-r1 minizip + +# required by www-client/chromium-116.0.5845.96::gentoo +# required by www-client/chromium (argument) +>=net-libs/nodejs-20.5.1 inspector + +www-client/chromium custom-cflags diff --git a/package.use/clang b/package.use/clang index 4a80dd0..ed4d733 100644 --- a/package.use/clang +++ b/package.use/clang @@ -1,2 +1,2 @@ -sys-devel/clang-common default-compiler-rt llvm-libunwind +sys-devel/clang-common default-compiler-rt default-lld llvm-libunwind sys-libs/llvm-libunwind static-libs