summaryrefslogtreecommitdiff
path: root/makedef.pl
diff options
context:
space:
mode:
authorVadim Konovalov <vkonovalov@lucent.com>2004-10-12 02:57:00 +0400
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-10-12 13:02:44 +0000
commitd2b2597412218806baa0430cf97cc8334ac3ec71 (patch)
tree1385982f3c73ab987dad0b15eecc442442c570d7 /makedef.pl
parent2d2b274444abe9850378c8466aa976c778ccebb2 (diff)
downloadperl-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.pl17
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.