mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
libs: Fix auto-generation of version-script for unstable libs
When there isn't a version-script for a shared library (like for unstable libs), we create one based on the current Xen version. But that version-script became out-of-date as soon as Xen's version changes and make as no way to regenerate the version-script on rebuild. For unstable libs, we only needs the symver to be different from a previous release of Xen. There's an option "--default-symver" which allow to use the soname as symver and as the soname have the Xen release version, it will be different for every release. With --default-symver we don't need to generate a version-script. But we also need to know if there's already an existing version script , for that we introduce $(version-script) to be used to point to the path of the existing script. (Guessing if a version script exist for a stable library with for example $(wildcard) won't work as a file will exist when building the library without this patch.) We don't need the version-script unless we are making the shared library so it is removed from the "all" target. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
6c707d4573
commit
98d95437ed
17 files changed
+14
-26
No files matched your search
@@ -110,8 +110,6 @@ tools/config.cache
|
||||
config/Tools.mk
|
||||
config/Stubdom.mk
|
||||
config/Docs.mk
|
||||
tools/libs/ctrl/libxenctrl.map
|
||||
tools/libs/guest/libxenguest.map
|
||||
tools/libs/guest/xc_bitops.h
|
||||
tools/libs/guest/xc_core.h
|
||||
tools/libs/guest/xc_core_arm.h
|
||||
@@ -121,7 +119,6 @@ tools/libs/light/_*.[ch]
|
||||
tools/libs/light/*.pyc
|
||||
tools/libs/light/_libxl.api-for-check
|
||||
tools/libs/light/*.api-ok
|
||||
tools/libs/light/libxenlight.map
|
||||
tools/libs/light/libxl-save-helper
|
||||
tools/libs/light/dsdt*
|
||||
tools/libs/light/mk_dsdt
|
||||
@@ -131,13 +128,10 @@ tools/libs/light/testidl.c
|
||||
tools/libs/light/test_timedereg
|
||||
tools/libs/light/test_fdderegrace
|
||||
tools/libs/light/tmp.*
|
||||
tools/libs/stat/libxenstat.map
|
||||
tools/libs/store/list.h
|
||||
tools/libs/store/utils.h
|
||||
tools/libs/store/xs_lib.c
|
||||
tools/libs/util/libxlu_cfg_y.output
|
||||
tools/libs/util/libxenutil.map
|
||||
tools/libs/vchan/libxenvchan.map
|
||||
tools/debugger/gdb/gdb-6.2.1-linux-i386-xen/*
|
||||
tools/debugger/gdb/gdb-6.2.1/*
|
||||
tools/debugger/gdb/gdb-6.2.1.tar.bz2
|
||||
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 3
|
||||
version-script := libxencall.map
|
||||
|
||||
include Makefile.common
|
||||
|
||||
|
||||
@@ -10,6 +10,3 @@ PKG_CONFIG_NAME := Xencontrol
|
||||
NO_HEADERS_CHK := y
|
||||
|
||||
include $(XEN_ROOT)/tools/libs/libs.mk
|
||||
|
||||
clean::
|
||||
rm -f libxenctrl.map
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 4
|
||||
version-script := libxendevicemodel.map
|
||||
|
||||
include Makefile.common
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 2
|
||||
version-script := libxenevtchn.map
|
||||
|
||||
include Makefile.common
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 4
|
||||
version-script := libxenforeignmemory.map
|
||||
|
||||
include Makefile.common
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 2
|
||||
version-script := libxengnttab.map
|
||||
|
||||
include Makefile.common
|
||||
|
||||
|
||||
@@ -14,6 +14,3 @@ NO_HEADERS_CHK := y
|
||||
include $(XEN_ROOT)/tools/libs/libs.mk
|
||||
|
||||
libxenguest.so.$(MAJOR).$(MINOR): LDLIBS += $(ZLIB_LIBS) -lz
|
||||
|
||||
clean::
|
||||
rm -f libxenguest.map
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 0
|
||||
version-script := libxenhypfs.map
|
||||
|
||||
LDLIBS += -lz
|
||||
|
||||
|
||||
+4
-6
@@ -4,6 +4,7 @@
|
||||
# PKG_CONFIG: name of pkg-config file (xen$(LIBNAME).pc if empty)
|
||||
# MAJOR: major version of lib (Xen version if empty)
|
||||
# MINOR: minor version of lib (0 if empty)
|
||||
# version-script: Specify the name of a version script to the linker.
|
||||
|
||||
LIBNAME := $(notdir $(CURDIR))
|
||||
|
||||
@@ -53,7 +54,7 @@ $(PKG_CONFIG_LOCAL): PKG_CONFIG_INCDIR = $(XEN_INCLUDE)
|
||||
$(PKG_CONFIG_LOCAL): PKG_CONFIG_LIBDIR = $(CURDIR)
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGETS) $(PKG_CONFIG_LOCAL) libxen$(LIBNAME).map $(LIBHEADERS)
|
||||
all: $(TARGETS) $(PKG_CONFIG_LOCAL) $(LIBHEADERS)
|
||||
|
||||
ifneq ($(NO_HEADERS_CHK),y)
|
||||
all: headers.chk
|
||||
@@ -71,9 +72,6 @@ headers.lst: FORCE
|
||||
@{ set -e; $(foreach h,$(LIBHEADERS),echo $(h);) } > $@.tmp
|
||||
@$(call move-if-changed,$@.tmp,$@)
|
||||
|
||||
libxen$(LIBNAME).map:
|
||||
echo 'VERS_$(MAJOR).$(MINOR) { global: *; };' >$@
|
||||
|
||||
lib$(LIB_FILE_NAME).a: $(OBJS-y)
|
||||
$(AR) rc $@ $^
|
||||
|
||||
@@ -82,8 +80,8 @@ lib$(LIB_FILE_NAME).so: lib$(LIB_FILE_NAME).so.$(MAJOR)
|
||||
lib$(LIB_FILE_NAME).so.$(MAJOR): lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR)
|
||||
$(SYMLINK_SHLIB) $< $@
|
||||
|
||||
lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR): $(PIC_OBJS) libxen$(LIBNAME).map
|
||||
$(CC) $(LDFLAGS) $(PTHREAD_LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,lib$(LIB_FILE_NAME).so.$(MAJOR) -Wl,--version-script=libxen$(LIBNAME).map $(SHLIB_LDFLAGS) -o $@ $(PIC_OBJS) $(LDLIBS) $(APPEND_LDFLAGS)
|
||||
lib$(LIB_FILE_NAME).so.$(MAJOR).$(MINOR): $(PIC_OBJS) $(version-script)
|
||||
$(CC) $(LDFLAGS) $(PTHREAD_LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,lib$(LIB_FILE_NAME).so.$(MAJOR) -Wl,$(if $(version-script),--version-script=$(version-script),--default-symver) $(SHLIB_LDFLAGS) -o $@ $(PIC_OBJS) $(LDLIBS) $(APPEND_LDFLAGS)
|
||||
|
||||
# If abi-dumper is available, write out the ABI analysis
|
||||
ifneq ($(ABI_DUMPER),)
|
||||
|
||||
@@ -262,6 +262,5 @@ clean::
|
||||
$(RM) testidl.c.new testidl.c *.api-ok
|
||||
$(RM) $(TEST_PROGS) libxenlight_test.so libxl_test_*.opic
|
||||
$(RM) -r __pycache__
|
||||
$(RM) libxenlight.map
|
||||
$(RM) $(AUTOSRCS) $(AUTOINCS)
|
||||
$(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR) clean
|
||||
@@ -134,4 +134,4 @@ uninstall:: uninstall-perl-bindings
|
||||
endif
|
||||
|
||||
clean::
|
||||
$(RM) libxenstat.map $(BINDINGS) $(BINDINGSRC)
|
||||
$(RM) $(BINDINGS) $(BINDINGSRC)
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 4
|
||||
MINOR = 0
|
||||
version-script := libxenstore.map
|
||||
|
||||
ifeq ($(CONFIG_Linux),y)
|
||||
LDLIBS += -ldl
|
||||
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 0
|
||||
version-script := libxentoolcore.map
|
||||
|
||||
LIBHEADER := xentoolcore.h
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
MAJOR = 1
|
||||
MINOR = 0
|
||||
version-script := libxentoollog.map
|
||||
|
||||
include Makefile.common
|
||||
|
||||
|
||||
@@ -47,6 +47,3 @@ $(OBJS-y) $(PIC_OBJS): $(AUTOINCS)
|
||||
%.c %.h:: %.l
|
||||
@rm -f $*.[ch]
|
||||
$(FLEX) --header-file=$*.h --outfile=$*.c $<
|
||||
|
||||
clean::
|
||||
$(RM) libxenutil.map
|
||||
@@ -11,6 +11,3 @@ OBJS-y += io.o
|
||||
NO_HEADERS_CHK := y
|
||||
|
||||
include $(XEN_ROOT)/tools/libs/libs.mk
|
||||
|
||||
clean::
|
||||
rm -f libxenvchan.map
|
||||