Re: git: e94a554e5542 - main - net/libproxy: bump consumers

From: Tijl Coosemans <tijl_at_FreeBSD.org>
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.)