libnl linker versioning is off

Thomas Graf tgraf at suug.ch
Mon Oct 6 04:05:27 PDT 2014


Copying the list

On 10/02/14 at 11:31am, Jan Engelhardt wrote:
> 
> Between libnl-3.2.24 and libnl-3.2.25, the function
> 
> diff --git a/include/netlink/cli/ct.h b/include/netlink/cli/ct.h
> index bed776b..ebe7c9d 100644
> --- a/include/netlink/cli/ct.h
> +++ b/include/netlink/cli/ct.h
> @@ -30,5 +30,6 @@ extern void nl_cli_ct_parse_src_port(struct nfnl_ct *, int, char *);
>  extern void nl_cli_ct_parse_dst_port(struct nfnl_ct *, int, char *);
>  extern void nl_cli_ct_parse_tcp_state(struct nfnl_ct *, char *);
>  extern void nl_cli_ct_parse_status(struct nfnl_ct *, char *);
> +extern void nl_cli_ct_parse_zone(struct nfnl_ct *, char *);
>  
>  #endif
> 
> appears to have been added (as have others). However, libnl.sym.in was 
> not updated to reflect this at all. Whenever symbols are added, a new 
> version section is to be appended. One must not add symbols to 
> preexisting sections.
> 
> 	LIBNL_3.2.25 {
> 	global:
> 		nl_cli_ct_parse_zone;
> 	} LIBNL_3.2.24;
> 
> Furthermore, it also appears that with libnl-3.2.25, a function was 
> removed:
> 
> diff --git a/include/netlink/cache.h b/include/netlink/cache.h
> index 08f97fa..e21aa1c 100644
> --- a/include/netlink/cache.h
> +++ b/include/netlink/cache.h
> @@ -94,8 +96,6 @@ extern struct nl_object *	nl_cache_search(struct nl_cache *,
>  						struct nl_object *);
>  extern struct nl_object *nl_cache_find(struct nl_cache *,
>  				       struct nl_object *);
> -extern struct nl_object *	nl_cache_lookup(struct nl_cache *,
> -						struct nl_object *);
>  extern void			nl_cache_mark_all(struct nl_cache *);
>  
>  /* Dumping */
> 
> 
> which means the ABI just broke and requires a full SONAME change (e.g. 
> from libnl-3.so.200 to libnl-3.so.201).
> 



More information about the libnl mailing list