diff options
-rw-r--r-- | pkgs/tools/misc/mandoc/default.nix | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 5eae82c14a5..75c6ac8b41b 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -1,6 +1,12 @@ { lib, stdenv, fetchurl, zlib, perl }: let + # check if we can execute binaries for the host platform on the build platform + # even though the platforms aren't the same. mandoc can't be cross compiled + # (easily) because of its configurePhase, but we want to allow “native” cross + # such as pkgsLLVM and pkgsStatic. + executableCross = stdenv.hostPlatform.isCompatible stdenv.buildPlatform; + # Name of an UTF-8 locale _always_ present at runtime, used for UTF-8 support # (locale set by the user may differ). This would usually be C.UTF-8, but # darwin has no such locale. @@ -10,6 +16,9 @@ let else "C.UTF-8"; in +assert executableCross || + throw "mandoc relies on executing compiled programs in configurePhase, can't cross compile"; + stdenv.mkDerivation rec { pname = "mandoc"; version = "1.14.6"; @@ -27,6 +36,7 @@ stdenv.mkDerivation rec { PREFIX="$out" LD_OHASH="-lutil" CC=${stdenv.cc.targetPrefix}cc + AR=${stdenv.cc.bintools.targetPrefix}ar # Bypass the locale(1)-based check for UTF-8 support since it causes trouble: # * We only have meaningful locale(1) implementations for glibc and macOS # * NetBSD's locale(1) (used for macOS) depends on mandoc @@ -40,7 +50,7 @@ stdenv.mkDerivation rec { printf '%s' "$configureLocal" > configure.local ''; - doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + doCheck = executableCross; checkTarget = "regress"; checkInputs = [ perl ]; preCheck = "patchShebangs --build regress/regress.pl"; |