Re: git: e94a554e5542 - main - net/libproxy: bump consumers
Date: Wed, 22 Jan 2025 10:17:58 UTC
On Tue, 21 Jan 2025 10:34:59 -0500 Charlie Li wrote: > Tijl Coosemans wrote: >> On Tue, 21 Jan 2025 08:36:35 -0500 Charlie Li wrote: >>> Tijl Coosemans wrote: >>>> This error means there's something wrong with symbol versioning in >>>> libproxy. The meson output contains this line: >>> >>> These patches are not necessary. The total rewrite (using glib no less) >>> introduced a subtle ABI break despite keeping the API pretty much intact >>> from before, so consumers needed rebuilding. >> >> The patches are needed to restore symbol versions. >> >> Output of "objdump -T libproxy.so | grep text" with and without patches: >> >> 0000000000001d90 g DF .text 0000000000000028 LIBPROXY_0.4.16 px_proxy_factory_free >> 0000000000001d30 g DF .text 000000000000001b LIBPROXY_0.4.16 px_proxy_factory_new >> 0000000000001cb0 g DF .text 0000000000000045 LIBPROXY_0.5.5 px_proxy_factory_get_type >> 0000000000001d50 g DF .text 000000000000001a LIBPROXY_0.5.5 px_proxy_factory_copy >> 0000000000001d70 g DF .text 0000000000000008 LIBPROXY_0.4.16 px_proxy_factory_get_proxies >> 0000000000001d80 g DF .text 000000000000000a LIBPROXY_0.4.16 px_proxy_factory_free_proxies >> >> >> 0000000000001d10 g DF .text 0000000000000028 Base px_proxy_factory_free >> 0000000000001cb0 g DF .text 000000000000001b Base px_proxy_factory_new >> 0000000000001c30 g DF .text 0000000000000045 Base px_proxy_factory_get_type >> 0000000000001cd0 g DF .text 000000000000001a Base px_proxy_factory_copy >> 0000000000001cf0 g DF .text 0000000000000008 Base px_proxy_factory_get_proxies >> 0000000000001d00 g DF .text 000000000000000a Base px_proxy_factory_free_proxies > Lack of symbol versioning in the current version is correct. This is the > subtle (and intentional) ABI break I was referring to which necessitated > rebuilding every consumer hence the PORTREVISION bumps. That doesn't make much sense to me. Symbol versions are a good practice. If upstream provides them we should use them. They are disabled only because a configure test fails with clang (actually lld). That test does succeed with gcc (gnu ld). This means that a library built with gcc is not ABI compatible with the one built with clang. That's not good. So please commit or approve the patches. (There's no need to bump dependent ports again.)