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 <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.

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

Reply via email to