When building DLLs, hack the library name in the .def file

util/mkdef.pl assumes it knows what the resulting library name will
be.  Really, it shouldn't, but changing it will break classic native
Windows builds, so we leave it for now and change the LIBRARY line
externally when needed instead.

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Richard Levitte 2016-03-16 16:50:18 +01:00
parent 8975fb6212
commit 685b6f293b

View File

@ -282,12 +282,18 @@ EOF
rel2abs($config{builddir})); rel2abs($config{builddir}));
my $target = shlib_import($lib); my $target = shlib_import($lib);
return <<"EOF" return <<"EOF"
$target: $deps $ordinalsfile $target: $deps $ordinalsfile $mkdef_pl
\$(PERL) $mkdef_pl "$mkdef_key" 32 > $shlib.def \$(PERL) $mkdef_pl "$mkdef_key" 32 > $shlib.def
\$(PERL) -i.tmp -pe "s|^LIBRARY\\s+${mkdef_key}32|LIBRARY $shlib|;" $shlib.def
DEL $shlib.def.tmp
\$(LD) \$(LDFLAGS) \$(LIB_LDFLAGS) \\ \$(LD) \$(LDFLAGS) \$(LIB_LDFLAGS) \\
/implib:$target \$(LDOUTFLAG)$shlib$shlibext /def:$shlib.def @<< /implib:$target \$(LDOUTFLAG)$shlib$shlibext /def:$shlib.def @<<
$objs$linklibs \$(EX_LIBS) $objs$linklibs \$(EX_LIBS)
<< <<
DEL /F apps\\$shlib$shlibext
DEL /F test\\$shlib$shlibext
COPY $shlib$shlibext apps
COPY $shlib$shlibext test
EOF EOF
} }
sub obj2dso { sub obj2dso {