Browse Source

wscript: better _FILE_OFFSET_BITS check, as suggested by @nekonomicon

pull/2/head
Alibek Omarov 2 years ago
parent
commit
c69ea00e79
  1. 17
      wscript

17
wscript

@ -301,12 +301,17 @@ def configure(conf): @@ -301,12 +301,17 @@ def configure(conf):
# set _FILE_OFFSET_BITS=64 for filesystems with 64-bit inodes
if conf.env.DEST_OS != 'win32' and conf.env.DEST_SIZEOF_VOID_P == 4:
file_offset_bits_usable = conf.check_cc(fragment='''#define _FILE_OFFSET_BITS 64
#include <features.h>
#ifndef __USE_FILE_OFFSET64
#error
#endif
int main(void){ return 0; }''',
# check was borrowed from libarchive source code
file_offset_bits_usable = conf.check_cc(fragment='''
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
#define KB ((off_t)1024)
#define MB ((off_t)1024 * KB)
#define GB ((off_t)1024 * MB)
#define TB ((off_t)1024 * GB)
int t2[(((64 * GB -1) % 671088649) == 268434537)
&& (((TB - (64 * GB -1) + 255) % 1792151290) == 305159546)? 1: -1];
int main(void) { return 0; }''',
msg='Checking if _FILE_OFFSET_BITS can be defined to 64', mandatory=False)
if file_offset_bits_usable:
conf.define('_FILE_OFFSET_BITS', 64)

Loading…
Cancel
Save