pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/ninja-build



Module Name:    pkgsrc
Committed By:   tsutsui
Date:           Fri Feb  7 16:00:27 UTC 2025

Modified Files:
        pkgsrc/devel/ninja-build: Makefile distinfo
Added Files:
        pkgsrc/devel/ninja-build/patches: patch-src_deps__log.cc

Log Message:
ninja-build: avoid allocating 512KB on stack.

Patch from isaki@.  Tested on NetBSD/amd64, NetBSD/i386, and
NetBSD/virt68k (with 512KB DFLSSIZ and MAXSSIZ) by me.

Bump PKGREVISION.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 pkgsrc/devel/ninja-build/Makefile
cvs rdiff -u -r1.21 -r1.22 pkgsrc/devel/ninja-build/distinfo
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/devel/ninja-build/patches/patch-src_deps__log.cc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/ninja-build/Makefile
diff -u pkgsrc/devel/ninja-build/Makefile:1.22 pkgsrc/devel/ninja-build/Makefile:1.23
--- pkgsrc/devel/ninja-build/Makefile:1.22      Sat May 11 18:58:09 2024
+++ pkgsrc/devel/ninja-build/Makefile   Fri Feb  7 16:00:27 2025
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.22 2024/05/11 18:58:09 adam Exp $
+# $NetBSD: Makefile,v 1.23 2025/02/07 16:00:27 tsutsui Exp $
 
 DISTNAME=      ninja-1.12.1
 PKGNAME=       ${DISTNAME:S/ninja/ninja-build/}
+PKGREVISION=   1
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=ninja-build/}
 GITHUB_PROJECT=        ninja

Index: pkgsrc/devel/ninja-build/distinfo
diff -u pkgsrc/devel/ninja-build/distinfo:1.21 pkgsrc/devel/ninja-build/distinfo:1.22
--- pkgsrc/devel/ninja-build/distinfo:1.21      Sat May 11 18:58:09 2024
+++ pkgsrc/devel/ninja-build/distinfo   Fri Feb  7 16:00:27 2025
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.21 2024/05/11 18:58:09 adam Exp $
+$NetBSD: distinfo,v 1.22 2025/02/07 16:00:27 tsutsui Exp $
 
 BLAKE2s (ninja-1.12.1.tar.gz) = 089334f5bf22900dbe44fd5a691d4e88dcc504e8d4d9d15ec980901ee1b7a6c8
 SHA512 (ninja-1.12.1.tar.gz) = d6e6f0e89a4844a69069ff0c7cefc07704a41c7b0c062a57534de87decdde63e27928147b321111b806aa7efa1061f031a1319b074391db61b0cbdccf096954c
 Size (ninja-1.12.1.tar.gz) = 240483 bytes
+SHA1 (patch-src_deps__log.cc) = c8a652f4084693a5ee35e07962dbdff4a2b8f6e2
 SHA1 (patch-src_subprocess-posix.cc) = aff45ff1080c8556bc9a749666c532896bd73609

Added files:

Index: pkgsrc/devel/ninja-build/patches/patch-src_deps__log.cc
diff -u /dev/null pkgsrc/devel/ninja-build/patches/patch-src_deps__log.cc:1.1
--- /dev/null   Fri Feb  7 16:00:27 2025
+++ pkgsrc/devel/ninja-build/patches/patch-src_deps__log.cc     Fri Feb  7 16:00:27 2025
@@ -0,0 +1,28 @@
+$NetBSD: patch-src_deps__log.cc,v 1.1 2025/02/07 16:00:27 tsutsui Exp $
+
+- avoid allocating 512KB on stack.
+  The upstream claims systems that cannot allocate 512KB on stack
+  should not use ninja:
+  https://github.com/ninja-build/ninja/issues/2567
+
+--- src/deps_log.cc.orig       2025-02-07 13:51:02.703555493 +0000
++++ src/deps_log.cc
+@@ -151,7 +151,8 @@ void DepsLog::Close() {
+ 
+ LoadStatus DepsLog::Load(const string& path, State* state, string* err) {
+   METRIC_RECORD(".ninja_deps load");
+-  char buf[kMaxRecordSize + 1];
++  vector<char> vbuf(kMaxRecordSize + 1);
++  char *buf = &vbuf[0];
+   FILE* f = fopen(path.c_str(), "rb");
+   if (!f) {
+     if (errno == ENOENT)
+@@ -162,7 +163,7 @@ LoadStatus DepsLog::Load(const string& p
+ 
+   bool valid_header = true;
+   int version = 0;
+-  if (!fgets(buf, sizeof(buf), f) || fread(&version, 4, 1, f) < 1)
++  if (!fgets(buf, vbuf.size(), f) || fread(&version, 4, 1, f) < 1)
+     valid_header = false;
+   // Note: For version differences, this should migrate to the new format.
+   // But the v1 format could sometimes (rarely) end up with invalid data, so



Home | Main Index | Thread Index | Old Index