Add DEBUGINFOD_SONAME macro to API for use by those of libdebuginfod clients that would like to dlopen the library in the same way as __libdwfl_debuginfod_init does.
Signed-off-by: Dmitry V. Levin <l...@altlinux.org> --- ChangeLog | 5 +++++ configure.ac | 5 ++++- debuginfod/ChangeLog | 8 ++++++++ debuginfod/Makefile.am | 13 ++++++------- debuginfod/{debuginfod.h => debuginfod.h.in} | 3 +++ 5 files changed, 26 insertions(+), 8 deletions(-) rename debuginfod/{debuginfod.h => debuginfod.h.in} (97%) diff --git a/ChangeLog b/ChangeLog index 565d021c..71e80a25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2020-11-30 Dmitry V. Levin <l...@altlinux.org> + + * configure.ac (LIBDEBUGINFOD_SONAME): New AC_SUBST variable. + (AC_CONFIG_FILES): Add debuginfod/debuginfod.h. + 2020-11-01 Érico N. Rolim <erico....@gmail.com> * configure.ac: Check for fts and obstack from outside libc. diff --git a/configure.ac b/configure.ac index c1a6954d..2f7316e8 100644 --- a/configure.ac +++ b/configure.ac @@ -25,6 +25,9 @@ m4_ifndef([AC_PACKAGE_URL], [Define to home page for this package]) AC_SUBST([PACKAGE_URL], ["http://elfutils.org/"])]) +LIBDEBUGINFOD_SONAME=libdebuginfod.so.1 +AC_SUBST([LIBDEBUGINFOD_SONAME]) + # We want eu- as default program prefix if none was given by the user. # But if the user explicitly provided --program-prefix="" then pretend # it wasn't set at all (NONE). We want to test this really early before @@ -61,7 +64,7 @@ dnl The RPM spec file. We substitute a few values in the file. AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in]) dnl debuginfo-server client & server parts. -AC_CONFIG_FILES([debuginfod/Makefile]) +AC_CONFIG_FILES([debuginfod/Makefile debuginfod/debuginfod.h]) AC_CANONICAL_HOST diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 3039371f..77fc49e1 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,5 +1,13 @@ 2020-11-30 Dmitry V. Levin <l...@altlinux.org> + * Makefile.am (VERSION): Remove. + (libdebuginfod.so): Replace $@.$(VERSION) with $(LIBDEBUGINFOD_SONAME) + (install, uninstall, MOSTLYCLEANFILES): Replace + libdebuginfod.so.$(VERSION) with $(LIBDEBUGINFOD_SONAME). + * debuginfod.h: Rename to ... + * debuginfod.h.in ... this. + (DEBUGINFOD_SONAME): New macro. + * Makefile.am (libdebuginfod.so$(EXEEXT)): Drop $(EXEEXT) suffix. 2020-11-25 Frank Ch. Eigler <f...@redhat.com> diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am index 352b4915..93423c85 100644 --- a/debuginfod/Makefile.am +++ b/debuginfod/Makefile.am @@ -34,7 +34,6 @@ AM_CPPFLAGS += -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \ $(libmicrohttpd_CFLAGS) $(libcurl_CFLAGS) $(sqlite3_CFLAGS) \ $(libarchive_CFLAGS) -VERSION = 1 # Disable eu- prefixing for artifacts (binaries & man pages) in this # directory, since they do not conflict with binutils tools. @@ -102,30 +101,30 @@ libdebuginfod_so_LDLIBS = $(libcurl_LIBS) $(fts_LIBS) endif libdebuginfod.so: $(srcdir)/libdebuginfod.map $(libdebuginfod_so_LIBS) $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \ - -Wl,--soname,$@.$(VERSION) \ + -Wl,--soname,$(LIBDEBUGINFOD_SONAME) \ -Wl,--version-script,$<,--no-undefined \ -Wl,--whole-archive $(libdebuginfod_so_LIBS) -Wl,--no-whole-archive \ $(libdebuginfod_so_LDLIBS) @$(textrel_check) - $(AM_V_at)ln -fs $@ $@.$(VERSION) + $(AM_V_at)ln -fs $@ $(LIBDEBUGINFOD_SONAME) endif if LIBDEBUGINFOD install: install-am libdebuginfod.so $(mkinstalldirs) $(DESTDIR)$(libdir) $(INSTALL_PROGRAM) libdebuginfod.so $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so - ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdebuginfod.so.$(VERSION) - ln -fs libdebuginfod.so.$(VERSION) $(DESTDIR)$(libdir)/libdebuginfod.so + ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/$(LIBDEBUGINFOD_SONAME) + ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdebuginfod.so uninstall: uninstall-am rm -f $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so - rm -f $(DESTDIR)$(libdir)/libdebuginfod.so.$(VERSION) + rm -f $(DESTDIR)$(libdir)/$(LIBDEBUGINFOD_SONAME) rm -f $(DESTDIR)$(libdir)/libdebuginfod.so rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils endif EXTRA_DIST = libdebuginfod.map -MOSTLYCLEANFILES = $(am_libdebuginfod_pic_a_OBJECTS) libdebuginfod.so.$(VERSION) +MOSTLYCLEANFILES = $(am_libdebuginfod_pic_a_OBJECTS) $(LIBDEBUGINFOD_SONAME) CLEANFILES += $(am_libdebuginfod_pic_a_OBJECTS) libdebuginfod.so # automake std-options override: arrange to pass LD_LIBRARY_PATH diff --git a/debuginfod/debuginfod.h b/debuginfod/debuginfod.h.in similarity index 97% rename from debuginfod/debuginfod.h rename to debuginfod/debuginfod.h.in index 4ee86ce9..559ea947 100644 --- a/debuginfod/debuginfod.h +++ b/debuginfod/debuginfod.h.in @@ -36,6 +36,9 @@ #define DEBUGINFOD_PROGRESS_ENV_VAR "DEBUGINFOD_PROGRESS" #define DEBUGINFOD_VERBOSE_ENV_VAR "DEBUGINFOD_VERBOSE" +/* The libdebuginfod soname. */ +#define DEBUGINFOD_SONAME "@LIBDEBUGINFOD_SONAME@" + /* Handle for debuginfod-client connection. */ typedef struct debuginfod_client debuginfod_client; -- ldv