From: Steve Hay Date: Fri, 22 Feb 2008 17:10:50 +0000 (+0000) Subject: Correct large files / lseek size & type settings in Win32 canned configs. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f7e8b52a895af879b5e32567a5597aeb7217c590;p=p5sagit%2Fp5-mst-13.2.git 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 --- diff --git a/win32/config.gc b/win32/config.gc index 817482a..7a3802e 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -756,8 +756,8 @@ longsize='4' lp='' lpr='' ls='dir' -lseeksize='8' -lseektype='long long' +lseeksize='4' +lseektype='long' mad='undef' madlyh='' madlyobj='' diff --git a/win32/config.vc b/win32/config.vc index 12290a7..2c9a6ef 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -756,8 +756,8 @@ longsize='4' lp='' lpr='' ls='dir' -lseeksize='8' -lseektype='__int64' +lseeksize='4' +lseektype='long' mad='undef' madlyh='' madlyobj='' diff --git a/win32/config.vc64 b/win32/config.vc64 index c50ef7b..e9fd377 100644 --- a/win32/config.vc64 +++ b/win32/config.vc64 @@ -756,8 +756,8 @@ longsize='4' lp='' lpr='' ls='dir' -lseeksize='8' -lseektype='__int64' +lseeksize='4' +lseektype='long' mad='undef' madlyh='' madlyobj='' diff --git a/win32/config_H.bc b/win32/config_H.bc index 7520a55..7184387 100644 --- a/win32/config_H.bc +++ b/win32/config_H.bc @@ -3723,9 +3723,9 @@ /* Off_t_size: * This symbol holds the number of bytes used by the Off_t. */ -#define Off_t __int64 /* type */ -#define LSEEKSIZE 8 /* size */ -#define Off_t_size 8 /* size */ +#define Off_t long /* type */ +#define LSEEKSIZE 4 /* size */ +#define Off_t_size 4 /* size */ /* PERL_MAD: * This symbol, if defined, indicates that the Misc Attribution diff --git a/win32/config_H.gc b/win32/config_H.gc index 0970b9a..c9af417 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -3739,13 +3739,9 @@ /* Off_t_size: * This symbol holds the number of bytes used by the Off_t. */ -#ifndef _MSC_VER -# define Off_t long long /* type */ -#else -# define Off_t __int64 /* type */ -#endif -#define LSEEKSIZE 8 /* size */ -#define Off_t_size 8 /* size */ +#define Off_t long /* type */ +#define LSEEKSIZE 4 /* size */ +#define Off_t_size 4 /* size */ /* PERL_MAD: * This symbol, if defined, indicates that the Misc Attribution diff --git a/win32/config_H.vc b/win32/config_H.vc index 8bdb7de..490af3d 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -3735,13 +3735,9 @@ /* Off_t_size: * This symbol holds the number of bytes used by the Off_t. */ -#ifndef __GNUC__ -# define Off_t __int64 /* type */ -#else -# define Off_t long long /* type */ -#endif -#define LSEEKSIZE 8 /* size */ -#define Off_t_size 8 /* size */ +#define Off_t long /* type */ +#define LSEEKSIZE 4 /* size */ +#define Off_t_size 4 /* size */ /* PERL_MAD: * This symbol, if defined, indicates that the Misc Attribution diff --git a/win32/config_H.vc64 b/win32/config_H.vc64 index 7aaa926..3a827e5 100644 --- a/win32/config_H.vc64 +++ b/win32/config_H.vc64 @@ -3723,9 +3723,9 @@ /* Off_t_size: * This symbol holds the number of bytes used by the Off_t. */ -#define Off_t __int64 /* type */ -#define LSEEKSIZE 8 /* size */ -#define Off_t_size 8 /* size */ +#define Off_t long /* type */ +#define LSEEKSIZE 4 /* size */ +#define Off_t_size 4 /* size */ /* PERL_MAD: * This symbol, if defined, indicates that the Misc Attribution diff --git a/win32/config_sh.PL b/win32/config_sh.PL index 67f9c20..99d6a22 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/) {