Skip to content

Commit 1605605

Browse files
committed
link to libdl on linux
1 parent ccd8df8 commit 1605605

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ endif
290290
# some memory allocation are available on Linux through GNU extensions in libc
291291
ifeq ($(UNAME_S),Linux)
292292
MK_CPPFLAGS += -D_GNU_SOURCE
293+
MK_LDFLAGS += -ldl
293294
endif
294295

295296
# RLIMIT_MEMLOCK came in BSD, is not specified in POSIX.1,

ggml/src/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,10 @@ add_library(ggml
230230

231231
target_link_libraries(ggml PUBLIC ggml-base)
232232

233+
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
234+
target_link_libraries(ggml PRIVATE dl)
235+
endif()
236+
233237
function(ggml_add_backend backend)
234238
string(TOUPPER "GGML_${backend}" backend_id)
235239
if (${backend_id})

ggml/src/ggml-backend-reg.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,14 @@ ggml_backend_reg_t ggml_backend_load(const char * path) {
250250
ggml_backend_reg_t reg = backend_init();
251251
if (!reg) {
252252
GGML_LOG_ERROR("%s: failed to initialize backend from %s\n", __func__, path);
253+
#ifdef _WIN32
254+
FreeLibrary(handle);
255+
#else
253256
dlclose(handle);
257+
#endif
254258
return nullptr;
255259
}
260+
256261
GGML_LOG_DEBUG("%s: loaded %s backend from %s\n", __func__, ggml_backend_reg_name(reg), path);
257262
get_reg().register_backend(reg, handle);
258263
return reg;

0 commit comments

Comments
 (0)