Fred_B
August 17, 2025, 9:12pm
1
So, I am build KiCad 9.0.3 from the zip file. Why, just because…
Anyway, after resolving a number of dependency issues, I have managed to complete the build about 91% of the way. Then I get this error:
mold: error: undefined symbol: Kiface()
referenced by eda_base_frame.cpp
common/libcommon.a(eda_base_frame.cpp.o):(EDA_BASE_FRAME::config() const)
referenced by eda_base_frame.cpp
common/libcommon.a(eda_base_frame.cpp.o):(EDA_BASE_FRAME::sys_search())
referenced by eda_base_frame.cpp
common/libcommon.a(eda_base_frame.cpp.o):(EDA_BASE_FRAME::help_name())
referenced 2 more times
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Anybody know what might be going on here?
Fred_B
August 17, 2025, 11:24pm
2
I just cloned the repository and attempted to build that and got the same error. So, at least it’s got nothing to do with the zip file.
By the way I am building on a Debian 12 system with gcc-12 and g++12. I built and installed a local copy of wxWidgets 3.2.2, which seems to be detected properly.
Here is my configuration command:
cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS=“-fuse-ld=mold” -DCMAKE_INSTALL_PREFIX=$HOME/.local -DCMAKE_PREFIX_PATH=$HOME/.local -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON -DKICAD_USE_EGL=ON …/…/
[2036/2236] Building CXX object utils/idftools/CMakeFiles/idf2vrml.dir/idf2vrml.cpp.o
[2037/2236] Linking CXX executable utils/idftools/idf2vrml
FAILED: utils/idftools/idf2vrml
: && /usr/bin/c++ -fuse-ld=mold -Wno-attributes -Wno-ignored-attributes -pthread -Wall -Wsuggest-override -Wduplicated-branches -Wduplicated-cond -Werror=vla -Wimplicit-fallthrough=5 -Werror=return-type -Wshadow -Wsign-compare -Wmissing-field-initializers -Wempty-body -Wreorder -Wmismatched-tags -Wpessimizing-move -Wredundant-move -Wno-psabi -O2 -g -DNDEBUG utils/idftools/CMakeFiles/idf2vrml.dir/idf2vrml.cpp.o -o utils/idftools/idf2vrml -L/home/fred/.local/lib -Wl,-rpath,/home/fred/.local/lib:/home/fred/Source/kicad/kicad/build/release/common/gal:/home/fred/Source/kicad/kicad/build/release/common:/home/fred/Source/kicad/kicad/build/release/api: utils/idftools/libidf3.a libs/kimath/libkimath.a common/libcommon.a /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so -L/home/fred/.local/lib -pthread -lwx_gtk3u_gl-3.2 -lwx_gtk3u_aui-3.2 -lwx_gtk3u_html-3.2 -lwx_gtk3u_core-3.2 -lwx_baseu_net-3.2 -lwx_baseu-3.2 -lwx_gtk3u_propgrid-3.2 -lwx_baseu_xml-3.2 -lwx_gtk3u_stc-3.2 -lwx_gtk3u_richtext-3.2 scripting/libscripting.a common/libcommon.a scripting/libscripting.a thirdparty/libcontext/liblibcontext.a common/gal/libkigal.so.9.0.3 thirdparty/glew/libglew.a /usr/lib/x86_64-linux-gnu/libEGL.so /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libpixman-1.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so thirdparty/nanosvg/libnanosvg.a thirdparty/dxflib_qcad/libdxflib_qcad.a thirdparty/tinyspline_lib/libtinyspline_lib.a thirdparty/nanodbc/libnanodbc.a -lodbc /usr/lib/x86_64-linux-gnu/libboost_locale.so.1.74.0 /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.74.0 /usr/lib/x86_64-linux-gnu/libboost_system.so.1.74.0 /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.74.0 /usr/lib/x86_64-linux-gnu/libboost_atomic.so.1.74.0 common/libkicommon.so.9.0.3 libs/kimath/libkimath.a thirdparty/clipper2/libclipper2.a -lm libs/kiplatform/libkiplatform.a libs/core/libcore.a -L/home/fred/.local/lib -pthread -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lsecret-1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lsecret-1 /usr/lib/x86_64-linux-gnu/libwayland-client.so thirdparty/fmt/libfmt.a libs/kinng/libkinng.a /usr/lib/x86_64-linux-gnu/libnng.so.1.5.2 api/libkiapi.so.9.0.3 /home/fred/.local/lib/libprotobuf.so.31.1.0 /home/fred/.local/lib/libabsl_log_internal_check_op.a /home/fred/.local/lib/libabsl_die_if_null.a /home/fred/.local/lib/libabsl_log_internal_conditions.a /home/fred/.local/lib/libabsl_log_internal_message.a /home/fred/.local/lib/libabsl_log_internal_nullguard.a /home/fred/.local/lib/libabsl_examine_stack.a /home/fred/.local/lib/libabsl_log_internal_format.a /home/fred/.local/lib/libabsl_log_internal_structured_proto.a /home/fred/.local/lib/libabsl_log_internal_log_sink_set.a /home/fred/.local/lib/libabsl_log_sink.a /home/fred/.local/lib/libabsl_log_entry.a /home/fred/.local/lib/libabsl_log_internal_proto.a /home/fred/.local/lib/libabsl_flags_internal.a /home/fred/.local/lib/libabsl_flags_marshalling.a /home/fred/.local/lib/libabsl_flags_reflection.a /home/fred/.local/lib/libabsl_flags_config.a /home/fred/.local/lib/libabsl_flags_program_name.a /home/fred/.local/lib/libabsl_flags_private_handle_accessor.a /home/fred/.local/lib/libabsl_flags_commandlineflag.a /home/fred/.local/lib/libabsl_flags_commandlineflag_internal.a /home/fred/.local/lib/libabsl_log_initialize.a /home/fred/.local/lib/libabsl_log_internal_globals.a /home/fred/.local/lib/libabsl_log_globals.a /home/fred/.local/lib/libabsl_vlog_config_internal.a /home/fred/.local/lib/libabsl_log_internal_fnmatch.a /home/fred/.local/lib/libabsl_raw_hash_set.a /home/fred/.local/lib/libabsl_hashtablez_sampler.a /home/fred/.local/lib/libabsl_random_distributions.a /home/fred/.local/lib/libabsl_random_seed_sequences.a /home/fred/.local/lib/libabsl_random_internal_entropy_pool.a /home/fred/.local/lib/libabsl_random_internal_randen.a /home/fred/.local/lib/libabsl_random_internal_randen_hwaes.a /home/fred/.local/lib/libabsl_random_internal_randen_hwaes_impl.a /home/fred/.local/lib/libabsl_random_internal_randen_slow.a /home/fred/.local/lib/libabsl_random_internal_platform.a /home/fred/.local/lib/libabsl_random_internal_seed_material.a /home/fred/.local/lib/libabsl_random_seed_gen_exception.a /home/fred/.local/lib/libabsl_statusor.a /home/fred/.local/lib/libabsl_status.a /home/fred/.local/lib/libabsl_cord.a /home/fred/.local/lib/libabsl_cordz_info.a /home/fred/.local/lib/libabsl_cord_internal.a /home/fred/.local/lib/libabsl_hash.a /home/fred/.local/lib/libabsl_city.a /home/fred/.local/lib/libabsl_cordz_functions.a /home/fred/.local/lib/libabsl_exponential_biased.a /home/fred/.local/lib/libabsl_cordz_handle.a /home/fred/.local/lib/libabsl_crc_cord_state.a /home/fred/.local/lib/libabsl_crc32c.a /home/fred/.local/lib/libabsl_crc_internal.a /home/fred/.local/lib/libabsl_crc_cpu_detect.a /home/fred/.local/lib/libabsl_leak_check.a /home/fred/.local/lib/libabsl_strerror.a /home/fred/.local/lib/libabsl_str_format_internal.a /home/fred/.local/lib/libabsl_synchronization.a /home/fred/.local/lib/libabsl_stacktrace.a /home/fred/.local/lib/libabsl_symbolize.a /home/fred/.local/lib/libabsl_debugging_internal.a /home/fred/.local/lib/libabsl_demangle_internal.a /home/fred/.local/lib/libabsl_demangle_rust.a /home/fred/.local/lib/libabsl_decode_rust_punycode.a /home/fred/.local/lib/libabsl_utf8_for_code_point.a /home/fred/.local/lib/libabsl_graphcycles_internal.a /home/fred/.local/lib/libabsl_kernel_timeout_internal.a /home/fred/.local/lib/libabsl_malloc_internal.a /home/fred/.local/lib/libabsl_tracing_internal.a /home/fred/.local/lib/libabsl_time.a /home/fred/.local/lib/libabsl_civil_time.a /home/fred/.local/lib/libabsl_time_zone.a /home/fred/.local/lib/libabsl_strings.a /home/fred/.local/lib/libabsl_int128.a /home/fred/.local/lib/libabsl_strings_internal.a /home/fred/.local/lib/libabsl_string_view.a /home/fred/.local/lib/libabsl_base.a /home/fred/.local/lib/libabsl_spinlock_wait.a -lrt /home/fred/.local/lib/libabsl_throw_delegate.a /home/fred/.local/lib/libabsl_raw_logging_internal.a /home/fred/.local/lib/libabsl_log_severity.a thirdparty/json_schema_validator/libnlohmann_json_schema_validator.a /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/x86_64-linux-gnu/libzstd.so -lwx_gtk3u_gl-3.2 -lwx_gtk3u_aui-3.2 -lwx_gtk3u_html-3.2 -lwx_gtk3u_core-3.2 -lwx_baseu_net-3.2 -lwx_baseu-3.2 -lwx_gtk3u_propgrid-3.2 -lwx_baseu_xml-3.2 -lwx_gtk3u_stc-3.2 -lwx_gtk3u_richtext-3.2 /usr/lib/x86_64-linux-gnu/libgit2.so /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/x86_64-linux-gnu/libfontconfig.so /usr/lib/x86_64-linux-gnu/libpython3.11.so -Wl,-rpath-link,/home/fred/.local/lib && :
mold: error: undefined symbol: Kiface()
>>> referenced by eda_base_frame.cpp
>>> common/libcommon.a(eda_base_frame.cpp.o):(EDA_BASE_FRAME::config() const)>>> referenced by eda_base_frame.cpp
>>> common/libcommon.a(eda_base_frame.cpp.o):(EDA_BASE_FRAME::sys_search())>>> referenced by eda_base_frame.cpp
>>> common/libcommon.a(eda_base_frame.cpp.o):(EDA_BASE_FRAME::help_name())>>> referenced 3 more times
collect2: error: ld returned 1 exit status
[2038/2236] Building CXX object kicad/pcm/CMakeFiles/pcm.dir/dialogs/panel_packages_view.cpp.o
[2039/2236] Building CXX object qa/qa_utils/CMakeFiles/qa_utils.dir/wx_utils/unit_test_utils.cpp.o
[2040/2236] Building CXX object qa/pcbnew_utils/CMakeFiles/qa_pcbnew_utils.dir/board_construction_utils.cpp.o
[2041/2236] Building CXX object kicad/pcm/CMakeFiles/pcm.dir/pcm_task_manager.cpp.o
[2042/2236] Building CXX object qa/qa_utils/CMakeFiles/qa_utils.dir/uuid_test_utils.cpp.o
[2043/2236] Building CXX object qa/pcbnew_utils/CMakeFiles/qa_pcbnew_utils.dir/board_file_utils.cpp.o
[2044/2236] Building CXX object kicad/pcm/CMakeFiles/pcm.dir/pcm.cpp.o
[2045/2236] Building CXX object qa/pcbnew_utils/CMakeFiles/qa_pcbnew_utils.dir/board_test_utils.cpp.o
[2046/2236] Building CXX object qa/schematic_utils/CMakeFiles/qa_schematic_utils.dir/eeschema_test_utils.cpp.o
ninja: build stopped: subcommand failed.
Try using a different linker.
dsa-t
August 18, 2025, 6:27am
4
You can use lld
or try asking mold
maintainer for help.
Fred_B
August 18, 2025, 10:44pm
5
What is the standard linker the the KiCad devs use?
We use the default linker provided by the standard toolchain on the Linux distros we support. This is generally GNU ld
.
Fred_B
August 18, 2025, 11:14pm
7
Hmm, has any run time errors been connected to the use of lld or gold for that matter as the linker?
Don’t know. You are welcome to experiment with linkers, but if you run into issues, there probably won’t be much help available.
Fred_B
August 18, 2025, 11:21pm
9
Well gee, it takes me an hour just to find out if the linker will get past this issue. lld seems to work. I suppose I should have just used ld at the start. So, what’s one more hour just to insure my build follows a well trodden path. I just want a KiCad that works.