From fb33d20c072f2e7c3d500f00f8c04c99271f34c1 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 10 Jun 2025 00:29:46 +0900 Subject: [PATCH] musl: meson: explicitly set _LARGEFILE64_SOURCE glibc sets it when _GNU_SOURCE is defined, however, musl does not. Let's explicitly define it to make getdents64() and struct dirent64 available even when building with musl. --- meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meson.build b/meson.build index e3ee957fd5e..6d576b4d204 100644 --- a/meson.build +++ b/meson.build @@ -560,6 +560,10 @@ conf.set10('HAVE_WARNING_ZERO_AS_NULL_POINTER_CONSTANT', have) conf.set('_GNU_SOURCE', 1) conf.set('__SANE_USERSPACE_TYPES__', true) +# glibc always defines _LARGEFILE64_SOURCE when _GNU_SOURCE is set, but musl does not do that, +# and it is necessary for making getdents64() and struct dirent64 exist. +conf.set('_LARGEFILE64_SOURCE', 1) + conf.set('SIZEOF_DEV_T', cc.sizeof('dev_t', prefix : '#include ')) conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include ')) conf.set('SIZEOF_RLIM_T', cc.sizeof('rlim_t', prefix : '#include ')) -- 2.47.3