]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Configure: do not check for an absolute prefix in cross-builds
authorViktor Szakats <vszakats@users.noreply.github.com>
Fri, 27 Aug 2021 12:22:15 +0000 (12:22 +0000)
committerTomas Mraz <tomas@openssl.org>
Wed, 15 Nov 2023 10:10:26 +0000 (11:10 +0100)
The check is always made according to the host platform's rules, which may
not be true for true when the target platform is different, e.g. when
cross-building for Windows on a Linux machine. So skip this check when
used together with the `--cross-compile-prefix=` option.

Fixes https://github.com/openssl/openssl/issues/9520

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22723)

Configure

index d7f5ef8ce3316b616c1ee2c9e68ec947e4ff1edf..cbba1749b5a326211d15510ba0f03cb0c7cba332 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -980,8 +980,6 @@ while (@argvcopy)
                 if (/^--prefix=(.*)$/)
                         {
                         $config{prefix}=$1;
-                        die "Directory given with --prefix MUST be absolute\n"
-                                unless file_name_is_absolute($config{prefix});
                         }
                 elsif (/^--api=(.*)$/)
                         {
@@ -1440,6 +1438,11 @@ foreach (keys %useradd) {
 # At this point, we can forget everything about %user and %useradd,
 # because it's now all been merged into the corresponding $config entry
 
+if ($config{prefix} && !$config{CROSS_COMPILE}) {
+    die "Directory given with --prefix MUST be absolute\n"
+        unless file_name_is_absolute($config{prefix});
+}
+
 if (grep { $_ =~ /(?:^|\s)-static(?:\s|$)/ } @{$config{LDFLAGS}}) {
     disable('static', 'pic', 'threads');
 }