From 63468812bdbee64bb3ca757c4692cb3cf2ace01e Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Tue, 30 Jan 2018 17:16:13 +0100 Subject: Configure: add configure command line C flags after the configured C flags Fixes #5203 Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/5207) --- Configure | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Configure b/Configure index 8410e42c62..cde97f9b2a 100755 --- a/Configure +++ b/Configure @@ -1074,13 +1074,6 @@ foreach (keys %user) { $config{$target_key} = $mkvalue->($ref_type, $user{$_}) || $mkvalue->($ref_type, $target{$target_key}); - if (defined $useradd{$_} && @{$useradd{$_}}) { - if (defined $config{$target_key}) { - push @{$config{$target_key}}, @{$useradd{$_}}; - } else { - $config{$target_key} = [ @{$useradd{$_}} ]; - } - } delete $config{$target_key} unless defined $config{$target_key}; } $config{plib_lflags} = [ $target{plib_lflags} ]; @@ -1088,9 +1081,6 @@ $config{plib_lflags} = [ $target{plib_lflags} ]; # Allow overriding the build file name $config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile"; -# ALL USE OF %useradd MUST BE DONE FROM HERE ON -%useradd = undef; - my %disabled_info = (); # For configdata.pm foreach my $what (sort keys %disabled) { $config{options} .= " no-$what"; @@ -1492,6 +1482,22 @@ unless ($disabled{afalgeng}) { push @{$config{openssl_other_defines}}, "OPENSSL_NO_AFALGENG" if ($disabled{afalgeng}); +# 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'; + + my $target_key = $user_to_target{$_} // lc $_; + + if (defined $config{$target_key}) { + push @{$config{$target_key}}, @{$useradd{$_}}; + } else { + $config{$target_key} = [ @{$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 -- cgit v1.2.3