Skip to content

Compile bug: invalid feature modifier ‘sme’, when building on ARM with GGML_CPU_ALL_VARIANTS=ON #17403

@farshidtz

Description

@farshidtz

Git commit

5be353e

Operating systems

Linux

GGML backends

CPU

Problem description & steps to reproduce

The build fails on arm64 with GGML_NATIVE=OFF and GGML_CPU_ALL_VARIANTS=ON.

Setting GGML_NATIVE=ON resolves the build error but results in a runtime error: llama_model_load_from_file_impl: no backends are loaded. hint: use ggml_backend_load() or ggml_backend_load_all() to load a backend before calling this function.
(Should setting GGML_NATIVE=ON in combination with GGML_CPU_ALL_VARIANTS=ON be an error?)

First Bad Commit

There is a mention of the same error from July: #14464 (comment)

Compile command

cmake -B build -DGGML_NATIVE=OFF -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_CURL=OFF

Relevant log output

[  1%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv9.2_2-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  1%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  2%] Building CXX object tools/mtmd/CMakeFiles/llama-gemma3-cli.dir/deprecation-warning.cpp.o
[  2%] Building CXX object tools/mtmd/CMakeFiles/llama-llava-cli.dir/deprecation-warning.cpp.o
[  2%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o
[  2%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  2%] Building C object examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o
[  2%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o
[  2%] Building CXX object tools/mtmd/CMakeFiles/llama-minicpmv-cli.dir/deprecation-warning.cpp.o
[  3%] Building C object examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o
[  3%] Building CXX object common/CMakeFiles/build_info.dir/build-info.cpp.o
[  3%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv9.2_1-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  5%] Building C object examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o
[  5%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml.cpp.o
[  5%] Building CXX object tools/mtmd/CMakeFiles/llama-qwen2vl-cli.dir/deprecation-warning.cpp.o
[  3%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  6%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  6%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  6%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1-feats.dir/ggml-cpu/arch/arm/cpu-feats.cpp.o
[  7%] Building CXX object vendor/cpp-httplib/CMakeFiles/cpp-httplib.dir/httplib.cpp.o
[  7%] Built target build_info
[  7%] Built target ggml-cpu-armv9.2_2-feats
[  7%] Built target ggml-cpu-armv8.6_2-feats
[  7%] Built target ggml-cpu-armv8.2_3-feats
[  7%] Built target ggml-cpu-armv9.2_1-feats
[  7%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o
[  7%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o
[  8%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o
[  8%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o
[  8%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/gguf.cpp.o
[  8%] Built target ggml-cpu-armv8.0_1-feats
[  8%] Built target ggml-cpu-armv8.2_1-feats
[  8%] Built target ggml-cpu-armv8.2_2-feats
[  8%] Built target ggml-cpu-armv8.6_1-feats
[  8%] Built target sha1
[  8%] Built target sha256
[  8%] Linking CXX executable ../../bin/llama-gemma3-cli
[  8%] Linking CXX executable ../../bin/llama-llava-cli
[  9%] Linking CXX executable ../../bin/llama-qwen2vl-cli
[  9%] Linking CXX executable ../../bin/llama-minicpmv-cli
[  9%] Built target llama-llava-cli
[  9%] Built target llama-gemma3-cli
[  9%] Built target llama-qwen2vl-cli
[  9%] Built target llama-minicpmv-cli
[  9%] Built target xxhash
[  9%] Linking CXX shared library ../../bin/libggml-base.so
[  9%] Built target ggml-base
[  9%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/ggml-cpu.c.o
[  9%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/ggml-cpu.cpp.o
[  9%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/ggml-cpu.cpp.o
[  9%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/repack.cpp.o
[ 10%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/repack.cpp.o
[ 10%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/hbm.cpp.o
[ 11%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/hbm.cpp.o
[ 11%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/quants.c.o
[ 11%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/ggml-cpu.c.o
[ 11%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/ggml-cpu.cpp.o
[ 11%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv9.2_2.dir/ggml-cpu/ggml-cpu.c.o
[ 11%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/ggml-cpu.c.o
[ 12%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/hbm.cpp.o
[ 12%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/quants.c.o
[ 12%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/repack.cpp.o
[ 12%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/ggml-cpu.c.o
[ 13%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/ggml-cpu.c.o
[ 13%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/ggml-cpu.c.o
[ 13%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv9.2_1.dir/ggml-cpu/ggml-cpu.c.o
cc1: error: invalid feature modifier ‘sme’ in ‘-march=armv9.2-a+dotprod+fp16+sve+i8mm+sve2+sme’
cc1: note: valid arguments are: fp simd crc lse fp16 rcpc rdma dotprod aes sha2 crypto sha3 sm4 fp16fml sve profile rng memtag sb ssbs predres sve2 sve2-sm4 sve2-aes sve2-sha3 sve2-bitperm tme i8mm f32mm f64mm bf16 flagm pauth ls64 mops cssc; did you mean ‘sm4’?
gmake[2]: *** [ggml/src/CMakeFiles/ggml-cpu-armv9.2_2.dir/build.make:76: ggml/src/CMakeFiles/ggml-cpu-armv9.2_2.dir/ggml-cpu/ggml-cpu.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2102: ggml/src/CMakeFiles/ggml-cpu-armv9.2_2.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
cc1: error: invalid feature modifier ‘sme’ in ‘-march=armv9.2-a+dotprod+fp16+sve+i8mm+sme’
cc1: note: valid arguments are: fp simd crc lse fp16 rcpc rdma dotprod aes sha2 crypto sha3 sm4 fp16fml sve profile rng memtag sb ssbs predres sve2 sve2-sm4 sve2-aes sve2-sha3 sve2-bitperm tme i8mm f32mm f64mm bf16 flagm pauth ls64 mops cssc; did you mean ‘sm4’?
gmake[2]: *** [ggml/src/CMakeFiles/ggml-cpu-armv9.2_1.dir/build.make:76: ggml/src/CMakeFiles/ggml-cpu-armv9.2_1.dir/ggml-cpu/ggml-cpu.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2049: ggml/src/CMakeFiles/ggml-cpu-armv9.2_1.dir/all] Error 2
[ 14%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/ggml-cpu.cpp.o
[ 14%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/repack.cpp.o
[ 14%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/repack.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/ggml-cpu.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/ggml-cpu.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/traits.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/hbm.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/traits.cpp.o
[ 15%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/quants.c.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/amx/amx.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/amx/mmq.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/traits.cpp.o
[ 15%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/amx/amx.cpp.o
[ 15%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/quants.c.o
[ 16%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/traits.cpp.o
[ 16%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/amx/amx.cpp.o
[ 16%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/repack.cpp.o
[ 16%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/hbm.cpp.o
[ 16%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/amx/mmq.cpp.o
[ 17%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/amx/amx.cpp.o
[ 18%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/binary-ops.cpp.o
[ 19%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/amx/mmq.cpp.o
[ 19%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/hbm.cpp.o
[ 20%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/quants.c.o
[ 20%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/quants.c.o
[ 20%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/unary-ops.cpp.o
[ 20%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/amx/mmq.cpp.o
[ 20%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/binary-ops.cpp.o
[ 20%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/binary-ops.cpp.o
[ 20%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/unary-ops.cpp.o
[ 20%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/traits.cpp.o
[ 21%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/traits.cpp.o
[ 21%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/amx/amx.cpp.o
[ 21%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/amx/mmq.cpp.o
[ 21%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/binary-ops.cpp.o
[ 21%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/unary-ops.cpp.o
[ 21%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/vec.cpp.o
[ 22%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/ops.cpp.o
[ 22%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/unary-ops.cpp.o
[ 22%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/vec.cpp.o
[ 23%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/ops.cpp.o
[ 23%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/llamafile/sgemm.cpp.o
[ 23%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/vec.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/vec.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/ops.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/llamafile/sgemm.cpp.o
[ 24%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/arch/arm/quants.c.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/amx/amx.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/binary-ops.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/ops.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/amx/mmq.cpp.o
[ 24%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/arch/arm/quants.c.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/llamafile/sgemm.cpp.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_2.dir/ggml-cpu/arch/arm/repack.cpp.o
[ 24%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/arch/arm/quants.c.o
[ 24%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/unary-ops.cpp.o
[ 25%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_2.dir/ggml-cpu/arch/arm/repack.cpp.o
[ 25%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/binary-ops.cpp.o
[ 26%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/unary-ops.cpp.o
[ 27%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/llamafile/sgemm.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/vec.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_1.dir/ggml-cpu/arch/arm/repack.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/vec.cpp.o
[ 28%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/arch/arm/quants.c.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.2_3.dir/ggml-cpu/arch/arm/repack.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/ops.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/llamafile/sgemm.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/ops.cpp.o
[ 28%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/llamafile/sgemm.cpp.o
[ 28%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/arch/arm/quants.c.o
[ 29%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.0_1.dir/ggml-cpu/arch/arm/repack.cpp.o
[ 30%] Building C object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/arch/arm/quants.c.o
[ 30%] Building CXX object ggml/src/CMakeFiles/ggml-cpu-armv8.6_1.dir/ggml-cpu/arch/arm/repack.cpp.o
[ 31%] Linking CXX shared module ../../bin/libggml-cpu-armv8.2_1.so
[ 31%] Built target ggml-cpu-armv8.2_1
[ 31%] Linking CXX shared module ../../bin/libggml-cpu-armv8.2_2.so
[ 31%] Linking CXX shared module ../../bin/libggml-cpu-armv8.2_3.so
[ 31%] Built target ggml-cpu-armv8.2_2
[ 31%] Built target ggml-cpu-armv8.2_3
[ 31%] Linking CXX static library libcpp-httplib.a
[ 31%] Built target cpp-httplib
[ 31%] Linking CXX shared module ../../bin/libggml-cpu-armv8.6_2.so
[ 31%] Built target ggml-cpu-armv8.6_2
[ 31%] Linking CXX shared module ../../bin/libggml-cpu-armv8.6_1.so
[ 31%] Built target ggml-cpu-armv8.6_1
[ 31%] Linking CXX shared module ../../bin/libggml-cpu-armv8.0_1.so
[ 31%] Built target ggml-cpu-armv8.0_1
gmake: *** [Makefile:146: all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions