]> git.djapps.eu Git - pkg/ggml/sources/ggml/commitdiff
ggml : add option to not print stack on abort (#1081)
authorWilliam Tambellini <redacted>
Thu, 23 Jan 2025 19:59:08 +0000 (11:59 -0800)
committerGitHub <redacted>
Thu, 23 Jan 2025 19:59:08 +0000 (20:59 +0100)
* Add option to not print stack on abort

Add option/envvar to disable stack printing on abort.
Also link some unittests with Threads to fix link errors on
ubuntu/g++11.

* Update src/ggml.c

---------

Co-authored-by: Diego Devesa <redacted>
src/ggml.c
tests/CMakeLists.txt

index da5b817e1563785bbc9ffa48e559019c5d8b5c63..ae8147dd7d2f7af7650c071389624351aa0c95d4 100644 (file)
@@ -128,6 +128,10 @@ static void ggml_print_backtrace_symbols(void) {
 #endif
 
 static void ggml_print_backtrace(void) {
+    const char * GGML_NO_BACKTRACE = getenv("GGML_NO_BACKTRACE");
+    if (GGML_NO_BACKTRACE) {
+        return;
+    }
     char attach[32];
     snprintf(attach, sizeof(attach), "attach %d", getpid());
     int pid = fork();
index 5f8ee9c013e1472b421b4026bd074795bded970e..2259c3df4abd4af6283d7ceb12b8fb6426c427a9 100644 (file)
@@ -50,6 +50,10 @@ else()
         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mf16c")
     elseif (UNAME_S MATCHES "Linux")
         message(STATUS "Linux detected")
+        # must have to build on ubuntu22 with gcc11:
+        find_package(Threads)
+        set(GGML_EXTRA_LIBS  ${GGML_EXTRA_LIBS} Threads::Threads)
+
         execute_process(COMMAND grep "avx " /proc/cpuinfo OUTPUT_VARIABLE AVX1_M)
         if (AVX1_M MATCHES "avx")
             set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx")
@@ -276,7 +280,7 @@ set_property(TEST ${TEST_TARGET} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${TEST_
 
 set(TEST_TARGET test-arange)
 add_executable(${TEST_TARGET} ${TEST_TARGET}.cpp)
-target_link_libraries(${TEST_TARGET} PRIVATE ggml)
+target_link_libraries(${TEST_TARGET} PRIVATE ggml Threads::Threads)
 if (MSVC)
     target_link_options(${TEST_TARGET} PRIVATE "/STACK: 8388608") # 8MB
 endif()
@@ -392,7 +396,7 @@ set_property(TEST ${TEST_TARGET} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${TEST_
 
 set(TEST_TARGET test-backend-ops)
 add_executable(${TEST_TARGET} ${TEST_TARGET}.cpp)
-target_link_libraries(${TEST_TARGET} PRIVATE ggml)
+target_link_libraries(${TEST_TARGET} PRIVATE ggml Threads::Threads)
 add_test(NAME ${TEST_TARGET} COMMAND $<TARGET_FILE:${TEST_TARGET}>)
 set_property(TEST ${TEST_TARGET} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${TEST_TARGET}.profraw")