On Mon, 2014-01-13 at 15:15 +0100, Jakub Hrozek wrote:
On Mon, Jan 13, 2014 at 11:45:17AM +0100, Lukas Slebodnik wrote:
> ehlo,
>
> While I was working on symbol maps for ding_libs, I found out two declarations
> of function were misspelled in the public header file. It looks like nobody
> used this function, because symbols in library are correct
>
> [root@unused-4-233 ~]# objdump -T /usr/lib64/libcollection.so | grep
col_insert_unsi
> 0000000000006d50 g DF .text 000000000000003b Base
col_insert_unsigned_property_with_ref
> 0000000000006af0 g DF .text 000000000000003a Base col_insert_unsigned_property
>
> Problem is fixed with simple replacement s/ng/gn/
>
> I can see a problem. I am not sure if we should bump SONAME,
> because ABI of library is not changed, but API is technically
> changed in imcompatible way (two functions were removed and two functions were
> added). It looks like nobody used this functions, because it is impossible to
> link program with wrong declaration.
>
> LS
Nice catch. I would personally play it safe and bump the SONAME. Yes,
this will neccessitate a rebuild of SSSD and GSSProxy, but hiding a fix
is not nice practice, I think.
No need, add the new symbol as an alias of the other, and keep the old
too, this will prevent breaking the ABI.
In the headers file add a define the redefines the old symbol to the new
name so all new built software references the right one, this will
prevent breaking the API.
Simo.
--
Simo Sorce * Red Hat, Inc * New York