openssl: correct cross compile for mingw

This commit is contained in:
brano543 2021-01-01 21:42:07 +01:00 committed by John Ericson
parent ee8e469ca9
commit dc9694c78e
2 changed files with 15 additions and 14 deletions

View file

@ -6,7 +6,7 @@
# Used to avoid cross compiling perl, for example, in darwin bootstrap tools.
# This will cause c_rehash to refer to perl via the environment, but otherwise
# will produce a perfectly functional openssl binary and library.
, withPerl ? true
, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform
}:
assert (
@ -42,8 +42,10 @@ let
substituteInPlace "$a" \
--replace /bin/rm rm
done
'' + optionalString (versionAtLeast version "1.1.1") ''
substituteInPlace config --replace '/usr/bin/env' '${coreutils}/bin/env'
''
# config is a configure script which is not installed.
+ optionalString (versionAtLeast version "1.1.1") ''
substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env'
'' + optionalString (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isMusl) ''
substituteInPlace crypto/async/arch/async_posix.h \
--replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \

View file

@ -465,16 +465,18 @@ in
perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; };
openssl = buildPackages.openssl.override {
fetchurl = stdenv.fetchurlBoot;
coreutils = buildPackages.coreutils.override {
fetchurl = stdenv.fetchurlBoot;
buildPackages = {
coreutils = buildPackages.coreutils.override {
fetchurl = stdenv.fetchurlBoot;
inherit perl;
xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
gmp = null;
aclSupport = false;
attrSupport = false;
};
inherit perl;
xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
gmp = null;
aclSupport = false;
attrSupport = false;
};
inherit perl;
buildPackages = { inherit perl; };
};
libssh2 = buildPackages.libssh2.override {
fetchurl = stdenv.fetchurlBoot;
@ -16901,10 +16903,7 @@ in
wolfssl = callPackage ../development/libraries/wolfssl { };
openssl =
if stdenv.hostPlatform.isMinGW # Work around broken cross build
then openssl_1_0_2
else openssl_1_1;
openssl = openssl_1_1;
inherit (callPackages ../development/libraries/openssl { })
openssl_1_0_2