-
Notifications
You must be signed in to change notification settings - Fork 483
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Git commit
Operating System & Version
OpenBSD
GGML backends
CPU
Command-line arguments used
not related
Steps to reproduce
- build ggml with -DGGML_BACKEND_DL=ON
- try to build stable-diffusion.cpp against that libggml
- it can't link
What you expected to happen
It links.
What actually happened
[ 84%] Linking CXX executable ../../bin/sd-cli 19:45 [135/4239]
ld: warning: stable-diffusion.cpp(stable-diffusion.cpp.o:(generate_image_internal(sd_ctx_t*, ggml_context*, ggml_tensor*, std::__1::basic_string<char, std::_
_1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, sd_guidance_par
ams_t, float, int, int, int, sample_method_t, std::__1::vector<float, std::__1::allocator<float>> const&, long long, int, sd_image_t, float, sd_pm_params_t,
std::__1::vector<sd_image_t*, std::__1::allocator<sd_image_t*>>, std::__1::vector<ggml_tensor*, std::__1::allocator<ggml_tensor*>>, bool, ggml_tensor*, ggml_
tensor*, sd_easycache_params_t const*)) in archive ../../libstable-diffusion.a): warning: rand() may return deterministic values, is that what you want?
ld: warning: zip.c(zip.c.o:(zip_archive_extract) in archive ../../libstable-diffusion.a): warning: strcpy() is almost always misused, please use strlcpy()
ld: error: undefined symbol: ggml_backend_cpu_init
>>> referenced by upscaler.cpp
>>> upscaler.cpp.o:(UpscalerGGML::load_from_file(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, b
ool, int)) in archive ../../libstable-diffusion.a
>>> referenced by model.cpp
>>> model.cpp.o:(ModelLoader::save_to_gguf_file(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, gg
ml_type, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(StableDiffusionGGML::init(sd_ctx_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced 4 more times
ld: error: undefined symbol: ggml_set_f32
>>> referenced by upscaler.cpp
>>> upscaler.cpp.o:(UpscalerGGML::upscale(sd_image_t, unsigned int)) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(generate_image_internal(sd_ctx_t*, ggml_context*, ggml_tensor*, std::__1::basic_string<char, std::__1::char_traits<
char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, sd_guidance_params_t, float, in
t, int, int, sample_method_t, std::__1::vector<float, std::__1::allocator<float>> const&, long long, int, sd_image_t, float, sd_pm_params_t, std::__1::vector
<sd_image_t*, std::__1::allocator<sd_image_t*>>, std::__1::vector<ggml_tensor*, std::__1::allocator<ggml_tensor*>>, bool, ggml_tensor*, ggml_tensor*, sd_easy
cache_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(generate_image_internal(sd_ctx_t*, ggml_context*, ggml_tensor*, std::__1::basic_string<char, std::__1::char_traits<
char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, sd_guidance_params_t, float, in
t, int, int, sample_method_t, std::__1::vector<float, std::__1::allocator<float>> const&, long long, int, sd_image_t, float, sd_pm_params_t, std::__1::vector
<sd_image_t*, std::__1::allocator<sd_image_t*>>, std::__1::vector<ggml_tensor*, std::__1::allocator<ggml_tensor*>>, bool, ggml_tensor*, ggml_tensor*, sd_easy
cache_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced 26 more times
ld: error: undefined symbol: ggml_set_f32_1d
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(generate_image_internal(sd_ctx_t*, ggml_context*, ggml_tensor*, std::__1::basic_string<char, std::__1::char_traits<
char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, sd_guidance_params_t, float, in
t, int, int, sample_method_t, std::__1::vector<float, std::__1::allocator<float>> const&, long long, int, sd_image_t, float, sd_pm_params_t, std::__1::vector
<sd_image_t*, std::__1::allocator<sd_image_t*>>, std::__1::vector<ggml_tensor*, std::__1::allocator<ggml_tensor*>>, bool, ggml_tensor*, ggml_tensor*, sd_easy
cache_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(generate_video) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(StableDiffusionGGML::sample(ggml_context*, std::__1::shared_ptr<DiffusionModel>, bool, ggml_tensor*, ggml_tensor*,
SDCondition, SDCondition, SDCondition, ggml_tensor*, float, sd_guidance_params_t, float, int, sample_method_t, std::__1::vector<float, std::__1::allocator<fl
oat>> const&, int, SDCondition, std::__1::vector<ggml_tensor*, std::__1::allocator<ggml_tensor*>>, bool, ggml_tensor*, ggml_tensor*, float, sd_easycache_para
ms_t const*)) in archive ../../libstable-diffusion.a
>>> referenced 5 more times
ld: error: undefined symbol: ggml_graph_compute_with_ctx
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(copy_ggml_tensor(ggml_tensor*, ggml_tensor*)) in archive ../../libstable-diffusion.a
>>> referenced by util.cpp
>>> util.cpp.o:(convolve(ggml_tensor*, ggml_tensor*, ggml_tensor*, int)) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_backend_is_cpu
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(StableDiffusionGGML::init(sd_ctx_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(StableDiffusionGGML::init(sd_ctx_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(StableDiffusionGGML::init(sd_ctx_params_t const*)) in archive ../../libstable-diffusion.a
>>> referenced 17 more times
ld: error: undefined symbol: ggml_cpu_has_sse3
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_avx
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_avx2
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_avx512
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_avx512_vbmi
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_avx512_vnni
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_fma
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_neon
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_arm_fma
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_f16c
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_fp16_va
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_wasm_simd
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_cpu_has_vsx
>>> referenced by util.cpp
>>> util.cpp.o:(sd_get_system_info) in archive ../../libstable-diffusion.a
ld: error: undefined symbol: ggml_backend_cpu_set_n_threads
>>> referenced by stable-diffusion.cpp
>>> stable-diffusion.cpp.o:(GGMLRunner::compute(std::__1::function<ggml_cgraph* ()>, int, bool, ggml_tensor**, ggml_context*)) in archive ../..
/libstable-diffusion.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
Logs / error messages / stack trace
No response
Additional context / environment details
Both llama.cpp and whisper.cpp link againt such libggml without an issue.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working