git: af6504f9e7ec - main - math/stp: remove nonsensical sbrk use
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 11 Dec 2023 17:42:38 UTC
The branch main has been updated by brooks:
URL: https://cgit.FreeBSD.org/ports/commit/?id=af6504f9e7ecf4fda8cb04ac0271447049fcda31
commit af6504f9e7ecf4fda8cb04ac0271447049fcda31
Author: Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2023-12-11 17:39:48 +0000
Commit: Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2023-12-11 17:42:26 +0000
math/stp: remove nonsensical sbrk use
This code called sbrk(4000000) and beyond error checking ignored
the result meaning the 4MB of address space allocated could
never be used without another call to sbrk and reference to
INITIAL_MEMORY_PREALLOCATION_SIZE, but nothing in the repo does
either.
Submitted upstream as https://github.com/stp/stp/pull/474
Approved by: arrowd (maintainer)
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D42978
---
math/stp/Makefile | 5 +--
math/stp/files/patch-tools_stp_main__common.cpp | 45 +++++++++++++++++++++++++
2 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/math/stp/Makefile b/math/stp/Makefile
index 6661895d29e7..1ac149d4b152 100644
--- a/math/stp/Makefile
+++ b/math/stp/Makefile
@@ -1,6 +1,6 @@
PORTNAME= stp
DISTVERSION= 2.3.3
-PORTREVISION= 11
+PORTREVISION= 12
PORTEPOCH= 1
CATEGORIES= math
@@ -11,9 +11,6 @@ WWW= https://stp.github.io/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-BROKEN_aarch64= fails to link: missing sbrk
-BROKEN_riscv64= fails to link: missing sbrk
-
LIB_DEPENDS= libboost_program_options.so:devel/boost-libs \
libminisat.so:math/minisat \
libcryptominisat5.so:math/cryptominisat
diff --git a/math/stp/files/patch-tools_stp_main__common.cpp b/math/stp/files/patch-tools_stp_main__common.cpp
new file mode 100644
index 000000000000..1ad6bb03f991
--- /dev/null
+++ b/math/stp/files/patch-tools_stp_main__common.cpp
@@ -0,0 +1,45 @@
+--- tools/stp/main_common.cpp.orig
++++ tools/stp/main_common.cpp
+@@ -27,16 +27,8 @@
+ #include "stp/Parser/parser.h"
+ #include "stp/cpp_interface.h"
+
+-//for srbk() function
+-#if !defined(__MINGW32__) && !defined(__MINGW64__) && !defined(_MSC_VER)
+-#include <unistd.h>
+-#endif
+-
+ extern void errorHandler(const char* error_msg);
+
+-// Amount of memory to ask for at beginning of main.
+-extern const intptr_t INITIAL_MEMORY_PREALLOCATION_SIZE;
+-
+ using namespace stp;
+ using std::unique_ptr;
+ using std::cout;
+@@ -49,9 +41,6 @@
+ exit(-1);
+ }
+
+-// Amount of memory to ask for at beginning of main.
+-const intptr_t INITIAL_MEMORY_PREALLOCATION_SIZE = 4000000;
+-
+ Main::Main() : onePrintBack(false)
+ {
+ bm = NULL;
+@@ -62,15 +51,6 @@
+
+ // Register the error handler
+ vc_error_hdlr = errorHandler;
+-
+-#if !defined(__MINGW32__) && !defined(__MINGW64__) && !defined(_MSC_VER)
+- // Grab some memory from the OS upfront to reduce system time when
+- // individual hash tables are being allocated
+- if (sbrk(INITIAL_MEMORY_PREALLOCATION_SIZE) == ((void*)-1))
+- {
+- FatalError("Initial allocation of memory failed.");
+- }
+-#endif
+
+ bm = new STPMgr();
+ GlobalParserBM = bm;