summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2002-04-21 01:55:35 +0000
committerGurusamy Sarathy <gsar@cpan.org>2002-04-21 01:55:35 +0000
commitc623ac675720b3145d48cc2ea9474a0f3e0cbbca (patch)
tree72f97c16f706a1538dd9a5726323e59d251c8c53 /ext
parent6d1c0808b641926567cd16e07679f427c5fedc61 (diff)
downloadperl-c623ac675720b3145d48cc2ea9474a0f3e0cbbca.tar.gz
Windows 64-bit support:
* support for building it in the regular makefiles * large files support via the _*i64() functions (this should be portable to the 32-bit universe too, but quite untested and and binary-incompatible, therefore not enabled there) * three additional test failures in addition to the t/end.t one (see README.win32) * sprintf() on Windows gets %I{32,64,}[xoud] format that parallel the ones available from the CRT (needed because Perl uses the UVxf macros in both sprintf() *and* in sv_catpvf() et al.) * add a few 64-bit notes to README.win32 The following general problems were also fixed: * s/struct stat/Stat_t/g * Data::Dumper had some naughty 'long' typecasts * Errno_pm.PL didn't work safe when winsock.h was not in the same directory as errno.h * various tell/seek things were incorrectly prototyped * squelch ugly looking noise when running tests * Embed.t wasn't linking in all the libraries * perl57.dll is now perl58.dll (anticipating 5.8.0-RC1) * re-enable all the disabled warnings (additional fixes may be needed for the warnings uncovered by this) p4raw-id: //depot/perl@16033
Diffstat (limited to 'ext')
-rw-r--r--ext/Data/Dumper/Dumper.xs4
-rw-r--r--ext/Errno/Errno_pm.PL12
2 files changed, 8 insertions, 8 deletions
diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs
index 20e4af8e31..62f3099d8a 100644
--- a/ext/Data/Dumper/Dumper.xs
+++ b/ext/Data/Dumper/Dumper.xs
@@ -254,7 +254,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
ival = SvRV(val);
realtype = SvTYPE(ival);
- (void) sprintf(id, "0x%lx", (unsigned long)ival);
+ (void) sprintf(id, "0x%"UVxf, PTR2UV(ival));
idlen = strlen(id);
if (SvOBJECT(ival))
realpack = HvNAME(SvSTASH(ival));
@@ -708,7 +708,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
STRLEN i;
if (namelen) {
- (void) sprintf(id, "0x%lx", (unsigned long)val);
+ (void) sprintf(id, "0x%"UVxf, PTR2UV(val));
if ((svp = hv_fetch(seenhv, id, (idlen = strlen(id)), FALSE)) &&
(sv = *svp) && SvROK(sv) &&
(seenentry = (AV*)SvRV(sv)))
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
index 201a8f3a6b..e4f756e5ee 100644
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -13,10 +13,6 @@ select OUT;
my $file;
foreach $file (get_files()) {
process_file($file);
- if ($^O eq 'MSWin32') {
- $file =~ s/errno/winsock/;
- process_file($file);
- }
}
write_errno_pm();
unlink "errno.c" if -f "errno.c";
@@ -131,9 +127,13 @@ sub get_files {
die "Cannot open errno.c";
if ($^O eq 'NetWare') {
- print CPPI "#include <nwerrno.h>\n";
+ print CPPI "#include <nwerrno.h>\n";
} else {
- print CPPI "#include <errno.h>\n";
+ print CPPI "#include <errno.h>\n";
+ if ($^O eq 'MSWin32') {
+ print CPPI "#define _WINSOCKAPI_\n"; # don't drag in everything
+ print CPPI "#include <winsock.h>\n";
+ }
}
close(CPPI);