From b62864adf47d06897caff6f9e7b485febc814257 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 10 Dec 2017 01:37:34 -0500 Subject: [PATCH 01/12] e2fsprogs: Enable cross-compilation --- pkgs/tools/filesystems/e2fsprogs/default.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix index e6a83e32632..a27eb5094db 100644 --- a/pkgs/tools/filesystems/e2fsprogs/default.nix +++ b/pkgs/tools/filesystems/e2fsprogs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, libuuid, gettext, texinfo }: +{ stdenv, buildPackages, fetchurl, pkgconfig, libuuid, gettext, texinfo }: stdenv.mkDerivation rec { name = "e2fsprogs-1.43.8"; @@ -10,15 +10,9 @@ stdenv.mkDerivation rec { outputs = [ "bin" "dev" "out" "man" "info" ]; - nativeBuildInputs = [ pkgconfig texinfo ]; + nativeBuildInputs = [ pkgconfig texinfo buildPackages.stdenv.cc ]; buildInputs = [ libuuid ] ++ stdenv.lib.optional (!stdenv.isLinux) gettext; - crossAttrs = { - preConfigure = '' - export CC=$crossConfig-gcc - ''; - }; - configureFlags = if stdenv.isLinux then [ "--enable-elf-shlibs" "--enable-symlink-install" "--enable-relative-symlinks" From 3fe8e610f0fdb73fc533b5156f703a81d8f4b0f7 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 23 Jan 2018 11:34:25 -0600 Subject: [PATCH 02/12] e2fsprogs: depsBuildBuild --- pkgs/tools/filesystems/e2fsprogs/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix index a27eb5094db..6326cda3539 100644 --- a/pkgs/tools/filesystems/e2fsprogs/default.nix +++ b/pkgs/tools/filesystems/e2fsprogs/default.nix @@ -10,7 +10,8 @@ stdenv.mkDerivation rec { outputs = [ "bin" "dev" "out" "man" "info" ]; - nativeBuildInputs = [ pkgconfig texinfo buildPackages.stdenv.cc ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ pkgconfig texinfo ]; buildInputs = [ libuuid ] ++ stdenv.lib.optional (!stdenv.isLinux) gettext; configureFlags = From fffd72cb5668fab958a3dafbb0b6cf8e4384abfe Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 14 Jan 2018 18:51:53 -0600 Subject: [PATCH 03/12] lsof: fix for cross --- pkgs/development/tools/misc/lsof/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix index 76c83e2dbeb..aa6bd003ed3 100644 --- a/pkgs/development/tools/misc/lsof/default.nix +++ b/pkgs/development/tools/misc/lsof/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses }: +{ stdenv, fetchurl, buildPackages, ncurses }: let dialect = with stdenv.lib; last (splitString "-" stdenv.system); in @@ -6,6 +6,7 @@ stdenv.mkDerivation rec { name = "lsof-${version}"; version = "4.89"; + depsBuildBuild = [ buildPackages.stdenv.cc ]; buildInputs = [ ncurses ]; src = fetchurl { @@ -31,7 +32,7 @@ stdenv.mkDerivation rec { # Stop build scripts from searching global include paths LSOF_INCLUDE = "${stdenv.cc.libc}/include"; - configurePhase = "./Configure -n ${dialect}"; + configurePhase = "LINUX_CONF_CC=$CC_FOR_BUILD LSOF_CC=$CC LSOF_AR=\"$AR cr\" LSOF_RANLIB=$RANLIB ./Configure -n ${dialect}"; preBuild = '' sed -i Makefile -e 's/^CFGF=/& -DHASIPv6=1/;' -e 's/-lcurses/-lncurses/' for filepath in $(find dialects/${dialect} -type f); do From 10aa7a9611b4ba64c8b229ddc8cb912045e8ad9c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 14 Jan 2018 18:41:04 -0600 Subject: [PATCH 04/12] jwhois: set AR to fix cross build --- pkgs/tools/networking/jwhois/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/networking/jwhois/default.nix b/pkgs/tools/networking/jwhois/default.nix index 1d7932c7ad3..cd0821ef9ef 100644 --- a/pkgs/tools/networking/jwhois/default.nix +++ b/pkgs/tools/networking/jwhois/default.nix @@ -15,6 +15,8 @@ stdenv.mkDerivation { patches = [ ./connect.patch ./service-name.patch ]; + makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ]; + meta = { description = "A client for the WHOIS protocol allowing you to query the owner of a domain name"; homepage = http://www.gnu.org/software/jwhois/; From 11281bb54d0eb8903792364cd4ad3192be81874f Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 14 Jan 2018 18:35:11 -0600 Subject: [PATCH 05/12] cron: fix for cross ($CC, no 'install -s') --- pkgs/tools/system/cron/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/system/cron/default.nix b/pkgs/tools/system/cron/default.nix index 4a8babfd630..d6347798053 100644 --- a/pkgs/tools/system/cron/default.nix +++ b/pkgs/tools/system/cron/default.nix @@ -14,7 +14,9 @@ stdenv.mkDerivation { preBuild = '' # do not set sticky bit in /nix/store substituteInPlace Makefile --replace ' -o root' ' ' --replace 111 755 --replace 4755 0755 - makeFlags="DESTROOT=$out CC=cc" + # do not strip during install, broken on cross and we'll do ourselves as needed + substituteInPlace Makefile --replace ' -s cron' ' cron' + makeFlags="DESTROOT=$out CC=$CC" # We want to ignore the $glibc/include/paths.h definition of # sendmail path. From 05096950505be8ba62cbf8bceda7c635cb11cf40 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sun, 14 Jan 2018 18:30:28 -0600 Subject: [PATCH 06/12] aspell: perl should be nativeBuildInput build fails otherwise, presumably not also needed as a buildInput for some reason. --- pkgs/development/libraries/aspell/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/aspell/default.nix b/pkgs/development/libraries/aspell/default.nix index 0f6f5e8dd14..cccd93e5d4d 100644 --- a/pkgs/development/libraries/aspell/default.nix +++ b/pkgs/development/libraries/aspell/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { patch -p1 < ${./data-dirs-from-nix-profiles.patch} ''; - buildInputs = [ perl ]; + nativeBuildInputs = [ perl ]; doCheck = true; From a0410d92268ef4c10561739b173e7bb91d832dbd Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 10 Dec 2017 01:36:44 -0500 Subject: [PATCH 07/12] rhash: Enable cross-compilation (cherry picked from commit 07f1d9eae440b3533ab53f424b31e541116e5623) --- pkgs/tools/security/rhash/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/security/rhash/default.nix b/pkgs/tools/security/rhash/default.nix index e33c680b457..68c3edc4cd2 100644 --- a/pkgs/tools/security/rhash/default.nix +++ b/pkgs/tools/security/rhash/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { # * .h files installed for static library target only # * .so.0 -> .so link only created in the static library install target buildPhase = '' - make lib-shared lib-static build-shared CC=cc PREFIX=$out + make lib-shared lib-static build-shared CC=$CC AR=$AR PREFIX=$out ''; # we don't actually want the static library, so we remove it after it From 3655157d2249795b0f09f77fc82624f668dc36df Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Fri, 15 Dec 2017 23:38:45 -0500 Subject: [PATCH 08/12] libomxil-bellagio: Enable cross-compilation --- pkgs/development/libraries/libomxil-bellagio/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libomxil-bellagio/default.nix b/pkgs/development/libraries/libomxil-bellagio/default.nix index 5140402eacb..28c8a915c63 100644 --- a/pkgs/development/libraries/libomxil-bellagio/default.nix +++ b/pkgs/development/libraries/libomxil-bellagio/default.nix @@ -8,7 +8,10 @@ stdenv.mkDerivation rec { url = "mirror://sourceforge/omxil/omxil/Bellagio%20${version}/${name}.tar.gz"; sha256 = "0k6p6h4npn8p1qlgq6z3jbfld6n1bqswzvxzndki937gr0lhfg2r"; }; - + + configureFlags = + stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "ac_cv_func_malloc_0_nonnull=yes" ]; + patches = [ ./fedora-fixes.patch ]; meta = with stdenv.lib; { From 4df330ea6e6a4b5b6882781b1c1b5f87e67d8300 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 17 Oct 2017 16:40:51 -0400 Subject: [PATCH 09/12] libgpg-error: Enable cross-compilation --- pkgs/development/libraries/libgpg-error/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix index 56bf9b177b5..4771e229d83 100644 --- a/pkgs/development/libraries/libgpg-error/default.nix +++ b/pkgs/development/libraries/libgpg-error/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gettext }: +{ stdenv, buildPackages, fetchurl, gettext }: stdenv.mkDerivation rec { name = "libgpg-error-${version}"; @@ -16,6 +16,7 @@ stdenv.mkDerivation rec { # If architecture-dependent MO files aren't available, they're generated # during build, so we need gettext for cross-builds. + crossAttrs.nativeBuildInputs = [ gettext buildPackages.stdenv.cc ]; crossAttrs.buildInputs = [ gettext ]; postConfigure = @@ -27,7 +28,7 @@ stdenv.mkDerivation rec { # Thus, re-run it with Bash. "${stdenv.shell} config.status"; - doCheck = true; + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; meta = with stdenv.lib; { homepage = https://www.gnupg.org/related_software/libgpg-error/index.html; @@ -45,4 +46,3 @@ stdenv.mkDerivation rec { maintainers = [ maintainers.fuuzetsu maintainers.vrthra ]; }; } - From 162398f907b7950e967b16076bcc12dfd9e76481 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 23 Jan 2018 11:38:46 -0600 Subject: [PATCH 10/12] libgpg-error: fixup --- pkgs/development/libraries/libgpg-error/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix index 4771e229d83..9faf7a40458 100644 --- a/pkgs/development/libraries/libgpg-error/default.nix +++ b/pkgs/development/libraries/libgpg-error/default.nix @@ -16,8 +16,8 @@ stdenv.mkDerivation rec { # If architecture-dependent MO files aren't available, they're generated # during build, so we need gettext for cross-builds. - crossAttrs.nativeBuildInputs = [ gettext buildPackages.stdenv.cc ]; - crossAttrs.buildInputs = [ gettext ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ gettext ]; postConfigure = stdenv.lib.optionalString stdenv.isSunOS @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { # Thus, re-run it with Bash. "${stdenv.shell} config.status"; - doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + doCheck = true; # not cross meta = with stdenv.lib; { homepage = https://www.gnupg.org/related_software/libgpg-error/index.html; From 2060f547dffed412c6df38b8c4dcb4088fea0024 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 23 Jan 2018 11:47:10 -0600 Subject: [PATCH 11/12] file: fix for cross For whatever reason "selfNativeBuildInput = true" doesn't seeem to do the trick here? (reasons may include "it's not intended to solve this problem" ;)) --- pkgs/tools/misc/file/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix index 47d67f91ec7..3765f913430 100644 --- a/pkgs/tools/misc/file/default.nix +++ b/pkgs/tools/misc/file/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zlib }: +{ stdenv, fetchurl, file, zlib }: stdenv.mkDerivation rec { name = "file-${version}"; @@ -12,6 +12,7 @@ stdenv.mkDerivation rec { sha256 = "0l1bfa0icng9vdwya00ff48fhvjazi5610ylbhl35qi13d6xqfc6"; }; + nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file; buildInputs = [ zlib ]; doCheck = true; From c68aa532d68df512a657608a02ef7400b7087873 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 17 Oct 2017 15:46:27 -0400 Subject: [PATCH 12/12] glib: Allow cross compilation tweaked to handle non-glibc along with others --- pkgs/development/libraries/glib/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index c0cf864e79a..656cdffbb4c 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -75,8 +75,13 @@ stdenv.mkDerivation rec { # internal pcre would only add <200kB, but it's relatively common configureFlags = [ "--with-pcre=system" ] ++ optional stdenv.isDarwin "--disable-compile-warnings" - ++ optional (stdenv.isFreeBSD || stdenv.isSunOS) "--with-libiconv=gnu" - ++ optional stdenv.isSunOS "--disable-dtrace"; + ++ optional (stdenv.hostPlatform.libc != "glibc") "--with-libiconv=gnu" + ++ optional stdenv.isSunOS "--disable-dtrace" + # Can't run this test when cross-compiling + ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) + [ "glib_cv_stack_grows=no" "glib_cv_uscore=no" ] + # GElf only supports elf64 hosts + ++ optional (!stdenv.hostPlatform.is64bit) "--disable-libelf"; NIX_CFLAGS_COMPILE = optional stdenv.isDarwin "-lintl" ++ optional stdenv.isSunOS "-DBSD_COMP";