summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorJan Dubois <jand@activestate.com>2007-06-27 08:34:12 -0700
committerSteve Hay <SteveHay@planit.com>2007-06-28 10:11:15 +0000
commit9fb265f7d587e571375a3a5fdb05c24fd9d10d91 (patch)
tree44de97dd1d5136d4f06948e9d7aec6ec5937de19 /ext
parent5be5c7a687aa37f2ea9dec7988eb57cad1f1ec24 (diff)
downloadperl-9fb265f7d587e571375a3a5fdb05c24fd9d10d91.tar.gz
RE: Problem in Win32CORE when building PAR-Packer-0.975 with bleadperl on Win32
From: "Jan Dubois" <jand@activestate.com> Message-ID: <02bd01c7b90b$49863720$dc92a560$@com> Rearranges the initialization of Win32CORE. The Perl interpreter isn't fully initialized when Perl_init_os_extras() in win32/win32.c is called, so it is not safe to use the Perl calling mechanism yet. Fixes a problem building PAR-Packer on Win32. p4raw-id: //depot/perl@31490
Diffstat (limited to 'ext')
-rw-r--r--ext/Win32CORE/Win32CORE.c19
-rw-r--r--ext/Win32CORE/Win32CORE.pm13
2 files changed, 20 insertions, 12 deletions
diff --git a/ext/Win32CORE/Win32CORE.c b/ext/Win32CORE/Win32CORE.c
index a2620b694b..7769c7464d 100644
--- a/ext/Win32CORE/Win32CORE.c
+++ b/ext/Win32CORE/Win32CORE.c
@@ -57,10 +57,23 @@ FORWARD(Sleep)
XS(boot_Win32CORE)
{
- dXSARGS;
+ /* This function only exists because writemain.SH, lib/ExtUtils/Embed.pm
+ * and win32/buildext.pl will all generate references to it. The function
+ * should never be called though, as Win32CORE.pm doesn't use DynaLoader.
+ */
+}
+#ifdef __CYGWIN__
+__declspec(dllexport)
+#endif
+void
+init_Win32CORE(pTHX)
+{
+ /* This function is called from init_os_extras(). The Perl interpreter
+ * is not yet fully initialized, so don't do anything fancy in here.
+ */
+
char *file = __FILE__;
- /* these names are Activeware compatible */
newXS("Win32::GetCwd", w32_GetCwd, file);
newXS("Win32::SetCwd", w32_SetCwd, file);
newXS("Win32::GetNextAvailDrive", w32_GetNextAvailDrive, file);
@@ -82,6 +95,4 @@ XS(boot_Win32CORE)
newXS("Win32::CopyFile", w32_CopyFile, file);
newXS("Win32::Sleep", w32_Sleep, file);
/* newXS("Win32::SetChildShowWindow", w32_SetChildShowWindow, file); */
-
- XSRETURN_YES;
}
diff --git a/ext/Win32CORE/Win32CORE.pm b/ext/Win32CORE/Win32CORE.pm
index dd322fd6d2..0e5d20bb90 100644
--- a/ext/Win32CORE/Win32CORE.pm
+++ b/ext/Win32CORE/Win32CORE.pm
@@ -1,17 +1,14 @@
package Win32CORE;
-$VERSION = '0.01';
+$VERSION = '0.02';
-use strict;
-use warnings;
-use vars qw($VERSION @ISA);
-use base qw(Exporter DynaLoader);
-no warnings "redefine";
-
-bootstrap Win32CORE $VERSION;
+# There is no reason to load this module explicitly. It will be
+# initialized using xs_init() when the interpreter is constructed.
1;
+
__END__
+
=head1 NAME
Win32CORE - Win32 CORE function stubs