MediaPipe 1.1.0 links its SQLite memory and vector stores from prebuilt archives built with Google's internal toolchain. They have no archive symbol table, and once indexed they still need Google's libc++ (std::__u) and internal symbols (__alloc_token_*__Znwm, sqlite_helpers, sqlite3_vector_init), so the link of libmediapipe.so fails. Drop the semantic retriever's C API from the library; mediapipe and its other tasks import and work as before.
22 lines
1.2 KiB
Diff
22 lines
1.2 KiB
Diff
Drop the semantic retriever from libmediapipe.so
|
|
|
|
MediaPipe 1.1.0 links its SQLite memory and vector stores from prebuilt
|
|
archives (third_party/sqlite_prebuilt_files.bzl) built with Google's internal
|
|
toolchain: they carry no archive symbol table, reference Google's libc++
|
|
(std::__u) and internal symbols (__alloc_token_*__Znwm, sqlite_helpers,
|
|
sqlite3_vector_init), and cannot link against a libstdc++ build. Leave the
|
|
semantic retriever's C API out of the library; everything else, including
|
|
the universal embedder, still builds. Only an explicit import of
|
|
mediapipe.tasks.python.retrieval.semantic_retriever needs those symbols.
|
|
|
|
--- a/mediapipe/tasks/c/BUILD
|
|
+++ b/mediapipe/tasks/c/BUILD
|
|
@@ -45,7 +45,6 @@
|
|
"//mediapipe/tasks/c/audio/audio_embedder:audio_embedder_c_lib",
|
|
"//mediapipe/tasks/c/core:common",
|
|
"//mediapipe/tasks/c/metadata:flatbuffer_api_c_lib",
|
|
- "//mediapipe/tasks/c/retrieval/semantic_retriever:semantic_retriever_lib",
|
|
"//mediapipe/tasks/c/retrieval/universal_embedder:universal_embedder_lib",
|
|
"//mediapipe/tasks/c/text/language_detector:language_detector_c_lib",
|
|
"//mediapipe/tasks/c/text/text_classifier:text_classifier_c_lib",
|