mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
mkdef.pl: Add cmd-line flag to differentiate shared libs and DSO.
Fixes openssl#16984. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18284)
This commit is contained in:
parent
f505be999f
commit
e5f831a065
@ -981,7 +981,7 @@ EOF
|
||||
? '' : ' --case-insensitive';
|
||||
return <<"EOF";
|
||||
$target : $gen0 $deps $mkdef
|
||||
\$(PERL) $mkdef$ord_ver --ordinals $gen0 --name $ord_name "--OS" "VMS"$case_insensitive > $target
|
||||
\$(PERL) $mkdef$ord_ver --type $args{intent} --ordinals $gen0 --name $ord_name "--OS" "VMS"$case_insensitive > $target
|
||||
EOF
|
||||
} elsif (platform->isasm($args{src})) {
|
||||
#
|
||||
|
@ -1549,7 +1549,7 @@ EOF
|
||||
my $ord_name = $args{generator}->[1] || $args{product};
|
||||
return <<"EOF";
|
||||
$target: $gen0 $deps \$(SRCDIR)/util/mkdef.pl
|
||||
\$(PERL) \$(SRCDIR)/util/mkdef.pl$ord_ver --ordinals $gen0 --name $ord_name --OS $mkdef_os > $target
|
||||
\$(PERL) \$(SRCDIR)/util/mkdef.pl$ord_ver --type $args{intent} --ordinals $gen0 --name $ord_name --OS $mkdef_os > $target
|
||||
EOF
|
||||
} elsif (platform->isasm($args{src})) {
|
||||
#
|
||||
|
@ -744,7 +744,7 @@ EOF
|
||||
$args{generator}->[1] || platform->dsoname($args{product});
|
||||
return <<"EOF";
|
||||
$target: $gen0 $deps $mkdef
|
||||
"\$(PERL)" "$mkdef"$ord_ver --ordinals $gen0 --name $ord_name --OS windows > $target
|
||||
"\$(PERL)" "$mkdef"$ord_ver --type $args{intent} --ordinals $gen0 --name $ord_name --OS windows > $target
|
||||
EOF
|
||||
} elsif (platform->isasm($args{src})) {
|
||||
#
|
||||
|
@ -29,6 +29,7 @@ my $name = undef; # internal library/module name
|
||||
my $ordinals_file = undef; # the ordinals file to use
|
||||
my $version = undef; # the version to use for the library
|
||||
my $OS = undef; # the operating system family
|
||||
my $type = 'lib'; # either lib or dso
|
||||
my $verbose = 0;
|
||||
my $ctest = 0;
|
||||
my $debug = 0;
|
||||
@ -40,6 +41,7 @@ GetOptions('name=s' => \$name,
|
||||
'ordinals=s' => \$ordinals_file,
|
||||
'version=s' => \$version,
|
||||
'OS=s' => \$OS,
|
||||
'type=s' => \$type,
|
||||
'ctest' => \$ctest,
|
||||
'verbose' => \$verbose,
|
||||
# For VMS
|
||||
@ -48,6 +50,8 @@ GetOptions('name=s' => \$name,
|
||||
|
||||
die "Please supply arguments\n"
|
||||
unless $name && $ordinals_file && $OS;
|
||||
die "--type argument must be equal to 'lib' or 'dso'"
|
||||
if $type ne 'lib' && $type ne 'dso';
|
||||
|
||||
# When building a "variant" shared library, with a custom SONAME, also customize
|
||||
# all the symbol versions. This produces a shared object that can coexist
|
||||
@ -101,7 +105,7 @@ die "Please supply arguments\n"
|
||||
#
|
||||
(my $SO_VARIANT = uc($target{"shlib_variant"} // '')) =~ s/\W/_/g;
|
||||
|
||||
my $libname = platform->sharedname($name);
|
||||
my $libname = $type eq 'lib' ? platform->sharedname($name) : platform->dsoname($name);
|
||||
|
||||
my %OS_data = (
|
||||
solaris => { writer => \&writer_linux,
|
||||
|
Loading…
Reference in New Issue
Block a user