From f729ba5537fe0733764b7eaa6f73f6e5f7f9b666 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 2 Feb 2018 12:27:29 +0100 Subject: [PATCH] Make CROSS_COMPILE another supported "make variable" in Configure No more special casing for that one, and this means it gets displayed by 'perl configdata.pm --make-variables' among all the others. Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/5247) --- Configure | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Configure b/Configure index 32ba3558cd..5ca4f8fcc5 100755 --- a/Configure +++ b/Configure @@ -287,7 +287,6 @@ $config{prefix}=""; $config{openssldir}=""; $config{processor}=""; $config{libdir}=""; -$config{cross_compile_prefix}=""; my $auto_threads=1; # enable threads automatically? true by default my $default_ranlib; @@ -537,6 +536,7 @@ my %user = ( CPPFLAGS => [], # -D, -I, -Wp, CPPDEFINES => [], # Alternative for -D CPPINCLUDES => [], # Alternative for -I + CROSS_COMPILE => undef, HASHBANGPERL=> undef, LD => undef, LDFLAGS => [], # -L, -Wl, @@ -548,6 +548,9 @@ my %user = ( RCFLAGS => [], RM => undef, ); +# Info about what "make variables" may be prefixed with the cross compiler +# prefix. This should NEVER mention any such variable with a list for value. +my @user_crossable = qw ( AR AS CC CXX CPP LD MT RANLIB RC ); # The same but for flags given as Configure options. These are *additional* # input, as opposed to the VAR=string option that override the corresponding # config target attributes @@ -569,6 +572,7 @@ my %user_to_target = ( # If not given here, the value is the lc of the key CPPDEFINES => 'defines', CPPINCLUDES => 'includes', + CROSS_COMPILE => 'cross_compile_prefix', LDFLAGS => 'lflags', LDLIBS => 'ex_libs', ); @@ -784,7 +788,7 @@ while (@argvcopy) } elsif (/^--cross-compile-prefix=(.*)$/) { - $config{cross_compile_prefix}=$1; + $user{CROSS_COMPILE}=$1; } elsif (/^--config=(.*)$/) { @@ -1039,10 +1043,6 @@ $target{dso_extension}=$target{shared_extension_simple}; ($target{shared_import_extension}=$target{shared_extension_simple}.".a") if ($config{target} =~ /^(?:Cygwin|mingw)/); - -$config{cross_compile_prefix} = env('CROSS_COMPILE') - if $config{cross_compile_prefix} eq ""; - # Allow overriding the names of some tools. USE WITH CARE # Note: only Unix cares about HASHBANGPERL... that explains # the default string. @@ -2326,6 +2326,7 @@ foreach my $what (sort keys %disabled_info) { print OUT " },\n"; } print OUT ");\n"; +print OUT 'my @user_crossable = qw( ', join (' ', @user_crossable), " );\n"; print OUT << 'EOF'; # If run directly, we can give some answers, and even reconfigure unless (caller) { @@ -2437,13 +2438,16 @@ _____ } if ($dump || $makevars) { print "\nMakevars:\n\n"; - foreach (sort keys %makevars) { - print ' ',$_,' ' x (16 - length $_),'= ', - (ref $config{$makevars{$_}} eq 'ARRAY' - ? join(' ', @{$config{$makevars{$_}}}) - : $config{$makevars{$_}}), + foreach my $var (sort keys %makevars) { + my $prefix = ''; + $prefix = $config{cross_compile_prefix} + if grep { $var eq $_ } @user_crossable; + print ' ',$var,' ' x (16 - length $var),'= ', + (ref $config{$makevars{$var}} eq 'ARRAY' + ? join(' ', @{$config{$makevars{$var}}}) + : $prefix.$config{$makevars{$var}}), "\n" - if defined $config{$makevars{$_}}; + if defined $config{$makevars{$var}}; } my @buildfile = ($config{builddir}, $config{build_file});