From d05ca1ac13559aceabc4d845827ded79494fe9d8 Mon Sep 17 00:00:00 2001 From: Radim Kolar Date: Sun, 7 Jul 2024 23:53:37 +0200 Subject: [PATCH] Print off_t size to easy large file detection --- site_scons/largefiles.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/site_scons/largefiles.py b/site_scons/largefiles.py index 9bd3064..6d32225 100644 --- a/site_scons/largefiles.py +++ b/site_scons/largefiles.py @@ -1,8 +1,8 @@ # # SCons Largefile enablement # -# Version 1.3 -# 06-Jun-2020 +# Version 1.4 +# 07-Jul-2024 # def enableLargeFiles(check,conf): @@ -12,16 +12,19 @@ def enableLargeFiles(check,conf): conf.env.Append(CPPFLAGS = '-DHAVE_FSEEKO') offt=conf.CheckTypeSize('off_t','#include \n#include ') ulong=conf.CheckTypeSize('unsigned long') - if offt<8 and offt>0: - flags=conf.env.Dictionary()['CPPFLAGS'] + if fseeko and offt<8 and offt>0: + # we have off_t but its not 8 byte long + saved_flags=conf.env.Dictionary()['CPPFLAGS'] + # we try to use some defs to make off_t longer conf.env.Append(CPPFLAGS='-D_FILE_OFFSET_BITS=64') offt=conf.CheckTypeSize('off_t','#include \n#include ') if offt < 8: - env.Replace(CPPFLAGS=flags) - else: - if offt == 0: - #set default value to 4 - offt=4 + env.Replace(CPPFLAGS=saved_flags) + if not fseeko: + # no fseeko we do not need off_t for anything + offt = 0 + check.Message("Effective off_t size is ") + check.Result(str(offt)+" bytes") conf.env.Append(CPPFLAGS = '-DSIZEOF_OFF_T='+str(offt)) check.Message("Checking if we have native large files ...") if fseeko and int(offt)>=8 and int(ulong)>=8: