diff options
author | Jan Dubois <jand@activestate.com> | 2007-06-27 08:34:12 -0700 |
---|---|---|
committer | Steve Hay <SteveHay@planit.com> | 2007-06-28 10:11:15 +0000 |
commit | 9fb265f7d587e571375a3a5fdb05c24fd9d10d91 (patch) | |
tree | 44de97dd1d5136d4f06948e9d7aec6ec5937de19 /ext | |
parent | 5be5c7a687aa37f2ea9dec7988eb57cad1f1ec24 (diff) | |
download | perl-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.c | 19 | ||||
-rw-r--r-- | ext/Win32CORE/Win32CORE.pm | 13 |
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 |