firefox-unwrapped: fix cross compilation

main
Nick Cao 2 years ago
parent be29f4575e
commit f6c5761935
No known key found for this signature in database
GPG Key ID: 068A56CEF48FA2C1
  1. 24
      pkgs/applications/networking/browsers/firefox/common.nix
  2. 1
      pkgs/misc/sndio/default.nix
  3. 6
      pkgs/top-level/all-packages.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

@ -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

@ -26447,11 +26447,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 {});

Loading…
Cancel
Save