commit:     7182d50a95a5c28c192eab2fb280f0edf1849c51
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 23 11:20:58 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Oct 23 11:21:29 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7182d50a

www-client/firefox: adjust requirements

- Warn user when USE=lto is set but used compiler is outdated.
  [Bug #666784]

- Enforce >=rust-1.28.0. [Bug #669394]

- Disable ELF hack again. [Bug #669382]

- Enforce usage of >=dev-libs/nss-3.39. [Bug #669374]

Bug: https://bugs.gentoo.org/666784
Closes: https://bugs.gentoo.org/669394
Closes: https://bugs.gentoo.org/669382
Closes: https://bugs.gentoo.org/669374
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 www-client/firefox/firefox-63.0.ebuild | 45 +++++++++++++++++++++++++++-------
 1 file changed, 36 insertions(+), 9 deletions(-)

diff --git a/www-client/firefox/firefox-63.0.ebuild 
b/www-client/firefox/firefox-63.0.ebuild
index 6e0770397bd..bdf96239340 100644
--- a/www-client/firefox/firefox-63.0.ebuild
+++ b/www-client/firefox/firefox-63.0.ebuild
@@ -52,7 +52,7 @@ SRC_URI="${SRC_URI}
        ${PATCH_URIS[@]}"
 
 CDEPEND="
-       >=dev-libs/nss-3.38
+       >=dev-libs/nss-3.39
        >=dev-libs/nspr-4.19
        >=app-text/hunspell-1.5.4:=
        dev-libs/atk
@@ -115,14 +115,8 @@ DEPEND="${CDEPEND}
                >=sys-devel/lld-4.0.1
        )
        pulseaudio? ( media-sound/pulseaudio )
-       elibc_glibc? (
-               virtual/cargo
-               virtual/rust
-       )
-       elibc_musl? (
-               virtual/cargo
-               virtual/rust
-       )
+       >=virtual/cargo-1.28.0
+       >=virtual/rust-1.28.0
        amd64? ( >=dev-lang/yasm-1.1 virtual/opengl )
        x86? ( >=dev-lang/yasm-1.1 virtual/opengl )"
 
@@ -288,14 +282,41 @@ src_configure() {
        filter-flags -flto*
 
        if use lto ; then
+               local show_old_compiler_warning=
+
                if use clang ; then
+                       # At this stage CC is adjusted and the following check 
will
+                       # will work
+                       if [[ $(clang-major-version) -lt 7 ]]; then
+                               show_old_compiler_warning=1
+                       fi
+
                        # Upstream only supports lld when using clang
                        mozconfig_annotate "forcing ld=lld due to USE=clang and 
USE=lto" --enable-linker=lld
                else
+                       if [[ $(gcc-major-version) -lt 8 ]]; then
+                               show_old_compiler_warning=1
+                       fi
+
                        # Linking only works when using ld.gold when LTO is 
enabled
                        mozconfig_annotate "forcing ld=gold due to USE=lto" 
--enable-linker=gold
                fi
 
+               if [[ -n "${show_old_compiler_warning}" ]]; then
+                       # Checking compiler's major version uses CC variable. 
Because we allow
+                       # user to control used compiler via USE=clang flag, we 
cannot use
+                       # initial value. So this is the earliest stage where we 
can do this check
+                       # because pkg_pretend is not called in the main phase 
function sequence
+                       # environment saving is not guaranteed so we don't know 
if we will have
+                       # correct compiler until now.
+                       ewarn ""
+                       ewarn "USE=lto requires up-to-date compiler (>=gcc-8 or 
>=clang-7)."
+                       ewarn "You are on your own -- expect build failures. 
Don't file bugs using that unsupported configuration!"
+                       ewarn ""
+                       sleep 5
+               fi
+
+
                mozconfig_annotate '+lto' --enable-lto=thin
        else
                # Avoid auto-magic on linker
@@ -421,6 +442,12 @@ src_configure() {
        # disable webrtc for now, bug 667642
        use arm && mozconfig_annotate 'broken on arm' --disable-webrtc
 
+       if use clang ; then
+               # https://bugzilla.mozilla.org/show_bug.cgi?id=1423822
+               # bug #669382
+               mozconfig_annotate 'elf-hack is broken when using Clang' 
--disable-elf-hack
+       fi
+
        echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig
        echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig
 

Reply via email to