Skip to content

Commit

Permalink
ggml : add option to not print stack on abort (#1081)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>
  • Loading branch information
WilliamTambellini and slaren authored Jan 23, 2025
1 parent f196832 commit 1f17c91
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/ggml.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
8 changes: 6 additions & 2 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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")

Expand Down

0 comments on commit 1f17c91

Please sign in to comment.