Put user flags last for priority.
authorRich Salz <rsalz@akamai.com>
Fri, 12 Feb 2016 19:40:33 +0000 (14:40 -0500)
committerRich Salz <rsalz@openssl.org>
Fri, 12 Feb 2016 20:42:33 +0000 (15:42 -0500)
Reviewed-by: Richard Levitte <levitte@openssl.org>
Configure

index 0b885d0..2ba33cb 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -643,7 +643,7 @@ foreach (@argvcopy)
                else    # common if (/^[-+]/), just pass down...
                        {
                        $_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei;
-                       $user_cflags.=$_." ";
+                       $user_cflags.=" ".$_;
                        }
                }
        elsif ($_ =~ /^([^:]+):(.+)$/)
@@ -887,10 +887,10 @@ my $no_shared_warn=0;
 my $no_user_cflags=0;
 my $no_user_defines=0;
 
-if ($user_cflags ne "")        { $config{cflags}="$user_cflags$config{cflags}"; }
-else                   { $no_user_cflags=1;       }
-if (@user_defines)     { $config{defines}=[ @user_defines, @{$config{defines}} ]; }
-else                   { $no_user_defines=1;       }
+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
@@ -1141,30 +1141,32 @@ 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)
                {
-               $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
+               $addflags .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
                }
        if ($ecc eq "clang")
                {
                foreach $wopt (split /\s+/, $clang_devteam_warn)
                        {
-                       $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
+                       $addflags .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
                        }
                }
        if ($target !~ /^mingw/)
                {
                foreach $wopt (split /\s+/, $memleak_devteam_backtrace)
                        {
-                       $config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
+                       $addflags .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
                        }
                if ($target =~ /^BSD-/)
                        {
                        $config{ex_libs} .= " -lexecinfo";
                        }
                }
+       $config{cflags} = "$addflags $config{cflags}" if $addflags ne '';
        }
 
 # If we use the unified build, collect information from build.info files