From: William Tambellini Date: Thu, 23 Jan 2025 19:59:08 +0000 (-0800) Subject: ggml : add option to not print stack on abort (#1081) X-Git-Tag: upstream/0.0.1689~55 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=1f17c918ef5838c21107abe8049f2fb12d6ba337;p=pkg%2Fggml%2Fsources%2Fggml ggml : add option to not print stack on abort (#1081) * 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 --- diff --git a/src/ggml.c b/src/ggml.c index da5b817e..ae8147dd 100644 --- a/src/ggml.c +++ b/src/ggml.c @@ -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(); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5f8ee9c0..2259c3df 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -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 $) set_property(TEST ${TEST_TARGET} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${TEST_TARGET}.profraw")