[SSSD] [PATCH] BUILD: Add version symbol files for public libraries.

Jakub Hrozek jhrozek at redhat.com
Tue Jul 8 07:27:23 UTC 2014


On Thu, Jun 26, 2014 at 10:31:27AM +0200, Lukas Slebodnik wrote:
> ehlo,
> 
> attached patch fixes ticket #2194.
> 
> If you wan to know more about version script (version maps) here are links:
> 
> http://people.redhat.com/drepper/dsohowto.pdf
>     (sections 2.2.5 .. 2.2.7, 3.4, 3.5)
> https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html
> ftp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html
> 
> LS

I verified with:
    nm -D $libname | awk '$2 == "T" {print $3";"}' | sort
that the functions exported by the library match the functions defined
in the version file.

The versions also match the SONAMEs.

One question inline:

> From 0779624cf96480fe3b62f5c881fb9b123d24a965 Mon Sep 17 00:00:00 2001
> From: Lukas Slebodnik <lslebodn at redhat.com>
> Date: Mon, 9 Jun 2014 14:38:31 +0200
> Subject: [PATCH] BUILD: Add version symbol files for public libraries.
> 
> Version symbol files will help package systems to catch backward compatible
> changes (newly added functions) into library.
> 
> Resolves:
> https://fedorahosted.org/sssd/ticket/2194

[...]

> new file mode 100644
> index 0000000000000000000000000000000000000000..bd3abb211120784494fe366ddd19b94d9b982657
> --- /dev/null
> +++ b/src/sss_client/idmap/sss_nss_idmap.exports
> @@ -0,0 +1,17 @@
> +SSS_NSS_IDMAP_0.0.1 {
> +
> +    # public functions
> +    global:
> +
> +        sss_nss_getsidbyname;
> +        sss_nss_getsidbyid;
> +        sss_nss_getnamebysid;
> +        sss_nss_getidbysid;
> +
> +    # exported for mocking

I don't think the comment is right. The symbol is exported because
libsss_nss_idmap links with the client code:
740 libsss_nss_idmap_la_SOURCES = \                        
741     src/sss_client/idmap/sss_nss_idmap.c \
742     src/sss_client/common.c \   
743     src/util/strtonum.c 

And libsss_nss_idmap uses the function to call out to the NSS responder
(see src/sss_client/idmap/sss_nss_idmap.c:100)

Can we not mark the function as global? It's not part of the sss_nss_idmap's
API.

> +        sss_nss_make_request;
> +
> +    # everything else is local
> +    local:
> +        *;
> +};
> -- 
> 1.9.3
> 

> _______________________________________________
> sssd-devel mailing list
> sssd-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/sssd-devel




More information about the sssd-devel mailing list