Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • gnome-builder gnome-builder
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 138
    • Issues 138
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 5
    • Merge requests 5
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • gnome-buildergnome-builder
  • Issues
  • #1057
Closed
Open
Issue created Oct 12, 2019 by Ting-Wei Lan@lantwDeveloper

Duplicate symbol errors when building with Meson 0.52.0

It seems that gnome-builder uses link_whole too much. Meson 0.52.0 changes the behavior of link_whole and now gnome-builder fails to link because of duplicate symbol errors. Please see https://github.com/mesonbuild/meson/pull/5936 for details of the change.

[372/1132] Linking target src/tests/test-compile-commands.
FAILED: src/tests/test-compile-commands 
clang -B/home/lantw44/.local/bin  -o src/tests/test-compile-commands 'src/tests/a4ccf2d@@test-compile-commands@exe/test-compile-commands.c.o' -L/home/lantw44/gnome/devinstall/lib -L/usr/local/lib -Wl,--as-needed -Wl,--no-undefined -Wl,--whole-archive -Wl,--start-group src/libide/foundry/libide-foundry-3.35.a src/libide/core/libide-core-3.35.a src/libide/io/libide-io-3.35.a src/libide/threading/libide-threading-3.35.a src/libide/projects/libide-projects-3.35.a src/libide/code/libide-code-3.35.a src/libide/plugins/libide-plugins-3.35.a src/libide/vcs/libide-vcs-3.35.a -Wl,--no-whole-archive -Wl,-z,relro -Wl,-z,now -march=corei7 -B/home/lantw44/.local/bin -pipe -g3 -Og -gz -fdebug-macro -B/home/lantw44/.local/bin -Wl,--compress-debug-sections=zlib -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libgio-2.0.so /home/lantw44/gnome/devinstall/lib/libgobject-2.0.so /home/lantw44/gnome/devinstall/lib/libglib-2.0.so -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libgtk-3.so /home/lantw44/gnome/devinstall/lib/libgdk-3.so /usr/lib/libz.so /home/lantw44/gnome/devinstall/lib/libpangocairo-1.0.so /home/lantw44/gnome/devinstall/lib/libpango-1.0.so /home/lantw44/gnome/devinstall/lib/libharfbuzz.so /home/lantw44/gnome/devinstall/lib/libatk-1.0.so /home/lantw44/gnome/devinstall/lib/libcairo-gobject.so /home/lantw44/gnome/devinstall/lib/libcairo.so /home/lantw44/gnome/devinstall/lib/libgdk_pixbuf-2.0.so -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libdazzle-1.0.so -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libpeas-1.0.so -Wl,--export-dynamic /home/lantw44/gnome/devinstall/lib/libgmodule-2.0.so -pthread /home/lantw44/gnome/devinstall/lib/libgirepository-1.0.so -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libvte-2.91.so -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libjson-glib-1.0.so -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libtemplate_glib-1.0.so -L/home/lantw44/gnome/devinstall/lib -lintl /usr/local/lib/libxml2.so -Wl,-rpath-link,/usr/local/lib /home/lantw44/gnome/devinstall/lib/libgtksourceview-4.so -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib/ -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,-rpath-link,/usr/local/lib -L/home/lantw44/gnome/devinstall/lib -lintl -Wl,--end-group
ld: error: duplicate symbol: _ide_context_set_has_project
>>> defined at ide-context.c:859 (../../source/gnome-builder/src/libide/core/ide-context.c:859)
>>>            ide-context.c.o:(_ide_context_set_has_project) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:859 (../../source/gnome-builder/src/libide/core/ide-context.c:859)
>>>            ide-context.c.o:(.text+0xF00) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_build_file
>>> defined at ide-context.c:678 (../../source/gnome-builder/src/libide/core/ide-context.c:678)
>>>            ide-context.c.o:(ide_context_build_file) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:678 (../../source/gnome-builder/src/libide/core/ide-context.c:678)
>>>            ide-context.c.o:(.text+0x950) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_build_filename
>>> defined at ide-context.c:711 (../../source/gnome-builder/src/libide/core/ide-context.c:711)
>>>            ide-context.c.o:(ide_context_build_filename) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:711 (../../source/gnome-builder/src/libide/core/ide-context.c:711)
>>>            ide-context.c.o:(.text+0xA50) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_cache_file
>>> defined at ide-context.c:570 (../../source/gnome-builder/src/libide/core/ide-context.c:570)
>>>            ide-context.c.o:(ide_context_cache_file) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:570 (../../source/gnome-builder/src/libide/core/ide-context.c:570)
>>>            ide-context.c.o:(.text+0x5B0) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_cache_filename
>>> defined at ide-context.c:627 (../../source/gnome-builder/src/libide/core/ide-context.c:627)
>>>            ide-context.c.o:(ide_context_cache_filename) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:627 (../../source/gnome-builder/src/libide/core/ide-context.c:627)
>>>            ide-context.c.o:(.text+0x7B0) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_dup_project_id
>>> defined at ide-context.c:460 (../../source/gnome-builder/src/libide/core/ide-context.c:460)
>>>            ide-context.c.o:(ide_context_dup_project_id) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:460 (../../source/gnome-builder/src/libide/core/ide-context.c:460)
>>>            ide-context.c.o:(.text+0x280) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_dup_title
>>> defined at ide-context.c:780 (../../source/gnome-builder/src/libide/core/ide-context.c:780)
>>>            ide-context.c.o:(ide_context_dup_title) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:780 (../../source/gnome-builder/src/libide/core/ide-context.c:780)
>>>            ide-context.c.o:(.text+0xCE0) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_get_type
>>> defined at ide-context.c:68 (../../source/gnome-builder/src/libide/core/ide-context.c:68)
>>>            ide-context.c.o:(ide_context_get_type) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:68 (../../source/gnome-builder/src/libide/core/ide-context.c:68)
>>>            ide-context.c.o:(.text+0x0) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_has_project
>>> defined at ide-context.c:845 (../../source/gnome-builder/src/libide/core/ide-context.c:845)
>>>            ide-context.c.o:(ide_context_has_project) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:845 (../../source/gnome-builder/src/libide/core/ide-context.c:845)
>>>            ide-context.c.o:(.text+0xE90) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_log
>>> defined at ide-context.c:827 (../../source/gnome-builder/src/libide/core/ide-context.c:827)
>>>            ide-context.c.o:(ide_context_log) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:827 (../../source/gnome-builder/src/libide/core/ide-context.c:827)
>>>            ide-context.c.o:(.text+0xE20) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_new
>>> defined at ide-context.c:387 (../../source/gnome-builder/src/libide/core/ide-context.c:387)
>>>            ide-context.c.o:(ide_context_new) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:387 (../../source/gnome-builder/src/libide/core/ide-context.c:387)
>>>            ide-context.c.o:(.text+0x90) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_peek_child_typed
>>> defined at ide-context.c:432 (../../source/gnome-builder/src/libide/core/ide-context.c:432)
>>>            ide-context.c.o:(ide_context_peek_child_typed) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:432 (../../source/gnome-builder/src/libide/core/ide-context.c:432)
>>>            ide-context.c.o:(.text+0xB0) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_ref_project_settings
>>> defined at ide-context.c:758 (../../source/gnome-builder/src/libide/core/ide-context.c:758)
>>>            ide-context.c.o:(ide_context_ref_project_settings) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:758 (../../source/gnome-builder/src/libide/core/ide-context.c:758)
>>>            ide-context.c.o:(.text+0xC20) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_ref_workdir
>>> defined at ide-context.c:516 (../../source/gnome-builder/src/libide/core/ide-context.c:516)
>>>            ide-context.c.o:(ide_context_ref_workdir) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:516 (../../source/gnome-builder/src/libide/core/ide-context.c:516)
>>>            ide-context.c.o:(.text+0x400) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_set_project_id
>>> defined at ide-context.c:487 (../../source/gnome-builder/src/libide/core/ide-context.c:487)
>>>            ide-context.c.o:(ide_context_set_project_id) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:487 (../../source/gnome-builder/src/libide/core/ide-context.c:487)
>>>            ide-context.c.o:(.text+0x350) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_set_title
>>> defined at ide-context.c:806 (../../source/gnome-builder/src/libide/core/ide-context.c:806)
>>>            ide-context.c.o:(ide_context_set_title) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:806 (../../source/gnome-builder/src/libide/core/ide-context.c:806)
>>>            ide-context.c.o:(.text+0xD70) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_set_workdir
>>> defined at ide-context.c:545 (../../source/gnome-builder/src/libide/core/ide-context.c:545)
>>>            ide-context.c.o:(ide_context_set_workdir) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context.c:545 (../../source/gnome-builder/src/libide/core/ide-context.c:545)
>>>            ide-context.c.o:(.text+0x490) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_addin_get_type
>>> defined at ide-context-addin.c:27 (../../source/gnome-builder/src/libide/core/ide-context-addin.c:27)
>>>            ide-context-addin.c.o:(ide_context_addin_get_type) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context-addin.c:27 (../../source/gnome-builder/src/libide/core/ide-context-addin.c:27)
>>>            ide-context-addin.c.o:(.text+0x0) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_addin_load
>>> defined at ide-context-addin.c:159 (../../source/gnome-builder/src/libide/core/ide-context-addin.c:159)
>>>            ide-context-addin.c.o:(ide_context_addin_load) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context-addin.c:159 (../../source/gnome-builder/src/libide/core/ide-context-addin.c:159)
>>>            ide-context-addin.c.o:(.text+0x370) in archive src/libide/core/libide-core-3.35.a

ld: error: duplicate symbol: ide_context_addin_load_project_async
>>> defined at ide-context-addin.c:109 (../../source/gnome-builder/src/libide/core/ide-context-addin.c:109)
>>>            ide-context-addin.c.o:(ide_context_addin_load_project_async) in archive src/libide/foundry/libide-foundry-3.35.a
>>> defined at ide-context-addin.c:109 (../../source/gnome-builder/src/libide/core/ide-context-addin.c:109)
>>>            ide-context-addin.c.o:(.text+0x120) in archive src/libide/core/libide-core-3.35.a

ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[375/1132] Compiling C object 'src/tests/a4ccf2d@@test-completion-fuzzy@exe/test-completion-fuzzy.c.o'.
ninja: build stopped: subcommand failed.

In case you see ninja: fatal: posix_spawn: Argument list too long, apply https://github.com/mesonbuild/meson/pull/6030 to fix it. Meson 0.52.0 generates a lot of duplicate arguments and it may exceed the length limit of the kernel.

Assignee
Assign to
Time tracking