[cairo-bugs] [Bug 29319] Modules are built as versioned shared objects

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue May 1 11:30:35 PDT 2012


https://bugs.freedesktop.org/show_bug.cgi?id=29319

--- Comment #3 from Dominique Leuenberger <dominique-freedesktop.org at leuenberger.net> 2012-05-01 11:30:35 PDT ---
Cairo trace loads it's library in a 'rude' / non-version aware way like this
(as you say yourself):

if test "x$CAIRO_TRACE_SO" = "x"; then
    CAIRO_TRACE_SO=""
    for lib in /usr/lib64/cairo/libcairo-trace.so
/usr/lib64/cairo/libcairo-trace.so* /usr/lib64/cairo/libcairo-trace.*.so ; do
        if test -h "$lib" -o -f "$lib"; then
            CAIRO_TRACE_SO="$lib"
            break
        fi
   done
fi
LD_PRELOAD="$CAIRO_TRACE_SO

=> so whatever versioning is being used, is ignored anyway and can as well not
be used ==> -avoid-version makes sense (it is not shared library after all)

For -sphinx I'm not sure if the .so ever get's used... this might actually be
just a mistake in Makefile.am and the 'library' is not needed at all (It's also
never referenced as a dependency)

This can be applied without build issues:
Index: cairo-1.12.2/util/cairo-sphinx/Makefile.am
===================================================================
--- cairo-1.12.2.orig/util/cairo-sphinx/Makefile.am
+++ cairo-1.12.2/util/cairo-sphinx/Makefile.am
@@ -1,6 +1,5 @@
 cairolibdir = $(libdir)/cairo

-cairolib_LTLIBRARIES = cairo-sphinx.la
 bin_PROGRAMS = cairo-sphinx

 AM_CPPFLAGS = -I$(top_srcdir)/src \
@@ -8,12 +7,6 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \
           -I$(top_srcdir)/boilerplate \
           -I$(top_srcdir)/util/cairo-script

-cairo_sphinx_la_SOURCES = fdr.c
-cairo_sphinx_la_CPPFLAGS = $(AM_CPPFLAGS)
-cairo_sphinx_la_CFLAGS = $(CAIRO_CFLAGS)
-cairo_sphinx_la_LDFLAGS = -module -no-undefined
-cairo_sphinx_la_LIBADD = -ldl
-
 cairo_sphinx_SOURCES = sphinx.c
 cairo_sphinx_CPPFLAGS = $(AM_CPPFLAGS) -DLIBDIR="\"$(cairolibdir)\""
 cairo_sphinx_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS)  $(glib_CFLAGS)

=> cairo-sphinx still runs too (well, it starts and exits.. just as before..
not sure how to test this binary)

cairo-fdr: this is apparenty lever loaded / referenced? Might well be just an
old reminder that was not cleaned up?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.


More information about the cairo-bugs mailing list