diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 9321e491099..948adc407d7 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -65,6 +65,7 @@ , xorg , zip , zlib +, pkgsBuildBuild # optionals @@ -139,16 +140,21 @@ let # Target the LLVM version that rustc is built with for LTO. llvmPackages0 = rustc.llvmPackages; + llvmPackagesBuildBuild0 = pkgsBuildBuild.rustc.llvmPackages; # Force the use of lld and other llvm tools for LTO llvmPackages = llvmPackages0.override { bootBintoolsNoLibc = null; bootBintools = null; }; + llvmPackagesBuildBuild = llvmPackagesBuildBuild0.override { + bootBintoolsNoLibc = null; + bootBintools = null; + }; # LTO requires LLVM bintools including ld.lld and llvm-ar. buildStdenv = overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override { - inherit (llvmPackages) bintools; + bintools = if ltoSupport then buildPackages.rustc.llvmPackages.bintools else stdenv.cc.bintools; }); # Compile the wasm32 sysroot to build the RLBox Sandbox @@ -193,10 +199,15 @@ buildStdenv.mkDerivation ({ # two patches. patchFlags = [ "-p1" "-l" ]; + # if not explicitly set, wrong cc from buildStdenv would be used + HOST_CC = "${llvmPackagesBuildBuild.stdenv.cc}/bin/cc"; + HOST_CXX = "${llvmPackagesBuildBuild.stdenv.cc}/bin/c++"; + nativeBuildInputs = [ autoconf cargo - llvmPackages.llvm # llvm-objdump + gnum4 + llvmPackagesBuildBuild.bintools makeWrapper nodejs perl @@ -273,13 +284,16 @@ buildStdenv.mkDerivation ({ export MOZILLA_OFFICIAL=1 ''; + # firefox has a different definition of configurePlatforms from nixpkgs, see configureFlags + configurePlatforms = [ ]; + configureFlags = [ "--disable-tests" "--disable-updater" "--enable-application=${application}" "--enable-default-toolkit=cairo-gtk3${lib.optionalString waylandSupport "-wayland"}" "--enable-system-pixman" - "--with-libclang-path=${llvmPackages.libclang.lib}/lib" + "--with-libclang-path=${llvmPackagesBuildBuild.libclang.lib}/lib" "--with-system-ffi" "--with-system-icu" "--with-system-jpeg" @@ -290,6 +304,9 @@ buildStdenv.mkDerivation ({ "--with-system-png" # needs APNG support "--with-system-webp" "--with-system-zlib" + # for firefox, host is buildPlatform, target is hostPlatform + "--host=${buildStdenv.buildPlatform.config}" + "--target=${buildStdenv.hostPlatform.config}" ] # LTO is done using clang and lld on Linux. ++ lib.optionals ltoSupport [ @@ -332,7 +349,6 @@ buildStdenv.mkDerivation ({ fontconfig freetype glib - gnum4 gtk3 icu libffi diff --git a/pkgs/development/compilers/rust/1_60.nix b/pkgs/development/compilers/rust/1_60.nix index 0153b5d23a9..16f8512952d 100644 --- a/pkgs/development/compilers/rust/1_60.nix +++ b/pkgs/development/compilers/rust/1_60.nix @@ -33,7 +33,7 @@ import ./default.nix { llvmShared = llvm_14.override { enableSharedLibraries = true; }; # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox - llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_14; + llvmPackages = llvmPackages_14; # Note: the version MUST be one version prior to the version we're # building diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix index 6dfc8a49063..6c579373f5d 100644 --- a/pkgs/development/compilers/rust/default.nix +++ b/pkgs/development/compilers/rust/default.nix @@ -10,7 +10,7 @@ , llvmSharedForBuild , llvmSharedForHost , llvmSharedForTarget -, llvmPackagesForBuild # Exposed through rustc for LTO in Firefox +, llvmPackages # Exposed through rustc for LTO in Firefox }: { stdenv, lib , buildPackages @@ -64,7 +64,7 @@ in version = rustcVersion; sha256 = rustcSha256; inherit enableRustcDev; - inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackagesForBuild; + inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackages; patches = rustcPatches; diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix index 1087ac05908..d167cf91c36 100644 --- a/pkgs/development/compilers/rust/rustc.nix +++ b/pkgs/development/compilers/rust/rustc.nix @@ -1,5 +1,5 @@ { lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget -, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackagesForBuild +, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackages , fetchurl, file, python3 , darwin, cmake, rust, rustPlatform , pkg-config, openssl @@ -179,7 +179,7 @@ in stdenv.mkDerivation rec { passthru = { llvm = llvmShared; - llvmPackages = llvmPackagesForBuild; + inherit llvmPackages; }; meta = with lib; { diff --git a/pkgs/misc/sndio/default.nix b/pkgs/misc/sndio/default.nix index 7b5774d8054..ea2229f264e 100644 --- a/pkgs/misc/sndio/default.nix +++ b/pkgs/misc/sndio/default.nix @@ -11,6 +11,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; buildInputs = lib.optional stdenv.hostPlatform.isLinux alsa-lib; + configurePlatforms = []; postInstall = '' install -Dm644 contrib/sndiod.service $out/lib/systemd/system/sndiod.service diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ec9e9917f0..d9f31ad43e4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26452,11 +26452,7 @@ with pkgs; filezilla = callPackage ../applications/networking/ftp/filezilla { }; - buildMozillaMach = - let callPackage = newScope { - inherit (rustPackages) cargo rustc; - }; - in opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) {}; + buildMozillaMach = opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) {}; firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {});