diff options
author | Vadim Konovalov <vkonovalov@lucent.com> | 2004-10-12 02:57:00 +0400 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2004-10-12 13:02:44 +0000 |
commit | d2b2597412218806baa0430cf97cc8334ac3ec71 (patch) | |
tree | 1385982f3c73ab987dad0b15eecc442442c570d7 /makedef.pl | |
parent | 2d2b274444abe9850378c8466aa976c778ccebb2 (diff) | |
download | perl-d2b2597412218806baa0430cf97cc8334ac3ec71.tar.gz |
enable statically linked extensions for Win32
Message-ID: <80173417046.20041011225700@vkonovalov.ru>
p4raw-id: //depot/perl@23360
Diffstat (limited to 'makedef.pl')
-rw-r--r-- | makedef.pl | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/makedef.pl b/makedef.pl index 774c714d31..7da0575b7f 100644 --- a/makedef.pl +++ b/makedef.pl @@ -55,6 +55,7 @@ my $global_sym = "global.sym"; my $pp_sym = "pp.sym"; my $globvar_sym = "globvar.sym"; my $perlio_sym = "perlio.sym"; +my $static_ext = ""; if ($PLATFORM eq 'aix') { # Nothing for now. @@ -88,6 +89,13 @@ unless ($PLATFORM eq 'win32' || $PLATFORM eq 'wince' || $PLATFORM eq 'MacOS' || } close(CFG); } +if ($PLATFORM eq 'win32' || $PLATFORM eq 'wince') { + open(CFG,"<..\\$config_sh") || die "Cannot open ..\\$config_sh: $!\n"; + if ((join '', <CFG>) =~ /^static_ext='(.*)'$/m) { + $static_ext = $1; + } + close(CFG); +} open(CFG,$config_h) || die "Cannot open $config_h: $!\n"; while (<CFG>) { @@ -1345,6 +1353,15 @@ foreach my $symbol (qw( } } +# records of type boot_module for statically linked modules (except Dynaloader) +$static_ext =~ s/\//__/g; +$static_ext =~ s/\bDynaLoader\b//; +my @stat_mods = map {"boot_$_"} grep {/\S/} split /\s+/, $static_ext; +foreach my $symbol (@stat_mods) + { + try_symbol($symbol); + } + # Now all symbols should be defined because # next we are going to output them. |