aboutsummaryrefslogtreecommitdiffstats
path: root/Configure
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-04-18 16:24:23 +0200
committerRichard Levitte <levitte@openssl.org>2017-04-24 18:09:01 +0200
commit331058180aba047ac6b25da781eebc08b7267d2f (patch)
treef12c611af1a4052339b051337991dcc23633376a /Configure
parenta68d35057ba2676bc9b9a16f4952791eef4b9905 (diff)
downloadopenssl-331058180aba047ac6b25da781eebc08b7267d2f.tar.gz
Make it possible to build static-only libraries
The trick is to use the .a extension explicitely in the build.info files. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3243)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure16
1 files changed, 14 insertions, 2 deletions
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) {