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
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.
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.
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.
Committed the same diff as in sysutils/tracker. mfg Tobias
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