diff mbox series

ninja: enable large file support for nativesdk builds

Message ID 20260515090645.1053312-1-peter.tatrai.ext@siemens.com
State New
Headers show
Series ninja: enable large file support for nativesdk builds | expand

Commit Message

P. Tatrai May 15, 2026, 9:06 a.m. UTC
From: Peter Tatrai <peter.tatrai.ext@siemens.com>

When SDKMACHINE is set to "i686", nativesdk-ninja is compiled as a
32-bit binary. Without large file support (LFS), ninja's internal stat()
call uses a 32-bit struct stat, which results in EOVERFLOW on filesystems
that report inode numbers larger than 2^32 (e.g. container overlay
filesystems).

Add -D_FILE_OFFSET_BITS=64 to CXXFLAGS for nativesdk builds to enable
LFS, ensuring stat() uses 64-bit types regardless of host word size.

Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com>
---
 meta/recipes-devtools/ninja/ninja_1.13.2.bb | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/meta/recipes-devtools/ninja/ninja_1.13.2.bb b/meta/recipes-devtools/ninja/ninja_1.13.2.bb
index e750c78c46..4fd048efa6 100644
--- a/meta/recipes-devtools/ninja/ninja_1.13.2.bb
+++ b/meta/recipes-devtools/ninja/ninja_1.13.2.bb
@@ -30,6 +30,11 @@  do_install() {
 	install -D -m 0755  ${S}/ninja ${D}${bindir}/ninja
 }
 
+# Enable large file support to avoid EOVERFLOW when stat() is called on files
+# with large inode numbers (e.g. on overlay filesystems). This is critical when
+# building nativesdk for a 32-bit SDKMACHINE (e.g. i686).
+CXXFLAGS:append:class-nativesdk = " -D_FILE_OFFSET_BITS=64"
+
 BBCLASSEXTEND = "native nativesdk"
 
 CVE_STATUS[CVE-2021-4336] = "cpe-incorrect: This is a different Ninja"