X-Git-Url: https://git.openssl.org/gitweb/?a=blobdiff_plain;f=Configure;h=d4f67aba4361860062b9add0a59962f19ed82d50;hb=412c8507ee61aeb1fcac4b6e84cd7e6501789124;hp=bd49a895bd12cb4802e642d15b70de51b80923fe;hpb=878f42251b1798c724d8d3f360851d59435772bd;p=openssl.git diff --git a/Configure b/Configure index bd49a895bd..d4f67aba43 100755 --- a/Configure +++ b/Configure @@ -311,6 +311,7 @@ my @disablables = ( "md2", "md4", "mdc2", + "msan", "multiblock", "nextprotoneg", "ocb", @@ -369,6 +370,7 @@ our %disabled = ( # "what" => "comment" "fuzz-libfuzzer" => "default", "fuzz-afl" => "default", "md2" => "default", + "msan" => "default", "rc5" => "default", "sctp" => "default", "ssl-trace" => "default", @@ -439,6 +441,8 @@ my @disable_cascades = ( "apps" => [ "tests" ], "comp" => [ "zlib" ], sub { !$disabled{"unit-test"} } => [ "heartbeats" ], + + sub { !$disabled{"msan"} } => [ "asm" ], ); # Avoid protocol support holes. Also disable all versions below N, if version @@ -1063,8 +1067,12 @@ unless ($disabled{ubsan}) { $config{cflags} .= "-fsanitize=undefined -fno-sanitize-recover=all "; } +unless ($disabled{msan}) { + $config{cflags} .= "-fsanitize=memory "; +} + unless ($disabled{"fuzz-libfuzzer"} && $disabled{"fuzz-afl"} - && $disabled{asan} && $disabled{ubsan}) { + && $disabled{asan} && $disabled{ubsan} && $disabled{msan}) { $config{cflags} .= "-fno-omit-frame-pointer -g "; } # @@ -1360,9 +1368,13 @@ if ($builder eq "unified") { my $f = $_->[1]; # The basic things we're trying to build my @programs = (); + my @programs_install = (); my @libraries = (); + my @libraries_install = (); my @engines = (); + my @engines_install = (); my @scripts = (); + my @scripts_install = (); my @extra = (); my @overrides = (); my @intermediates = (); @@ -1426,18 +1438,42 @@ if ($builder eq "unified") { qr/^\s*ENDIF\s*$/ => sub { die "ENDIF out of scope" if ! @skip; pop @skip; }, - qr/^\s*PROGRAMS\s*=\s*(.*)\s*$/ - => sub { push @programs, tokenize($1) - if !@skip || $skip[$#skip] > 0 }, - qr/^\s*LIBS\s*=\s*(.*)\s*$/ - => sub { push @libraries, tokenize($1) - if !@skip || $skip[$#skip] > 0 }, - qr/^\s*ENGINES\s*=\s*(.*)\s*$/ - => sub { push @engines, tokenize($1) - if !@skip || $skip[$#skip] > 0 }, - qr/^\s*SCRIPTS\s*=\s*(.*)\s*$/ - => sub { push @scripts, tokenize($1) - if !@skip || $skip[$#skip] > 0 }, + qr/^\s*PROGRAMS(_NO_INST)?\s*=\s*(.*)\s*$/ + => sub { + if (!@skip || $skip[$#skip] > 0) { + my $install = $1; + my @x = tokenize($2); + push @programs, @x; + push @programs_install, @x unless $install; + } + }, + qr/^\s*LIBS(_NO_INST)?\s*=\s*(.*)\s*$/ + => sub { + if (!@skip || $skip[$#skip] > 0) { + my $install = $1; + my @x = tokenize($2); + push @libraries, @x; + push @libraries_install, @x unless $install; + } + }, + qr/^\s*ENGINES(_NO_INST)?\s*=\s*(.*)\s*$/ + => sub { + if (!@skip || $skip[$#skip] > 0) { + my $install = $1; + my @x = tokenize($2); + push @engines, @x; + push @engines_install, @x unless $install; + } + }, + qr/^\s*SCRIPTS(_NO_INST)?\s*=\s*(.*)\s*$/ + => sub { + if (!@skip || $skip[$#skip] > 0) { + my $install = $1; + my @x = tokenize($2); + push @scripts, @x; + push @scripts_install, @x unless $install; + } + }, qr/^\s*EXTRA\s*=\s*(.*)\s*$/ => sub { push @extra, tokenize($1) if !@skip || $skip[$#skip] > 0 }, @@ -1523,6 +1559,14 @@ if ($builder eq "unified") { $unified_info{programs}->{$program} = 1; } + foreach (@programs_install) { + my $program = cleanfile($buildd, $_, $blddir); + if ($unified_info{rename}->{$program}) { + $program = $unified_info{rename}->{$program}; + } + $unified_info{install}->{programs}->{$program} = 1; + } + foreach (@libraries) { my $library = cleanfile($buildd, $_, $blddir); if ($unified_info{rename}->{$library}) { @@ -1531,6 +1575,14 @@ if ($builder eq "unified") { $unified_info{libraries}->{$library} = 1; } + foreach (@libraries_install) { + my $library = cleanfile($buildd, $_, $blddir); + if ($unified_info{rename}->{$library}) { + $library = $unified_info{rename}->{$library}; + } + $unified_info{install}->{libraries}->{$library} = 1; + } + die <<"EOF" if scalar @engines and !$config{dynamic_engines}; ENGINES can only be used if configured with 'dynamic-engine'. This is usually a fault in a build.info file. @@ -1543,6 +1595,14 @@ EOF $unified_info{engines}->{$library} = 1; } + foreach (@engines_install) { + my $library = cleanfile($buildd, $_, $blddir); + if ($unified_info{rename}->{$library}) { + $library = $unified_info{rename}->{$library}; + } + $unified_info{install}->{engines}->{$library} = 1; + } + foreach (@scripts) { my $script = cleanfile($buildd, $_, $blddir); if ($unified_info{rename}->{$script}) { @@ -1551,6 +1611,14 @@ EOF $unified_info{scripts}->{$script} = 1; } + foreach (@scripts_install) { + my $script = cleanfile($buildd, $_, $blddir); + if ($unified_info{rename}->{$script}) { + $script = $unified_info{rename}->{$script}; + } + $unified_info{install}->{scripts}->{$script} = 1; + } + foreach (@extra) { my $extra = cleanfile($buildd, $_, $blddir); $unified_info{extra}->{$extra} = 1; @@ -1749,7 +1817,7 @@ EOF $unified_info{$_} = [ sort keys %{$unified_info{$_}} ]; } # Two level structures - foreach my $l1 (("sources", "shared_sources", "ldadd", "depends")) { + foreach my $l1 (("install", "sources", "shared_sources", "ldadd", "depends")) { foreach my $l2 (sort keys %{$unified_info{$l1}}) { $unified_info{$l1}->{$l2} = [ sort keys %{$unified_info{$l1}->{$l2}} ];