diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index fb340ee1ace..7518e399382 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -23,7 +23,7 @@ , ffmpegSupport ? true , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook , waylandSupport ? true, libxkbcommon -, ltoSupport ? stdenv.isLinux, overrideCC, buildPackages +, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages , gssSupport ? true, kerberos , pipewireSupport ? waylandSupport && webrtcSupport, pipewire @@ -111,6 +111,13 @@ let else stdenv; nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss; + + # --enable-release adds -ffunction-sections & LTO that require a big amount of + # RAM and the 32-bit memory space cannot handle that linking + # We also disable adding "-g" for easier linking + releaseFlags = if stdenv.is32bit + then [ "--disable-release" "--disable-debug-symbols" ] + else [ "--enable-release" ]; in buildStdenv.mkDerivation ({ @@ -296,9 +303,9 @@ buildStdenv.mkDerivation ({ ++ lib.optional drmSupport "--enable-eme=widevine" ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] - else [ "--disable-debug" "--enable-release" + else ([ "--disable-debug" "--enable-optimize" - "--enable-strip" ]) + "--enable-strip" ] ++ releaseFlags)) ++ lib.optional enableOfficialBranding "--enable-official-branding" ++ extraConfigureFlags;