From: Antoine Jacoutot Subject: Re: json-glib: work around broken --default-symver for ld.bfd To: Theo Buehler Cc: ports@openbsd.org, claudio@openbsd.org, jca@openbsd.org Date: Sat, 20 Dec 2025 10:52:49 +0100 On Sat, Dec 20, 2025 at 09:03:28AM +0100, Theo Buehler wrote: > 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 : 15 : 13 PROTECTED [: dc] 57311 > > 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. OK > > 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('.') > -- Antoine