From c1a09254e4c763b62811bc412afa1498699fce50 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Tue, 23 Apr 2019 09:24:38 +0200 Subject: [PATCH] Configure: merge all of %user and %useradd into %config earlier This came about with the realisation that upper case CFLAGS, LDFLAGS and so on aren't treated much after that, and this makes figuring out user added flags significantly easier, just look in %config. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/8812) --- Configure | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Configure b/Configure index 3b7ca360b6..b330fd6887 100755 --- a/Configure +++ b/Configure @@ -1202,6 +1202,22 @@ foreach (keys %user) { delete $config{$_} unless defined $config{$_}; } +# Finish up %config by appending things the user gave us on the command line +# apart from "make variables" +foreach (keys %useradd) { + # The must all be lists, so we assert that here + die "internal error: \$useradd{$_} isn't an ARRAY\n" + unless ref $useradd{$_} eq 'ARRAY'; + + if (defined $config{$_}) { + push @{$config{$_}}, @{$useradd{$_}}; + } else { + $config{$_} = [ @{$useradd{$_}} ]; + } +} +# At this point, we can forget everything about %user and %useradd, +# because it's now all been merged into the corresponding $config entry + # Allow overriding the build file name $config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile"; @@ -1281,8 +1297,7 @@ if ($target =~ /^mingw/ && `$config{CC} --target-help 2>&1` =~ m/-mno-cygwin/m) } if ($target =~ /linux.*-mips/ && !$disabled{asm} - && !grep { $_ !~ /-m(ips|arch=)/ } (@{$user{CFLAGS}}, - @{$useradd{CFLAGS}})) { + && !grep { $_ !~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) { # minimally required architecture flags for assembly modules my $value; $value = '-mips2' if ($target =~ /mips32/); @@ -1307,8 +1322,7 @@ unless ($disabled{threads}) { # system-dependent compiler options that are necessary. We # can't truly check that the given options are correct, but # we expect the user to know what [s]He is doing. - if (!@{$user{CFLAGS}} && !@{$useradd{CFLAGS}} - && !@{$user{CPPDEFINES}} && !@{$useradd{CPPDEFINES}}) { + if (!@{$config{CFLAGS}} && !@{$config{CPPDEFINES}}) { die "You asked for multi-threading support, but didn't\n" ,"provide any system-specific compiler options\n"; } @@ -1571,10 +1585,10 @@ if ($strict_warnings) } foreach my $idx (qw(CFLAGS CXXFLAGS)) { - $useradd{$idx} = [ map { $_ eq '--ossl-strict-warnings' - ? @{$strict_warnings_collection{$idx}} - : ( $_ ) } - @{$useradd{$idx}} ]; + $config{$idx} = [ map { $_ eq '--ossl-strict-warnings' + ? @{$strict_warnings_collection{$idx}} + : ( $_ ) } + @{$config{$idx}} ]; } unless ($disabled{"crypto-mdebug-backtrace"}) @@ -1638,20 +1652,6 @@ unless ($disabled{ktls}) { push @{$config{openssl_other_defines}}, "OPENSSL_NO_KTLS" if ($disabled{ktls}); -# Finish up %config by appending things the user gave us on the command line -# apart from "make variables" -foreach (keys %useradd) { - # The must all be lists, so we assert that here - die "internal error: \$useradd{$_} isn't an ARRAY\n" - unless ref $useradd{$_} eq 'ARRAY'; - - if (defined $config{$_}) { - push @{$config{$_}}, @{$useradd{$_}}; - } else { - $config{$_} = [ @{$useradd{$_}} ]; - } -} - # ALL MODIFICATIONS TO %config and %target MUST BE DONE FROM HERE ON # If we use the unified build, collect information from build.info files -- 2.34.1