diff options
author | Steve Hay <SteveHay@planit.com> | 2008-02-22 17:10:50 +0000 |
---|---|---|
committer | Steve Hay <SteveHay@planit.com> | 2008-02-22 17:10:50 +0000 |
commit | f7e8b52a895af879b5e32567a5597aeb7217c590 (patch) | |
tree | f3f10f80b7aa0dbb091d03cf7a43b478ae8d4b0e /win32/config_sh.PL | |
parent | 46c71dd0b983bfe679463ca333ef8e1a51386d41 (diff) | |
download | perl-f7e8b52a895af879b5e32567a5597aeb7217c590.tar.gz |
Correct large files / lseek size & type settings in Win32 canned configs.
Change 25208 switched off USE_LARGE_FILES in win32/config_H.* but left
LSEEKSIZE/Off_t_size and Off_t as 8 and __int64 (or long long)
respectively. Similarly change 25215 switched off uselargefiles in
win32/config.* but left lseeksize and lseektype as 8 and __int64 (or
long long) respectively. Change 25216 fixed the Borland settings in
win32/config.bc on the basis that Borland should always be using 4 and
long, but really all the other files should be using 4 and long for
their default values as well to match the default values of
USE_LARGE_FILES and uselargefiles. Having done that, we must then
reverse the logic for fiddling with these values in win32/config_sh.PL:
they are now changed to 8 and __int64 (or long long) if uselargefiles
*is* defined (except for Borland, which always wants 4 and long).
p4raw-id: //depot/perl@33347
Diffstat (limited to 'win32/config_sh.PL')
-rw-r--r-- | win32/config_sh.PL | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/win32/config_sh.PL b/win32/config_sh.PL index 67f9c20353..99d6a222c7 100644 --- a/win32/config_sh.PL +++ b/win32/config_sh.PL @@ -117,9 +117,18 @@ unless (defined $ENV{SYSTEMROOT}) { # SystemRoot has been introduced by WinNT $opt{d_link} = 'undef'; } -if ($opt{uselargefiles} ne 'define') { - $opt{lseeksize} = 4; - $opt{lseektype} = 'off_t'; +# change the lseeksize and lseektype from their canned default values (which +# are set-up for a non-uselargefiles build) if we are building with +# uselargefiles. don't do this for bcc32: the code contains special handling +# for bcc32 and the lseeksize and lseektype should not be changed. +if ($opt{uselargefiles} eq 'define' and $opt{cc} ne 'bcc32') { + $opt{lseeksize} = 8; + if ($opt{cc} eq 'cl') { + $opt{lseektype} = '__int64'; + } + elsif ($opt{cc} eq 'gcc') { + $opt{lseektype} = 'long long'; + } } if ($opt{useithreads} eq 'define' && $opt{ccflags} =~ /-DPERL_IMPLICIT_SYS\b/) { |