GNOME Bugzilla – Bug 144598
Versioned symbols
Last modified: 2020-08-11 15:46:26 UTC
Please enable versioned symbols to avoid incompatibilities with future versions of libcroco. A patch follows.
Created attachment 28829 [details] [review] the patch
Hi Joss: why did you use a configure option rather than always build a .so using libtool's versioning primitives? Thanks.
This is because not all dynamic linkers support -version-script. This patch is far from being optimal anyway, because the ability to use -version-script should be detected at configure time. Something like this would be more suitable (stolen from libgnutls): AC_MSG_CHECKING([if libraries can be versioned]) GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` if test "$GLD"; then have_ld_version_script=yes AC_MSG_RESULT(yes) else have_ld_version_script=no AC_MSG_RESULT(no) AC_MSG_WARN(*** *** You may want to rerun configure using --with-gnu-ld to enable versioned symbols. ) fi AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") and in Makefile.am: if HAVE_LD_VERSION_SCRIPT libcroco_0_6_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libgnutls.vers endif If you're planning to restrict the list of exported symbols like you did for librsvg, it has to be done in the same version script, as it is unfortunately impossible to mix -Wl,--version-script with -export-symbols (the latter uses the former internally).
libcroco is not under development anymore. Its codebase has been archived. Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Please feel free to reopen this ticket (or rather transfer the project to GNOME Gitlab, as GNOME Bugzilla is being shut down) if anyone takes the responsibility for active development again.