It appears that --default-symver is broken in our ld.bfd. All binaries
in the sparc64 ${WRKBUILD} of json-glib contain broken .dynsym entries
such as

    57: dfdfdfdfdfdfdfdf 0xdfdfdfdfdfdfdfdf <processor specific>: 15 <processor 
specific>: 13 PROTECTED [<other>: dc]  57311 <corrupt>

where __data_start should be. This isn't new. The current package
snapshot has this as well in json-glib-{format,validate}.

What's new with meson 1.10.0 is that it tries to parse the .dynsym table:
https://github.com/mesonbuild/meson/pull/15106
for reproducibility reasons. This blows up due to this corrupted entry.

Longer term this wants a fix (probably in bfd/elflink.c) or workaround,
but for now let's unblock a good chunk of the ports tree broken with
meson 1.10.0.

ld.lld doesn't support this option, so nothing changes on most archs.

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/json-glib/Makefile,v
diff -u -p -r1.53 Makefile
--- Makefile    14 Sep 2025 10:39:37 -0000      1.53
+++ Makefile    20 Dec 2025 07:42:32 -0000
@@ -2,6 +2,7 @@ COMMENT=                JSON parser for GLib-based lib
 
 GNOME_PROJECT=         json-glib
 GNOME_VERSION=         1.10.8
+REVISION=              0
 
 SHARED_LIBS += json-glib-1.0             6.2 # 0.1000.8
 
Index: patches/patch-meson_build
===================================================================
RCS file: patches/patch-meson_build
diff -N patches/patch-meson_build
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-meson_build   20 Dec 2025 07:47:36 -0000
@@ -0,0 +1,13 @@
+Do not use broken --default-symver on ld.bfd archs
+
+Index: meson.build
+--- meson.build.orig
++++ meson.build
+@@ -140,7 +140,6 @@ common_ldflags = cc.get_supported_link_arguments([
+   '-Wl,-Bsymbolic',
+   '-Wl,-z,relro',
+   '-Wl,-z,now',
+-  '-Wl,--default-symver',
+ ])
+ 
+ root_dir = include_directories('.')

Reply via email to