package ExtUtils::MM_Win32; # clobber this one with extreme prejudice because of the gawd-awful bs # it is, for thinking that mingw gcc is still this clunky. sub dynamic_lib { my($self, %attribs) = @_; return '' unless $self->needs_linking(); #might be because of a subdir return '' unless $self->has_link_code; my($otherldflags) = $attribs{OTHERLDFLAGS}; my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || ""; my($ldfrom) = '$(LDFROM)'; my $tabchar = "\t"; my(@m); my $dllname = $self->{BASEEXT} . "." . $self->{DLEXT}; $dllname =~ /(....)(.{0,4})/; my $baseaddr = unpack("n", $1 ^ $2); $otherldflags .= sprintf("-Wl,--image-base,0x%x0000 ", $baseaddr); push(@m,' # This section creates the dynamically loadable $(INST_DYNAMIC) # (ms windows DLL file) from $(OBJECT) and possibly $(MYEXTLIB). OTHERLDFLAGS =' .($otherldflags ? " $otherldflags" : "") .' INST_DYNAMIC_DEP =' .($inst_dynamic_dep ? " $inst_dynamic_dep" : "") .' $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) \ $(INST_ARCHAUTODIR)$(DFSEP).exists \ $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP) '); push(@m, $tabchar, q{$(CC) -o $@ $(LDDLFLAGS) } . $ldfrom ." \\\n" . q{ $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) } ); # return our assembled Makefile text: join('',@m); } # END of sub #### g++ -o ..\blib\arch\auto\XML\Parser\Expat\Expat.dll -mdll -s -LE:/perls/Strawberry_Perl_510_0/perl/lib/CORE -LE:/StPerl_Bundled_mingw/lib Expat.o -Wl,--image-base,0x31560000 C:\strawberry\perl\lib\CORE\libperl510.a E:\StPerl_Bundled_mingw\lib\libexpat.a E:\StPerl_Bundled_mingw\lib\libmsvcrt.a E:\StPerl_Bundled_mingw\lib\libmoldname.a E:\StPerl_Bundled_mingw\lib\libkernel32.a E:\StPerl_Bundled_mingw\lib\libuser32.a E:\StPerl_Bundled_mingw\lib\libgdi32.a E:\StPerl_Bundled_mingw\lib\libwinspool.a E:\StPerl_Bundled_mingw\lib\libcomdlg32.a E:\StPerl_Bundled_mingw\lib\libadvapi32.a E:\StPerl_Bundled_mingw\lib\libshell32.a E:\StPerl_Bundled_mingw\lib\libole32.a E:\StPerl_Bundled_mingw\lib\liboleaut32.a E:\StPerl_Bundled_mingw\lib\libnetapi32.a E:\StPerl_Bundled_mingw\lib\libuuid.a E:\StPerl_Bundled_mingw\lib\libws2_32.a E:\StPerl_Bundled_mingw\lib\libmpr.a E:\StPerl_Bundled_mingw\lib\libwinmm.a E:\StPerl_Bundled_mingw\lib\libversion.a E:\StPerl_Bundled_mingw\lib\libodbc32.a E:\StPerl_Bundled_mingw\lib\libodbccp32.a dll.exp #### gcc -o blib\arch\auto\XML\Parser\Expat\Expat.dll -mdll -s -LE:/perls/Strawberry_Perl_510_0/perl/lib/CORE -LE:/StPerl_Bundled_mingw/lib -O2 -mconsole -Wl,-export-all-symbols,-output-def,XML_Parser_Expat.def,-out-implib,XML_Parser_Expat.dll.a Expat.o \ -Wl,--image-base,0x35130000 C:\strawberry\perl\lib\CORE/libperl510.a e:/stperl_bundled_mingw/lib/libexpat.a e:/StPerl_Bundled_mingw/lib/libgdi32.a e:/StPerl_Bundled_mingw/lib/libwinspool.a e:/StPerl_Bundled_mingw/lib/libcomdlg32.a e:/StPerl_Bundled_mingw/lib/libole32.a e:/StPerl_Bundled_mingw/lib/liboleaut32.a e:/StPerl_Bundled_mingw/lib/libnetapi32.a e:/StPerl_Bundled_mingw/lib/libuuid.a e:/StPerl_Bundled_mingw/lib/libws2_32.a e:/StPerl_Bundled_mingw/lib/libmpr.a e:/StPerl_Bundled_mingw/lib/libwinmm.a e:/StPerl_Bundled_mingw/lib/libversion.a e:/StPerl_Bundled_mingw/lib/libodbc32.a e:/StPerl_Bundled_mingw/lib/libodbccp32.a Creating library file: XML_Parser_Expat.dll.a