From: Richard Levitte Date: Sat, 13 Feb 2016 12:02:35 +0000 (+0100) Subject: Rethink the method to place user cflags last X-Git-Tag: OpenSSL_1_1_0-pre3~39 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=63994098d52b31ff8c143fc2662f2fe9e3c016f1 Rethink the method to place user cflags last The previous method had some unfortunate consequences with --strict-warnings. To counteract, revert part of the previous change and move down the block of code that adds the user cflags and defines. Reviewed-by: Rich Salz --- diff --git a/Configure b/Configure index 138ffd3d7e..e28fd10dc7 100755 --- a/Configure +++ b/Configure @@ -878,11 +878,6 @@ my $no_shared_warn=0; my $no_user_cflags=0; my $no_user_defines=0; -if ($user_cflags ne "") { $config{cflags}="$config{cflags}$user_cflags"; } -else { $no_user_cflags=1; } -if (@user_defines) { $config{defines}=[ @{$config{defines}}, @user_defines ]; } -else { $no_user_defines=1; } - # The DSO code currently always implements all functions so that no # applications will have to worry about that from a compilation point # of view. However, the "method"s may return zero unless that platform @@ -1132,34 +1127,39 @@ if (defined($config{api})) { if ($strict_warnings) { my $wopt; - my $addflags = ''; die "ERROR --strict-warnings requires gcc or clang" unless $ecc eq 'gcc' || $ecc eq 'clang'; foreach $wopt (split /\s+/, $gcc_devteam_warn) { - $addflags .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/) + $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/) } if ($ecc eq "clang") { foreach $wopt (split /\s+/, $clang_devteam_warn) { - $addflags .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/) + $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/) } } if ($target !~ /^mingw/) { foreach $wopt (split /\s+/, $memleak_devteam_backtrace) { - $addflags .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/) + $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/) } if ($target =~ /^BSD-/) { $config{ex_libs} .= " -lexecinfo"; } } - $config{cflags} = "$addflags $config{cflags}" if $addflags ne ''; } +if ($user_cflags ne "") { $config{cflags}="$config{cflags}$user_cflags"; } +else { $no_user_cflags=1; } +if (@user_defines) { $config{defines}=[ @{$config{defines}}, @user_defines ]; } +else { $no_user_defines=1; } + +# ALL MODIFICATIONS TO %config and %target MUST BE DONE FROM HERE ON + # If we use the unified build, collect information from build.info files my %unified_info = ();