Add check for large files in meson.build

A similar check existed in the MSVC scripts that have been removed in
v17 by 1301c80b21, but nothing of the kind was checked in meson when
building with a 4-byte off_t.

This commit adds a check to fail the builds when trying to use a
relation file size higher than 1GB when off_t is 4 bytes, like
./configure, rather than detecting these failures at runtime because the
code is not able to handle large files in this case.

Backpatch down to v16, where meson has been introduced.

Discussion: https://postgr.es/m/aQ0hG36IrkaSGfN8@paquier.xyz
Backpatch-through: 16
REL_18_STABLE
Michael Paquier 1 month ago
parent 4b324845ba
commit 434b605745
  1. 8
      meson.build

@ -451,6 +451,14 @@ else
segsize = (get_option('segsize') * 1024 * 1024 * 1024) / blocksize segsize = (get_option('segsize') * 1024 * 1024 * 1024) / blocksize
endif endif
# If we don't have largefile support, can't handle segment size >= 2GB.
if cc.sizeof('off_t', args: test_c_args) < 8
segsize_bytes = segsize * blocksize
if segsize_bytes >= (2 * 1024 * 1024 * 1024)
error('Large file support is not enabled. Segment size cannot be larger than 1GB.')
endif
endif
cdata.set('BLCKSZ', blocksize, description: cdata.set('BLCKSZ', blocksize, description:
'''Size of a disk block --- this also limits the size of a tuple. You can set '''Size of a disk block --- this also limits the size of a tuple. You can set
it bigger if you need bigger tuples (although TOAST should reduce the need it bigger if you need bigger tuples (although TOAST should reduce the need

Loading…
Cancel
Save