summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www-client/seamonkey/metadata.xml1
-rw-r--r--www-client/seamonkey/seamonkey-2.53.6.ebuild35
2 files changed, 32 insertions, 4 deletions
diff --git a/www-client/seamonkey/metadata.xml b/www-client/seamonkey/metadata.xml
index 1d714b2e631f..e527e43b5c48 100644
--- a/www-client/seamonkey/metadata.xml
+++ b/www-client/seamonkey/metadata.xml
@@ -15,6 +15,7 @@
<flag name="custom-optimization">Build with user-specified compiler optimizations (-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported)</flag>
<flag name="gmp-autoupdate">Allow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept up-to-date in user profiles</flag>
<flag name="ipc">Use inter-process communication between tabs and plugins. Allows for greater stability in case of plugin crashes</flag>
+ <flag name="lto">Enable Link Time Optimization (LTO). Requires Gold linker</flag>
<flag name="roaming">Build roaming extension support (default on)</flag>
<flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg> and <pkg>media-libs/libaom</pkg> library instead of bundled</flag>
<!-- flag name="system-cairo">Use the system-wide <pkg>x11-libs/cairo</pkg> instead of bundled</flag -->
diff --git a/www-client/seamonkey/seamonkey-2.53.6.ebuild b/www-client/seamonkey/seamonkey-2.53.6.ebuild
index f2fc86ef1b5a..f6e913d6d045 100644
--- a/www-client/seamonkey/seamonkey-2.53.6.ebuild
+++ b/www-client/seamonkey/seamonkey-2.53.6.ebuild
@@ -44,7 +44,7 @@ KEYWORDS="~amd64 ~ppc64 ~x86"
SLOT="0"
LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
SYSTEM_IUSE=( +system-{av1,harfbuzz,icu,jpeg,libevent,libvpx,sqlite} )
-IUSE="+chatzilla +crypt dbus debug +gmp-autoupdate +ipc jack minimal
+IUSE="+chatzilla +crypt dbus debug +gmp-autoupdate +ipc jack lto minimal
neon pulseaudio +roaming selinux startup-notification ${SYSTEM_IUSE[@]} test
wifi"
RESTRICT="!test? ( test )"
@@ -138,6 +138,7 @@ RDEPEND="
selinux? ( sec-policy/selinux-mozilla )
"
DEPEND+="${CDEPEND}
+ lto? ( sys-devel/binutils[gold] )
amd64? ( virtual/opengl )
x86? ( virtual/opengl )
"
@@ -162,7 +163,17 @@ pkg_setup() {
pkg_pretend() {
# Ensure we have enough disk space to compile
- if use debug || use test ; then
+ if use debug || use lto || use test ; then
+ CHECKREQS_DISK_BUILD="16G"
+ else
+ CHECKREQS_DISK_BUILD="12G"
+ fi
+ check-reqs_pkg_setup
+}
+
+spkg_setup() {
+ # Ensure we have enough disk space to compile
+ if use debug || use lto || use test ; then
CHECKREQS_DISK_BUILD="16G"
else
CHECKREQS_DISK_BUILD="12G"
@@ -236,11 +247,11 @@ src_configure() {
# get your own set of keys.
_google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
- ####################################
+ ######################################
#
# mozconfig, CFLAGS and CXXFLAGS setup
#
- ####################################
+ ######################################
mozconfig_init
@@ -351,6 +362,22 @@ src_configure() {
media/libvpx/moz.build || die
fi
fi
+
+ if use lto ; then
+ # Linking only works when using ld.gold when LTO is enabled
+ mozconfig_add_options_ac "forcing ld=gold due to USE=lto" --enable-linker=gold
+ # ThinLTO is currently broken, see bmo#1644409
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ else
+ if tc-ld-is-gold ; then
+ mozconfig_add_options_ac "linker is set to gold" --enable-linker=gold
+ else
+ mozconfig_add_options_ac "linker is set to bfd" --enable-linker=bfd
+ fi
+ fi
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
##################################
# Former mozconfig_config() end #
##################################