From 88e1d4c56f74c604d3773da4c45c0c592724adc5 Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Sat, 8 Nov 2025 18:36:52 +0900
Subject: [PATCH] Add check for large files in meson.build

This check existed in the MSVC scripts that have been removed in v16,
and was missing from meson.

Backpatch-through: 16
---
 meson.build | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/meson.build b/meson.build
index 00c46d400714..c7bc2df2c82f 100644
--- a/meson.build
+++ b/meson.build
@@ -452,6 +452,14 @@ else
   segsize = (get_option('segsize') * 1024 * 1024 * 1024) / blocksize
 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:
 '''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
-- 
2.51.0

