Bug 250089 - sysutils/gnome-control-center: link failure (11.x, old ld(1))
Summary: sysutils/gnome-control-center: link failure (11.x, old ld(1))
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-desktop (Team)
URL:
Keywords:
Depends on:
Blocks: 251004
  Show dependency treegraph
 
Reported: 2020-10-04 11:47 UTC by John Hein
Modified: 2021-04-12 19:13 UTC (History)
4 users (show)

See Also:
tcberner: maintainer-feedback+


Attachments
[patch] avoid old ld(1) due to link problems after switch to meson (308 bytes, patch)
2020-10-04 12:16 UTC, John Hein
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Hein 2020-10-04 11:47:26 UTC

    
Comment 1 John Hein 2020-10-04 11:59:19 UTC
sysutils/gnome-control-center fails to link on 11.x with the old default ld(1).

[378/378] cc  -o tests/interactive-panels/test-interactive-panels tests/interactive-panels/test-interactive-panels.p/meson-generated_.._test-panels-resources.c.o tests/interactive-panels/test-interactive-panels.p/meson-generated_.._.._.._shell_resources.c.o tests/interactive-panels/test-interactive-panels.p/gtp-dynamic-panel.c.o tests/interactive-panels/test-interactive-panels.p/gtp-header-widget.c.o tests/interactive-panels/test-interactive-panels.p/gtp-sidebar-widget.c.o tests/interactive-panels/test-interactive-panels.p/gtp-static-init.c.o tests/interactive-panels/test-interactive-panels.p/main.c.o -L/usr/local/lib -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong -Wl,--start-group panels/common/libdevice.a panels/common/liblanguage.a panels/common/libwidgets.a shell/libshell.a shell/libtestshell.a panels/applications/libapplications.a panels/background/libbackground.a panels/camera/libcamera.a panels/color/libcolor.a panels/datetime/libdatetime.a panels/default-apps/libdefault-apps.a panels/diagnostics/libdiagnostics.a panels/display/libdisplay.a panels/info-overview/libinfo-overview.a panels/keyboard/libkeyboard.a panels/location/liblocation.a panels/lock/liblock.a panels/microphone/libmicrophone.a panels/mouse/libmouse-properties.a panels/notifications/libnotifications.a panels/online-accounts/libonline-accounts.a panels/power/libpower.a panels/printers/libprinters.a panels/region/libregion.a panels/removable-media/libremovable-media.a panels/search/libsearch.a panels/sharing/libsharing.a panels/sound/libsound.a subprojects/gvc/libgvc.a panels/universal-access/libuniversal-access.a panels/usage/libusage.a panels/user-accounts/libuser-accounts.a /usr/local/lib/libgio-2.0.so /usr/local/lib/libgobject-2.0.so /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so /usr/local/lib/libhandy-0.0.so /usr/local/lib/libgtk-3.so /usr/local/lib/libgdk-3.so /usr/local/lib/libpangocairo-1.0.so /usr/local/lib/libpango-1.0.so /usr/local/lib/libatk-1.0.so /usr/local/lib/libcairo-gobject.so /usr/local/lib/libcairo.so -lpthread /usr/local/lib/libgdk_pixbuf-2.0.so /usr/local/lib/libgthread-2.0.so -pthread /usr/local/lib/libX11.so /usr/local/lib/libcheese.so /usr/local/lib/libclutter-1.0.so /usr/local/lib/libcogl-path.so /usr/local/lib/libcogl-pango.so /usr/local/lib/libcogl.so /usr/local/lib/libgmodule-2.0.so /usr/local/lib/libEGL.so /usr/local/lib/libXrandr.so /usr/local/lib/libjson-glib-1.0.so /usr/local/lib/libXext.so /usr/local/lib/libXdamage.so /usr/local/lib/libXfixes.so /usr/local/lib/libXcomposite.so /usr/local/lib/libXi.so /usr/local/lib/libgstreamer-1.0.so /usr/local/lib/libcheese-gtk.so /usr/local/lib/libclutter-gtk-1.0.so /usr/local/lib/libgudev-1.0.so /usr/local/lib/libgnome-desktop-3.so /usr/local/lib/libfontconfig.so /usr/local/lib/libfreetype.so /usr/local/lib/libpolkit-gobject-1.so /usr/local/lib/libgoa-1.0.so /usr/local/lib/libxml2.so /usr/local/lib/libgrilo-0.3.so -Wl,--export-dynamic /usr/local/lib/libcolord.so /usr/local/lib/libcolordprivate.so -lm /usr/local/lib/libcolord-gtk.so /usr/local/lib/libsoup-2.4.so /usr/local/lib/libupower-glib.so /usr/local/lib/libudisks2.so /usr/local/lib/libgtop-2.0.so /usr/local/lib/libgoa-backend-1.0.so -L/usr/local/lib -lcups -Wl,-rpath,/usr/local/lib/samba4 /usr/local/lib/samba4/libsmbclient.so /usr/local/lib/libaccountsservice.so /usr/local/lib/libibus-1.0.so /usr/local/lib/libsecret-1.so /usr/local/lib/libpulse.so /usr/local/lib/libpulse-mainloop-glib.so /usr/local/lib/libgsound.so -lkrb5 /usr/local/lib/libpwquality.so -Wl,--end-group
FAILED: tests/interactive-panels/test-interactive-panels 
cc  -o tests/interactive-panels/test-interactive-panels tests/interactive-panels/test-interactive-panels.p/meson-generated_.._test-panels-resources.c.o tests/interactive-panels/test-interactive-panels.p/meson-generated_.._.._.._shell_resources.c.o tests/interactive-panels/test-interactive-panels.p/gtp-dynamic-panel.c.o tests/interactive-panels/test-interactive-panels.p/gtp-header-widget.c.o tests/interactive-panels/test-interactive-panels.p/gtp-sidebar-widget.c.o tests/interactive-panels/test-interactive-panels.p/gtp-static-init.c.o tests/interactive-panels/test-interactive-panels.p/main.c.o -L/usr/local/lib -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong -Wl,--start-group panels/common/libdevice.a panels/common/liblanguage.a panels/common/libwidgets.a shell/libshell.a shell/libtestshell.a panels/applications/libapplications.a panels/background/libbackground.a panels/camera/libcamera.a panels/color/libcolor.a panels/datetime/libdatetime.a panels/default-apps/libdefault-apps.a panels/diagnostics/libdiagnostics.a panels/display/libdisplay.a panels/info-overview/libinfo-overview.a panels/keyboard/libkeyboard.a panels/location/liblocation.a panels/lock/liblock.a panels/microphone/libmicrophone.a panels/mouse/libmouse-properties.a panels/notifications/libnotifications.a panels/online-accounts/libonline-accounts.a panels/power/libpower.a panels/printers/libprinters.a panels/region/libregion.a panels/removable-media/libremovable-media.a panels/search/libsearch.a panels/sharing/libsharing.a panels/sound/libsound.a subprojects/gvc/libgvc.a panels/universal-access/libuniversal-access.a panels/usage/libusage.a panels/user-accounts/libuser-accounts.a /usr/local/lib/libgio-2.0.so /usr/local/lib/libgobject-2.0.so /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so /usr/local/lib/libhandy-0.0.so /usr/local/lib/libgtk-3.so /usr/local/lib/libgdk-3.so /usr/local/lib/libpangocairo-1.0.so /usr/local/lib/libpango-1.0.so /usr/local/lib/libatk-1.0.so /usr/local/lib/libcairo-gobject.so /usr/local/lib/libcairo.so -lpthread /usr/local/lib/libgdk_pixbuf-2.0.so /usr/local/lib/libgthread-2.0.so -pthread /usr/local/lib/libX11.so /usr/local/lib/libcheese.so /usr/local/lib/libclutter-1.0.so /usr/local/lib/libcogl-path.so /usr/local/lib/libcogl-pango.so /usr/local/lib/libcogl.so /usr/local/lib/libgmodule-2.0.so /usr/local/lib/libEGL.so /usr/local/lib/libXrandr.so /usr/local/lib/libjson-glib-1.0.so /usr/local/lib/libXext.so /usr/local/lib/libXdamage.so /usr/local/lib/libXfixes.so /usr/local/lib/libXcomposite.so /usr/local/lib/libXi.so /usr/local/lib/libgstreamer-1.0.so /usr/local/lib/libcheese-gtk.so /usr/local/lib/libclutter-gtk-1.0.so /usr/local/lib/libgudev-1.0.so /usr/local/lib/libgnome-desktop-3.so /usr/local/lib/libfontconfig.so /usr/local/lib/libfreetype.so /usr/local/lib/libpolkit-gobject-1.so /usr/local/lib/libgoa-1.0.so /usr/local/lib/libxml2.so /usr/local/lib/libgrilo-0.3.so -Wl,--export-dynamic /usr/local/lib/libcolord.so /usr/local/lib/libcolordprivate.so -lm /usr/local/lib/libcolord-gtk.so /usr/local/lib/libsoup-2.4.so /usr/local/lib/libupower-glib.so /usr/local/lib/libudisks2.so /usr/local/lib/libgtop-2.0.so /usr/local/lib/libgoa-backend-1.0.so -L/usr/local/lib -lcups -Wl,-rpath,/usr/local/lib/samba4 /usr/local/lib/samba4/libsmbclient.so /usr/local/lib/libaccountsservice.so /usr/local/lib/libibus-1.0.so /usr/local/lib/libsecret-1.so /usr/local/lib/libpulse.so /usr/local/lib/libpulse-mainloop-glib.so /usr/local/lib/libgsound.so -lkrb5 /usr/local/lib/libpwquality.so -Wl,--end-group
/usr/bin/ld: undefined reference to symbol `FcLangGetCharSet' (try adding -lfontconfig)
/usr/local/lib/libfontconfig.so: could not read symbols: Bad value
cc: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.



See also log on freebsd package builder:
http://beefy3.nyi.freebsd.org/data/114amd64-quarterly/551243/logs/gnome-control-center-3.36.4.log
Comment 2 John Hein 2020-10-04 12:04:04 UTC
This is similar to recent failures for sysutils/tracker and security/seahorse after they (also) switched to meson:

bug 249990
bug 249974

Fiddling around with the order the libraries are listed in the link command can get it working (e.g., moving the internal .so's after the .a's works), but that is just accommodating an old buggy linker.  Newer linkers (lld, binutils from ports) work just fine.
Comment 3 John Hein 2020-10-04 12:16:02 UTC
Created attachment 218510 [details]
[patch] avoid old ld(1) due to link problems after switch to meson

I'm not sure who should be set here for the maintainer-approval flag.  gnome@ is not responsive these days.  On the other bugs referenced in comment 2, I use bapt@ as the recent committer, but I haven't seen a response there either (EBUSY probably).

The same simple fix is applied here as the other bugs: point to lld as a more modern linker implementation - should work on all supported freebsd platforms.
Comment 4 John Hein 2020-10-04 16:39:17 UTC
See also bug 249418 comment 3 which was [prematurely] closed but is still seeing a build error - the same type of error in this bug (old ld(1) from 11.x base after updated to meson which invokes linking with a different arrangement of libraries on the command line).


http://beefy10.nyi.freebsd.org/data/113i386-default/550759/logs/atomix-3.34.0.log

 .
 .
/usr/bin/ld: undefined reference to symbol `ceil@@FBSD_1.0' (try adding -lm)
/usr/lib/libm.so: could not read symbols: Bad value
cc: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Comment 5 Tobias C. Berner freebsd_committer freebsd_triage 2020-11-15 10:30:30 UTC
Committed the same diff as in sysutils/tracker.

mfg Tobias
Comment 6 commit-hook freebsd_committer freebsd_triage 2020-11-15 10:31:14 UTC
A commit references this bug:

Author: tcberner
Date: Sun Nov 15 10:30:26 UTC 2020
New revision: 555191
URL: https://svnweb.freebsd.org/changeset/ports/555191

Log:
  sysutils/gnome-control-center: link failure (11.x, old ld(1))

  PR:		250089
  Submitted by:	John Hein <jcfyecrayz@liamekaens.com>

Changes:
  head/sysutils/gnome-control-center/Makefile