Skip to content

Compile bug: CUDA error: invalid use of ‘extern’ in linkage specification #48

@dan-and

Description

@dan-and

Git commit

commit bc05a68 (HEAD -> feature/turboquant-kv-cache, origin/feature/turboquant-kv-cache)
Merge: e9c54d5 e439700

Operating systems

Linux

GGML backends

CUDA

Problem description & steps to reproduce

Just tried to get up to date with the current repository.

First Bad Commit

commit bc05a68 (HEAD -> feature/turboquant-kv-cache, origin/feature/turboquant-kv-cache)
Merge: e9c54d5 e439700
Author: TheTom tturney1@gmail.com
Date: Fri Apr 3 12:21:45 2026 -0500

Merge remote-tracking branch 'origin/master' into feature/turboquant-kv-cache

Compile command

cmake -B build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build build --config Debug -j 10

Relevant log output

[ 28%] Built target ggml-cuda
In file included from /home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.h:3,
                 from /home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.cpp:1:
/home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/../include/ggml.h:187:22: error: invalid use of ‘extern’ in linkage specification
  187 | #    define GGML_API extern
      |                      ^~~~~~
/home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.cpp:15:12: note: in expansion of macro ‘GGML_API’
   15 | extern "C" GGML_API int turbo3_cpu_wht_group_size;
      |            ^~~~~~~~
/home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.cpp: In function ‘void ggml_compute_forward_clamp(const ggml_compute_params*, ggml_tensor*)’:
/home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.cpp:5568:12: warning: enumeration value ‘GGML_TYPE_TURBO3_0’ not handled in switch [-Wswitch]
 5568 |     switch (src0->type) {
      |            ^
/home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.cpp:5568:12: warning: enumeration value ‘GGML_TYPE_TURBO4_0’ not handled in switch [-Wswitch]
/home/daniel/source/TheTom_llama-cpp-turboquant/ggml/src/ggml-cpu/ops.cpp:5568:12: warning: enumeration value ‘GGML_TYPE_TURBO2_0’ not handled in switch [-Wswitch]
gmake[2]: *** [ggml/src/CMakeFiles/ggml-cpu.dir/build.make:230: ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ops.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1893: ggml/src/CMakeFiles/ggml-cpu.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions