[Gluster-devel] Major function rename needed for uuid_*() API

Niels de Vos ndevos at redhat.com
Tue Mar 31 17:43:44 UTC 2015


Manu noticed a very ugly issue related to different implementations/API
for uuid_*() functions. It seems that not all OS implementations of uuid
functions have the same API. This is not a major issue, Gluster carries
contrib/uuid/ for this.

However, applications that trigger loading of libglusterfs.so through a
dlopen() call, might have uuid_* symbols loaded already. On Linux this
problem is likely not noticible, because the symbols from libuuid and
libglusterfs do not conflict. Unfortunately, on NetBSD the libc library
provides the same uuid_* symbols, but these expect different parameters.

The plan to clean this up, and fix the dlopen() loading on NetBSD is
like this:

1. replace/rename all uuid_*() functions with gf_uuid_*()
   NetBSD can use the contrib/uuid (with gf_ prefix) symbols

2. glue the OS implementations of uuid_*() functions into libglusterfs,
   replacing the gf_uuid_*() functions from contrib/uuid
   - this can be done gradually, contrib/uuid will become unneeded when
     a glue layer is available

3. once all OS glue layers are in place, remove contrib/uuid completely


Please keep an eye out for patch #8 from Many:

    http://review.gluster.org/10017

For tracking this particular issue, Bug 1206587 was opened. The patch
above should make it for the 3.7 release, but points 2 and 3 do not have
the same high priority.

Thanks,
Niels


More information about the Gluster-devel mailing list