X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=Configure;h=c699ae051b4af3af1e503e3cf12ccbded13e3224;hp=66541be41d51305d0bd5ed79eb346f207889676b;hb=331058180aba047ac6b25da781eebc08b7267d2f;hpb=a68d35057ba2676bc9b9a16f4952791eef4b9905 diff --git a/Configure b/Configure index 66541be41d..c699ae051b 100755 --- a/Configure +++ b/Configure @@ -1732,12 +1732,24 @@ EOF } # Additionally, we set up sharednames for libraries that don't - # have any, as themselves. - foreach (keys %{$unified_info{libraries}}) { + # have any, as themselves. Only for libraries that aren't + # explicitely static. + foreach (grep !/\.a$/, keys %{$unified_info{libraries}}) { if (!defined $unified_info{sharednames}->{$_}) { $unified_info{sharednames}->{$_} = $_ } } + + # Check that we haven't defined any library as both shared and + # explicitely static. That is forbidden. + my @doubles = (); + foreach (grep /\.a$/, keys %{$unified_info{libraries}}) { + (my $l = $_) =~ s/\.a$//; + push @doubles, $l if defined $unified_info{sharednames}->{$l}; + } + die "these libraries are both explicitely static and shared:\n ", + join(" ", @doubles), "\n" + if @doubles; } foreach (keys %ordinals) {