X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=Configure;h=3c40a0e25e16de41d7424a93fe3fb1597de91319;hp=a6f5a319694762d4352442719288c0abc3996dd7;hb=604e591ed75eff9296c21ee5fe93f3e9ec246094;hpb=2ad2281a8005dbc9046059693995c78a04ed9e37;ds=sidebyside diff --git a/Configure b/Configure index a6f5a31969..3c40a0e25e 100755 --- a/Configure +++ b/Configure @@ -278,11 +278,15 @@ if (defined env($local_config_envname)) { } } +# Save away perl command information +$config{perl_cmd} = $^X; +$config{perl_version} = $Config{version}; +$config{perl_archname} = $Config{archname}; + $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; @@ -435,8 +439,6 @@ our %disabled = ( # "what" => "comment" "ssl3" => "default", "ssl3-method" => "default", "ubsan" => "default", - #TODO(TLS1.3): Temporarily disabled while this is a WIP - "tls1_3" => "default", "tls13downgrade" => "default", "unit-test" => "default", "weak-ssl-ciphers" => "default", @@ -534,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, @@ -545,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 @@ -566,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', ); @@ -781,7 +788,7 @@ while (@argvcopy) } elsif (/^--cross-compile-prefix=(.*)$/) { - $config{cross_compile_prefix}=$1; + $user{CROSS_COMPILE}=$1; } elsif (/^--config=(.*)$/) { @@ -888,17 +895,6 @@ if (grep { $_ =~ /(^|\s)-Wl,-rpath,/ } ($user{LDLIBS} ? @{$user{LDLIBS}} : ()) "***** any of asan, msan or ubsan\n"; } -if (scalar(@seed_sources) == 0) { - print "Using implicit seed configuration\n"; - push @seed_sources, 'os'; -} -die "Cannot seed with none and anything else" - if scalar(grep { $_ eq 'none' } @seed_sources) > 0 - && scalar(@seed_sources) > 1; -push @{$config{openssl_other_defines}}, - map { (my $x = $_) =~ tr|[\-a-z]|[_A-Z]|; "OPENSSL_RAND_SEED_$x" } - @seed_sources; - my @tocheckfor = (keys %disabled); while (@tocheckfor) { my %new_tocheckfor = (); @@ -942,6 +938,17 @@ if ($target eq "HASH") { print "Configuring OpenSSL version $config{version} ($config{version_num}) "; print "for $target\n"; +if (scalar(@seed_sources) == 0) { + print "Using os-specific seed configuration\n"; + push @seed_sources, 'os'; +} +die "Cannot seed with none and anything else" + if scalar(grep { $_ eq 'none' } @seed_sources) > 0 + && scalar(@seed_sources) > 1; +push @{$config{openssl_other_defines}}, + map { (my $x = $_) =~ tr|[\-a-z]|[_A-Z]|; "OPENSSL_RAND_SEED_$x" } + @seed_sources; + # Backward compatibility? if ($target =~ m/^CygWin32(-.*)$/) { $target = "Cygwin".$1; @@ -1036,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. @@ -1292,7 +1295,7 @@ if ($target{sys_id} ne "") unless ($disabled{asm}) { $target{cpuid_asm_src}=$table{DEFAULTS}->{cpuid_asm_src} if ($config{processor} eq "386"); - push @{$config{defines}}, "OPENSSL_CPUID_OBJ" if ($target{cpuid_asm_src} ne "mem_clr.o"); + push @{$config{defines}}, "OPENSSL_CPUID_OBJ" if ($target{cpuid_asm_src} ne "mem_clr.c"); $target{bn_asm_src} =~ s/\w+-gf2m.c// if (defined($disabled{ec2m})); @@ -1343,6 +1346,9 @@ unless ($disabled{asm}) { if ($target{ec_asm_src} =~ /ecp_nistz256/) { push @{$config{defines}}, "ECP_NISTZ256_ASM"; } + if ($target{ec_asm_src} =~ /x25519/) { + push @{$config{defines}}, "X25519_ASM"; + } if ($target{padlock_asm_src} ne $table{DEFAULTS}->{padlock_asm_src}) { push @{$config{defines}}, "PADLOCK_ASM"; } @@ -1931,7 +1937,7 @@ EOF # If it isn't in the source tree, we assume it's generated # in the build tree - if (! -f $s) { + if (! -f $s || $generate{$_}) { $s = cleanfile($buildd, $_, $blddir); } # We recognise C++, C and asm files @@ -1959,7 +1965,7 @@ EOF # If it isn't in the source tree, we assume it's generated # in the build tree - if (! -f $s) { + if (! -f $s || $generate{$_}) { $s = cleanfile($buildd, $_, $blddir); } @@ -2298,6 +2304,8 @@ if ($builder eq "unified") { EOF } +print OUT + "# The following data is only used when this files is use as a script\n"; print OUT "my \%makevars = (\n"; foreach (sort keys %user) { print OUT ' ',$_,' ' x (20 - length $_),'=> ', @@ -2320,6 +2328,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) { @@ -2372,17 +2381,22 @@ _____ -verbose => 2); } if ($dump || $cmdline) { - print "\n(with current working directory = $here)"; - print "\nCommand line:\n\n"; + print "\nCommand line (with current working directory = $here):\n\n"; print ' ',join(' ', $config{perl}, catfile($config{sourcedir}, 'Configure'), @{$config{perlargv}}), "\n"; + print "\nPerl information:\n\n"; + print ' ',$config{perl_cmd},"\n"; + print ' ',$config{perl_version},' for ',$config{perl_archname},"\n"; } if ($dump || $options) { my $longest = 0; + my $longest2 = 0; foreach my $what (@disablables) { $longest = length($what) if $longest < length($what); + $longest2 = length($disabled{$what}) + if $disabled{$what} && $longest2 < length($disabled{$what}); } print "\nEnabled features:\n\n"; foreach my $what (@disablables) { @@ -2392,7 +2406,7 @@ _____ foreach my $what (@disablables) { if ($disabled{$what}) { print " $what", ' ' x ($longest - length($what) + 1), - "[$disabled{$what}]", ' ' x (10 - length($disabled{$what})); + "[$disabled{$what}]", ' ' x ($longest2 - length($disabled{$what}) + 1); print $disabled_info{$what}->{macro} if $disabled_info{$what}->{macro}; print ' (skip ', @@ -2426,13 +2440,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}); @@ -2586,17 +2603,6 @@ my %builders = ( $builders{$builder}->($builder_platform, @builder_opts); -# Show a note on the use of configdata.pm, but ONLY for release 1.1.1 -# (i.e. this message disappears with the following update, 1.1.1a) -print <<"EOF" if ($config{version_num} =~ m|^0x1010100.L$|); - -NOTE: Starting with OpenSSL 1.1.1, 'Configure' doesn't display all the disabled -options or the "make variables" with their values. Instead, you must use -'configdata.pm' as a script to get a display of the configuration data. For -help, please do this: - - perl configdata.pm --help -EOF print <<"EOF" if ($disabled{threads} eq "unavailable"); The library could not be configured for supporting multi-threaded @@ -2621,6 +2627,18 @@ safest course of action is to clean the source directory and redo this configuration. EOF +print <<"EOF"; + +********************************************************************** +*** *** +*** If you want to report a building issue, please include the *** +*** output from this command: *** +*** *** +*** perl configdata.pm --dump *** +*** *** +********************************************************************** +EOF + exit(0); ######################################################################