X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=Configure;h=09376c835811cd868d4e455fba9a457f3090621a;hp=df492a2fb7730abad3387557f17c0acf65469c3f;hb=f218822871957a841acf63a3e39a7e8eecdd05b4;hpb=9e04edf2f309e7edc3f4c9a09d444b2fd23a1e46 diff --git a/Configure b/Configure index df492a2fb7..09376c8358 100755 --- a/Configure +++ b/Configure @@ -94,11 +94,11 @@ my $gcc_devteam_warn = "-DPEDANTIC -DREF_DEBUG -DDEBUG_UNUSED -DBIO_DEBUG" # TODO(openssl-team): fix problems and investigate if (at least) the # following warnings can also be enabled: # -Wswitch-enum -# -Wunused-macros # -Wcast-align # -Wunreachable-code -# -Wlanguage-extension-token -# -Wextended-offsetof +# -Wlanguage-extension-token -- no, we use asm() +# -Wunused-macros -- no, too tricky for BN and _XOPEN_SOURCE etc +# -Wextended-offsetof -- no, needed in CMS ASN1 code my $clang_devteam_warn = "" . " -Qunused-arguments" . " -Wextra" @@ -208,13 +208,7 @@ $config{cross_compile_prefix}=""; $config{fipslibdir}="/usr/local/ssl/fips-2.0/lib/"; my $nofipscanistercheck=0; $config{baseaddr}="0xFB00000"; -my $no_threads=0; my $threads=0; -$config{no_shared}=0; # but "no-shared" is default -my $zlib=1; # but "no-zlib" is default -my $no_rfc3779=0; -my $no_asm=0; -my $no_dso=0; my $default_ranlib; $config{fips}=0; @@ -780,15 +774,15 @@ foreach (sort (keys %disabled)) printf " no-%-12s %-10s", $_, "[$disabled{$_}]"; if (/^dso$/) - { $no_dso = 1; } + { } elsif (/^threads$/) - { $no_threads = 1; } + { } elsif (/^shared$/) - { $config{no_shared} = 1; } + { } elsif (/^pic$/) { } elsif (/^zlib$/) - { $zlib = 0; } + { } elsif (/^dynamic-engine$/) { } elsif (/^zlib-dynamic$/) @@ -806,14 +800,13 @@ foreach (sort (keys %disabled)) my ($ALGO, $algo); ($ALGO = $algo = $_) =~ tr/[\-a-z]/[_A-Z]/; - if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/ + if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/ || /^async$/ || /^autoalginit/ || /^autoerrinit/) { push @{$config{openssl_other_defines}}, "OPENSSL_NO_$ALGO"; print " OPENSSL_NO_$ALGO"; if (/^err$/) { push @user_defines, "OPENSSL_NO_ERR"; } - elsif (/^asm$/) { $no_asm = 1; } } else { @@ -848,10 +841,13 @@ if ($d) { } $config{target} = $target; delete $table{$base_target}->{template}; # or the next test will fail. -my %target = ( %{$table{$base_target}}, resolve_config($target) ); +my %target = resolve_config($target); &usage if (!%target || $target{template}); +# Set up defaults +my %target = ( %{$table{$base_target}}, %target ); + $target{exe_extension}=""; $target{exe_extension}=".exe" if ($config{target} eq "DJGPP" || $config{target} =~ /^(?:Cygwin|mingw)/); @@ -920,7 +916,7 @@ if ($target =~ /^mingw/ && `$target{cc} --target-help 2>&1` =~ m/-mno-cygwin/m) $target{shared_ldflag} .= " -mno-cygwin"; } -if ($target =~ /linux.*-mips/ && !$no_asm && $user_cflags !~ /-m(ips|arch=)/) { +if ($target =~ /linux.*-mips/ && !$disabled{asm} && $user_cflags !~ /-m(ips|arch=)/) { # minimally required architecture flags for assembly modules $config{cflags}="-mips2 $config{cflags}" if ($target =~ /mips32/); $config{cflags}="-mips3 $config{cflags}" if ($target =~ /mips64/); @@ -936,7 +932,7 @@ my $no_user_defines=0; # has support compiled in for them. Currently each method is enabled # by a define "DSO_" ... we translate the "dso_scheme" config # string entry into using the following logic; -if (!$no_dso && $target{dso_scheme} ne "") +if (!$disabled{dso} && $target{dso_scheme} ne "") { $target{dso_scheme} =~ tr/[a-z]/[A-Z]/; if ($target{dso_scheme} eq "DLFCN") @@ -957,7 +953,7 @@ if (!$no_dso && $target{dso_scheme} ne "") my $thread_cflags = ""; my @thread_defines; -if ($target{thread_cflag} ne "(unknown)" && !$no_threads) +if ($target{thread_cflag} ne "(unknown)" && !$disabled{threads}) { # If we know how to do it, support threads by default. $threads = 1; @@ -983,7 +979,7 @@ else $config{ex_libs}="$libs$config{ex_libs}" if ($libs ne ""); -if ($no_asm) +if ($disabled{asm}) { @{$config{defines}} = grep !/^[BL]_ENDIAN$/, @{$config{defines}} if ($config{fips}); @@ -996,7 +992,7 @@ if ($threads) push @{$config{openssl_thread_defines}}, @thread_defines; } -if ($zlib) +unless ($disabled{zlib}) { push @{$config{defines}}, "ZLIB"; if (defined($disabled{"zlib-dynamic"})) @@ -1024,9 +1020,9 @@ if (defined($disabled{"deprecated"})) { if ($target{shared_target} eq "") { $no_shared_warn = 1 - if ((!$config{no_shared} || !$disabled{"dynamic-engine"}) + if ((!$disabled{shared} || !$disabled{"dynamic-engine"}) && !$config{fips}); - $config{no_shared} = 1; + $disabled{shared} = "no-shared-target"; $disabled{pic} = $disabled{shared} = $disabled{"dynamic-engine"} = "no-shared-target"; } @@ -1049,6 +1045,10 @@ if ($disabled{pic}) $target{shared_cflag} = $target{shared_ldflag} = $target{shared_rcflag} = ""; } +else + { + push @{$config{defines}}, "OPENSSL_PIC"; + } if ($target{sys_id} ne "") { @@ -1060,7 +1060,7 @@ if ($target{ranlib} eq "") $target{ranlib} = $default_ranlib; } -if (!$no_asm) { +unless ($disabled{asm}) { $target{cpuid_asm_src}=$table{BASE}->{cpuid_asm_src} if ($config{processor} eq "386"); $target{bn_asm_src} =~ s/\w+-gf2m.c// if (defined($disabled{ec2m})); @@ -1447,7 +1447,7 @@ EOF push @{$unified_info{rawlines}}, @rawlines; - if (!$config{no_shared}) { + unless ($disabled{shared}) { # Check sharednames. foreach (keys %sharednames) { my $dest = cleanfile($buildd, $_, $blddir); @@ -1606,7 +1606,7 @@ use warnings; use Exporter; #use vars qw(\@ISA \@EXPORT); our \@ISA = qw(Exporter); -our \@EXPORT = qw(\%config \%target %withargs %unified_info); +our \@EXPORT = qw(\%config \%target %disabled %withargs %unified_info); EOF print OUT "our %config = (\n"; @@ -1876,7 +1876,7 @@ print <<"EOF"; Configured for $target. EOF -print <<"EOF" if (!$no_threads && !$threads); +print <<"EOF" if (!$disabled{threads} && !$threads); The library could not be configured for supporting multi-threaded applications as the compiler options required on this system are not known. @@ -1935,14 +1935,14 @@ exit(0); # Configuration file reading ######################################### # Helper function to implement conditional inheritance depending on the -# value of $no_asm. Used in inherit_from values as follows: +# value of $disabled{asm}. Used in inherit_from values as follows: # # inherit_from => [ "template", asm("asm_tmpl") ] # sub asm { my @x = @_; sub { - $no_asm ? () : @x; + $disabled{asm} ? () : @x; } } @@ -1973,12 +1973,20 @@ sub _add { } } sub add_before { - my $separator = shift; + my $separator = " "; + if (ref($_[$#_]) eq "HASH") { + my $opts = pop; + $separator = $opts->{separator}; + } my @x = @_; sub { _add($separator, @x, @_) }; } sub add { - my $separator = shift; + my $separator = " "; + if (ref($_[$#_]) eq "HASH") { + my $opts = pop; + $separator = $opts->{separator}; + } my @x = @_; sub { _add($separator, @_, @x) }; } @@ -2076,7 +2084,7 @@ sub resolve_config { # value. # - Otherwise, this target's value is assumed to be a string that # will simply override the inherited list of values. - my $default_combiner = add(" "); + my $default_combiner = add(); my %all_keys = map { $_ => 1 } (keys %combined_inheritance, @@ -2233,14 +2241,24 @@ sub print_table_entry if ($type eq "TABLE") { print "\n"; print "*** $target\n"; - printf "\$%-12s = %s\n", $_, $target{$_} foreach (@sequence); + foreach (@sequence) { + if (ref($target{$_}) eq "ARRAY") { + printf "\$%-12s = %s\n", $_, join(" ", @{$target{$_}}); + } else { + printf "\$%-12s = %s\n", $_, $target{$_}; + } + } } elsif ($type eq "HASH") { my $largest = length((sort { length($a) <=> length($b) } @sequence)[-1]); print " '$target' => {\n"; foreach (@sequence) { if ($target{$_}) { - print " '",$_,"'"," " x ($largest - length($_))," => '",$target{$_},"',\n"; + if (ref($target{$_}) eq "ARRAY") { + print " '",$_,"'"," " x ($largest - length($_))," => [ ",join(", ", map { "'$_'" } @{$target{$_}})," ],\n"; + } else { + print " '",$_,"'"," " x ($largest - length($_))," => '",$target{$_},"',\n"; + } } } print " },\n";