mold
mold copied to clipboard
mold 2.40.4 reporting duplicate symbols when using LTO to build git 2.52.0 with GCC 15.2
Sorry to necrobump, but i'm seeing this error again trying to compile the current version of git (2.52.0) on armv7l with mold 2.40.4 and GCC 15.2.
[771/1057] Linking target git-shell FAILED: [code=1] git-shell cc -o git-shell git-shell.p/shell.c.o -flto -Wl,--as-needed -Wl,--no-undefined -fuse-ld=mold -Wl,-O1 -pie -flto=auto '-Wl,-rpath,$ORIGIN/src' -Wl,--start-group libcommon-main.a libgit.a src/libgitcore.a /usr/local/lib/libz-ng.so -pthread /usr/local/lib/libpcre2-8.so /usr/local/lib/libexpat.so -lnsl -lresolv /usr/local/lib/libssl.so /usr/local/lib/libcrypto.so -lnsl -lresolv -lnsl -lresolv -Wl,--end-group mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __udivsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __aeabi_uidiv mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __divsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __aeabi_idiv collect2: error: ld returned 1 exit status [772/1057] Linking target git-sh-i18n--envsubst FAILED: [code=1] git-sh-i18n--envsubst cc -o git-sh-i18n--envsubst git-sh-i18n--envsubst.p/sh-i18n--envsubst.c.o -flto -Wl,--as-needed -Wl,--no-undefined -fuse-ld=mold -Wl,-O1 -pie -flto=auto '-Wl,-rpath,$ORIGIN/src' -Wl,--start-group libcommon-main.a libgit.a src/libgitcore.a /usr/local/lib/libz-ng.so -pthread /usr/local/lib/libpcre2-8.so /usr/local/lib/libexpat.so -lnsl -lresolv /usr/local/lib/libssl.so /usr/local/lib/libcrypto.so -lnsl -lresolv -lnsl -lresolv -Wl,--end-group mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __udivsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __divsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __aeabi_idiv mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __aeabi_uidiv collect2: error: ld returned 1 exit status [773/1057] Linking target git-daemon FAILED: [code=1] git-daemon cc -o git-daemon git-daemon.p/daemon.c.o -flto -Wl,--as-needed -Wl,--no-undefined -fuse-ld=mold -Wl,-O1 -pie -flto=auto '-Wl,-rpath,$ORIGIN/src' -Wl,--start-group libcommon-main.a libgit.a src/libgitcore.a /usr/local/lib/libz-ng.so -pthread /usr/local/lib/libpcre2-8.so /usr/local/lib/libexpat.so -lnsl -lresolv /usr/local/lib/libssl.so /usr/local/lib/libcrypto.so -lnsl -lresolv -lnsl -lresolv -Wl,--end-group mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __udivsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __divsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __aeabi_idiv mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __aeabi_uidiv collect2: error: ld returned 1 exit status [774/1057] Linking target git FAILED: [code=1] git cc -o git git.p/builtin_add.c.o git.p/builtin_am.c.o git.p/builtin_annotate.c.o git.p/builtin_apply.c.o git.p/builtin_archive.c.o git.p/builtin_backfill.c.o git.p/builtin_bisect.c.o git.p/builtin_blame.c.o git.p/builtin_branch.c.o git.p/builtin_bugreport.c.o git.p/builtin_bundle.c.o git.p/builtin_cat-file.c.o git.p/builtin_check-attr.c.o git.p/builtin_check-ignore.c.o git.p/builtin_check-mailmap.c.o git.p/builtin_check-ref-format.c.o git.p/builtin_checkout--worker.c.o git.p/builtin_checkout-index.c.o git.p/builtin_checkout.c.o git.p/builtin_clean.c.o git.p/builtin_clone.c.o git.p/builtin_column.c.o git.p/builtin_commit-graph.c.o git.p/builtin_commit-tree.c.o git.p/builtin_commit.c.o git.p/builtin_config.c.o git.p/builtin_count-objects.c.o git.p/builtin_credential-cache--daemon.c.o git.p/builtin_credential-cache.c.o git.p/builtin_credential-store.c.o git.p/builtin_credential.c.o git.p/builtin_describe.c.o git.p/builtin_diagnose.c.o git.p/builtin_diff-files.c.o git.p/builtin_diff-index.c.o git.p/builtin_diff-pairs.c.o git.p/builtin_diff-tree.c.o git.p/builtin_diff.c.o git.p/builtin_difftool.c.o git.p/builtin_fast-export.c.o git.p/builtin_fast-import.c.o git.p/builtin_fetch-pack.c.o git.p/builtin_fetch.c.o git.p/builtin_fmt-merge-msg.c.o git.p/builtin_for-each-ref.c.o git.p/builtin_for-each-repo.c.o git.p/builtin_fsck.c.o git.p/builtin_fsmonitor--daemon.c.o git.p/builtin_gc.c.o git.p/builtin_get-tar-commit-id.c.o git.p/builtin_grep.c.o git.p/builtin_hash-object.c.o git.p/builtin_help.c.o git.p/builtin_hook.c.o git.p/builtin_index-pack.c.o git.p/builtin_init-db.c.o git.p/builtin_interpret-trailers.c.o git.p/builtin_last-modified.c.o git.p/builtin_log.c.o git.p/builtin_ls-files.c.o git.p/builtin_ls-remote.c.o git.p/builtin_ls-tree.c.o git.p/builtin_mailinfo.c.o git.p/builtin_mailsplit.c.o git.p/builtin_merge-base.c.o git.p/builtin_merge-file.c.o git.p/builtin_merge-index.c.o git.p/builtin_merge-ours.c.o git.p/builtin_merge-recursive.c.o git.p/builtin_merge-tree.c.o git.p/builtin_merge.c.o git.p/builtin_mktag.c.o git.p/builtin_mktree.c.o git.p/builtin_multi-pack-index.c.o git.p/builtin_mv.c.o git.p/builtin_name-rev.c.o git.p/builtin_notes.c.o git.p/builtin_pack-objects.c.o git.p/builtin_pack-refs.c.o git.p/builtin_patch-id.c.o git.p/builtin_prune-packed.c.o git.p/builtin_prune.c.o git.p/builtin_pull.c.o git.p/builtin_push.c.o git.p/builtin_range-diff.c.o git.p/builtin_read-tree.c.o git.p/builtin_rebase.c.o git.p/builtin_receive-pack.c.o git.p/builtin_reflog.c.o git.p/builtin_refs.c.o git.p/builtin_remote-ext.c.o git.p/builtin_remote-fd.c.o git.p/builtin_remote.c.o git.p/builtin_repack.c.o git.p/builtin_replace.c.o git.p/builtin_replay.c.o git.p/builtin_repo.c.o git.p/builtin_rerere.c.o git.p/builtin_reset.c.o git.p/builtin_rev-list.c.o git.p/builtin_rev-parse.c.o git.p/builtin_revert.c.o git.p/builtin_rm.c.o git.p/builtin_send-pack.c.o git.p/builtin_shortlog.c.o git.p/builtin_show-branch.c.o git.p/builtin_show-index.c.o git.p/builtin_show-ref.c.o git.p/builtin_sparse-checkout.c.o git.p/builtin_stash.c.o git.p/builtin_stripspace.c.o git.p/builtin_submodule--helper.c.o git.p/builtin_symbolic-ref.c.o git.p/builtin_tag.c.o git.p/builtin_unpack-file.c.o git.p/builtin_unpack-objects.c.o git.p/builtin_update-index.c.o git.p/builtin_update-ref.c.o git.p/builtin_update-server-info.c.o git.p/builtin_upload-archive.c.o git.p/builtin_upload-pack.c.o git.p/builtin_var.c.o git.p/builtin_verify-commit.c.o git.p/builtin_verify-pack.c.o git.p/builtin_verify-tag.c.o git.p/builtin_worktree.c.o git.p/builtin_write-tree.c.o git.p/builtin_pack-redundant.c.o git.p/git.c.o -flto -Wl,--as-needed -Wl,--no-undefined -fuse-ld=mold -Wl,-O1 -pie -flto=auto '-Wl,-rpath,$ORIGIN/src' -Wl,--start-group libcommon-main.a libgit.a src/libgitcore.a /usr/local/lib/libz-ng.so -pthread /usr/local/lib/libpcre2-8.so /usr/local/lib/libexpat.so -lnsl -lresolv /usr/local/lib/libssl.so /usr/local/lib/libcrypto.so -lnsl -lresolv -lnsl -lresolv -Wl,--end-group mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __udivsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_udivsi3.o): src/libgitcore.a(63f8a0b8a638da8c-udivsi3.o): __aeabi_uidiv mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __divsi3 mold: error: duplicate symbol: /usr/local/lib/gcc/armv7l-cros-linux-gnueabihf/15/libgcc.a(_divsi3.o): src/libgitcore.a(63f8a0b8a638da8c-divsi3.o): __aeabi_idiv collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. There was a build error. `CFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold -flto=auto -flto=auto" CXXFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold -flto=auto -flto=auto" FCFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold -flto=auto -flto=auto" FFLAGS="-O3 -pipe -ffat-lto-objects -fPIC -fuse-ld=mold -flto=auto -flto=auto" LDFLAGS="-flto=auto" CREW_PRELOAD_ENABLE_COMPILE_HACKS="1" CC_LD="mold" CXX_LD="mold" CREW_PRELOAD_NO_MOLD="0" /usr/local/bin/jobserver_pool.py -j 4 ninja -C ./builddir` exited with 1I did not have issues on
i686orx86_64.Should I open a new issue?
Originally posted by @satmandu in #1421
Build log:
For what it is worth, I was able to make the issue go away by setting -Drust=disabled in my meson options when building the current version of git (2.52.0) on armv7l. There's some sort of issue maybe with linking with the rust binaries during the build, which is independent of using mold. (I also had errors using bfd and lld.)