From: Richard Levitte Date: Mon, 10 Sep 2018 00:18:22 +0000 (+0200) Subject: Configure: DON'T trickle down includes from products to sources X-Git-Tag: openssl-3.0.0-alpha1~3132 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=609e4be88e63e489c32438b3b0872fd891829301;p=thirdparty%2Fopenssl.git Configure: DON'T trickle down includes from products to sources Instead, use the include settings from the products later in the process, making it possible to have different includes for two different libraries that share the same source code. Reviewed-by: Paul Dale Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/7159) --- diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl index 180621e7497..ad67591e9d5 100644 --- a/Configurations/common.tmpl +++ b/Configurations/common.tmpl @@ -82,7 +82,8 @@ generator_incs => $unified_info{includes}->{$script}, generator_deps => $unified_info{depends}->{$script}, deps => $unified_info{depends}->{$src}, - incs => $unified_info{includes}->{$obj}, + incs => [ @{$unified_info{includes}->{$obj}}, + @{$unified_info{includes}->{$bin}} ], %opts); foreach (@{$unified_info{depends}->{$src}}) { dogenerate($_, $obj, $bin, %opts); @@ -103,7 +104,8 @@ product => $bin, srcs => $unified_info{sources}->{$obj}, deps => $unified_info{depends}->{$obj}, - incs => $unified_info{includes}->{$obj}, + incs => [ @{$unified_info{includes}->{$obj}}, + @{$unified_info{includes}->{$bin}} ], %opts); foreach ((@{$unified_info{sources}->{$obj}}, @{$unified_info{depends}->{$obj}})) { diff --git a/Configure b/Configure index 3baa8ce016f..f9eda6652f0 100755 --- a/Configure +++ b/Configure @@ -2189,26 +2189,6 @@ EOF } } - # Trickle down includes placed on libraries, engines and programs to - # their sources (i.e. object files) - foreach my $dest (keys %{$unified_info{engines}}, - keys %{$unified_info{libraries}}, - keys %{$unified_info{programs}}) { - foreach my $k (("source", "build")) { - next unless defined($unified_info{includes}->{$dest}->{$k}); - my @incs = reverse @{$unified_info{includes}->{$dest}->{$k}}; - foreach my $obj (grep /\.o$/, - (keys %{$unified_info{sources}->{$dest}}, - keys %{$unified_info{shared_sources}->{$dest}})) { - foreach my $inc (@incs) { - unshift @{$unified_info{includes}->{$obj}->{$k}}, $inc - unless grep { $_ eq $inc } @{$unified_info{includes}->{$obj}->{$k}}; - } - } - } - delete $unified_info{includes}->{$dest}; - } - ### Make unified_info a bit more efficient # One level structures foreach (("programs", "libraries", "engines", "scripts", "extra", "overrides")) { @@ -2233,9 +2213,11 @@ EOF push @{$unified_info{includes}->{$dest}}, $inc unless grep { $_ eq $inc } @{$unified_info{includes}->{$dest}}; } - } else { + } elsif (defined($unified_info{includes}->{$dest}->{source})) { $unified_info{includes}->{$dest} = [ @{$unified_info{includes}->{$dest}->{source}} ]; + } else { + delete $unified_info{includes}->{$dest}; } } }