diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2002-04-21 01:55:35 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2002-04-21 01:55:35 +0000 |
commit | c623ac675720b3145d48cc2ea9474a0f3e0cbbca (patch) | |
tree | 72f97c16f706a1538dd9a5726323e59d251c8c53 /ext | |
parent | 6d1c0808b641926567cd16e07679f427c5fedc61 (diff) | |
download | perl-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.xs | 4 | ||||
-rw-r--r-- | ext/Errno/Errno_pm.PL | 12 |
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); |