Skip to content

mold 2.40.4 reporting duplicate symbols when using LTO to build git 2.52.0 with GCC 15.2 #1537

@satmandu

Description

@satmandu

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 1

I did not have issues on i686 or x86_64.

Should I open a new issue?

Originally posted by @satmandu in #1421

Build log:

2_generate (armv7l, ubuntu-24.04-arm).txt

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