Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ef3a1308..ecf0f4a1 100644
index 4eda64b5..fa379062 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -249,7 +249,9 @@ function(ggml_add_backend_library backend)
@@ -254,7 +254,9 @@ function(ggml_add_backend_library backend)
if (GGML_BACKEND_DL AND NOT (GGML_CPU_STATIC AND ${backend} MATCHES "^ggml-cpu"))
add_library(${backend} MODULE ${ARGN})
# write the shared library to the output directory
Expand All @@ -14,7 +14,7 @@ index ef3a1308..ecf0f4a1 100644
add_dependencies(ggml ${backend})
if (GGML_BACKEND_DIR)
diff --git a/src/ggml-backend-reg.cpp b/src/ggml-backend-reg.cpp
index 8a693f84..b5405bfd 100644
index 8a693f84..a514206d 100644
--- a/src/ggml-backend-reg.cpp
+++ b/src/ggml-backend-reg.cpp
@@ -437,9 +437,9 @@ static fs::path get_executable_path() {
Expand All @@ -29,3 +29,17 @@ index 8a693f84..b5405bfd 100644
#endif
}

@@ -526,6 +526,13 @@ static ggml_backend_reg_t ggml_backend_load_best(const char * name, bool silent,
}
}
}
+ // Android app packaging can flatten native libraries into one directory.
+ // If loading from the requested subdirectory fails, retry by filename only
+ // and leave lookup to dlopen's default search path resolution.
+ fs::path filename = backend_filename_prefix().native() + name_path.native() + backend_filename_extension().native();
+ if (auto reg = get_reg().load_backend(filename, silent)) {
+ return reg;
+ }
return nullptr;
}

Loading