[openssl] OpenSSL_1_1_1-stable update
matthias.st.pierre at ncp-e.com
matthias.st.pierre at ncp-e.com
Sun Oct 13 15:24:53 UTC 2019
The branch OpenSSL_1_1_1-stable has been updated
via df22cbb555430b7206a8d30cb41f4e28b9e28370 (commit)
from bc458b0dd00acf8114dee7e4ac6423288a570697 (commit)
- Log -----------------------------------------------------------------
commit df22cbb555430b7206a8d30cb41f4e28b9e28370
Author: Dr. Matthias St. Pierre <Matthias.St.Pierre at ncp-e.com>
Date: Sat Sep 21 00:14:16 2019 +0200
Configure: accept Windows style compiler options
Currently the Configure command only supports passing UNIX style
options (`-opt`) to the compiler. Passing Windows style options
(`/opt`) yields an error. Fortunately, the compiler accepts both
types of options, nevertheless this commit fixes that discrimination
of Windows users.
Reviewed-by: Richard Levitte <levitte at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9961)
(cherry picked from commit f246f54f18d380791cc60be4aea0fbc7253a9a20)
-----------------------------------------------------------------------
Summary of changes:
Configure | 28 ++++++++++++++++++++++++----
INSTALL | 15 ++++++++++++---
2 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/Configure b/Configure
index f498ac2f81..59313117f0 100755
--- a/Configure
+++ b/Configure
@@ -69,7 +69,15 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx
# no-sse2 disables IA-32 SSE2 code in assembly modules, the above
# mentioned '386' option implies this one
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
-# -<xxx> +<xxx> compiler options are passed through
+# -<xxx> +<xxx> All options which are unknown to the 'Configure' script are
+# /<xxx> passed through to the compiler. Unix-style options beginning
+# with a '-' or '+' are recognized, as well as Windows-style
+# options beginning with a '/'. If the option contains arguments
+# separated by spaces, then the URL-style notation %20 can be
+# used for the space character in order to avoid having to quote
+# the option. For example, -opt%20arg gets expanded to -opt arg.
+# In fact, any ASCII character can be encoded as %xx using its
+# hexadecimal encoding.
# -static while -static is also a pass-through compiler option (and
# as such is limited to environments where it's actually
# meaningful), it triggers a number configuration options,
@@ -777,7 +785,7 @@ while (@argvcopy)
{
die "FIPS mode not supported\n";
}
- elsif (/^[-+]/)
+ elsif (m|^[-+/]|)
{
if (/^--prefix=(.*)$/)
{
@@ -854,11 +862,11 @@ while (@argvcopy)
{
push @{$useradd{LDFLAGS}}, $_;
}
- elsif (/^-D(.*)$/)
+ elsif (m|^[-/]D(.*)$|)
{
push @{$useradd{CPPDEFINES}}, $1;
}
- elsif (/^-I(.*)$/)
+ elsif (m|^[-/]I(.*)$|)
{
push @{$useradd{CPPINCLUDES}}, $1;
}
@@ -868,11 +876,23 @@ while (@argvcopy)
}
else # common if (/^[-+]/), just pass down...
{
+ # Treat %xx as an ASCII code (e.g. replace %20 by a space character).
+ # This provides a simple way to pass options with arguments separated
+ # by spaces without quoting (e.g. -opt%20arg translates to -opt arg).
$_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei;
push @{$useradd{CFLAGS}}, $_;
push @{$useradd{CXXFLAGS}}, $_;
}
}
+ elsif (m|^/|)
+ {
+ # Treat %xx as an ASCII code (e.g. replace %20 by a space character).
+ # This provides a simple way to pass options with arguments separated
+ # by spaces without quoting (e.g. /opt%20arg translates to /opt arg).
+ $_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei;
+ push @{$useradd{CFLAGS}}, $_;
+ push @{$useradd{CXXFLAGS}}, $_;
+ }
else
{
die "target already defined - $target (offending arg: $_)\n" if ($target ne "");
diff --git a/INSTALL b/INSTALL
index f61c6de05e..c4c65c113b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -608,10 +608,19 @@
Take note of the VAR=value documentation below and how
these flags interact with those variables.
- -xxx, +xxx
+ -xxx, +xxx, /xxx
Additional options that are not otherwise recognised are
- passed through as they are to the compiler as well. Again,
- consult your compiler documentation.
+ passed through as they are to the compiler as well.
+ Unix-style options beginning with a '-' or '+' and
+ Windows-style options beginning with a '/' are recognized.
+ Again, consult your compiler documentation.
+
+ If the option contains arguments separated by spaces,
+ then the URL-style notation %20 can be used for the space
+ character in order to avoid having to quote the option.
+ For example, -opt%20arg gets expanded to -opt arg.
+ In fact, any ASCII character can be encoded as %xx using its
+ hexadecimal encoding.
Take note of the VAR=value documentation below and how
these flags interact with those variables.
More information about the openssl-commits
mailing list