# HG changeset patch
# User Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
# Date 1317900003 -7200
# Node ID fb73bd21cdf7aed429f7e90e192dcbc034f3ca57
# Parent a88029177dbcea6863a9c4e8e0cee81b08ecaed4
build: link to specific library version (libxs, libxl, xenstore, xenstat)
To avoid linking to an older version of xen libraries when compiling with
LDFLAGS and CFLAGS set, explicitly pass the linker the library file to link to.
Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
diff -r a88029177dbc -r fb73bd21cdf7 tools/Rules.mk
--- a/tools/Rules.mk Fri Sep 30 14:27:58 2011 +0100
+++ b/tools/Rules.mk Thu Oct 06 13:20:03 2011 +0200
@@ -5,6 +5,21 @@ all:
include $(XEN_ROOT)/Config.mk
+XLMAJOR = 2.0
+XLMINOR = 0
+
+XLUMAJOR = 1.0
+XLUMINOR = 0
+
+XCMAJOR = 4.2
+XCMINOR = 0
+
+XSMAJOR = 3.0
+XSMINOR = 0
+
+XSTATMAJOR=0
+XSTATMINOR=0
+
export _INSTALL := $(INSTALL)
INSTALL = $(XEN_ROOT)/tools/cross-install
@@ -18,19 +33,19 @@ XEN_BLKTAP2 = $(XEN_ROOT)/tools/b
CFLAGS_xeninclude = -I$(XEN_INCLUDE)
CFLAGS_libxenctrl = -I$(XEN_LIBXC) $(CFLAGS_xeninclude)
-LDLIBS_libxenctrl = -L$(XEN_LIBXC) -lxenctrl
+LDLIBS_libxenctrl = $(XEN_LIBXC)/libxenctrl.so.$(XCMAJOR).$(XCMINOR)
SHLIB_libxenctrl = -Wl,-rpath-link=$(XEN_LIBXC)
CFLAGS_libxenguest = -I$(XEN_LIBXC) $(CFLAGS_xeninclude)
-LDLIBS_libxenguest = -L$(XEN_LIBXC) -lxenguest
+LDLIBS_libxenguest = $(XEN_LIBXC)/libxenguest.so.$(XCMAJOR).$(XCMINOR)
SHLIB_libxenguest = -Wl,-rpath-link=L$(XEN_LIBXC)
CFLAGS_libxenstore = -I$(XEN_XENSTORE) $(CFLAGS_xeninclude)
-LDLIBS_libxenstore = -L$(XEN_XENSTORE) -lxenstore
+LDLIBS_libxenstore = $(XEN_XENSTORE)/libxenstore.so.$(XSMAJOR).$(XSMINOR)
SHLIB_libxenstore = -Wl,-rpath-link=$(XEN_XENSTORE)
CFLAGS_libxenstat = -I$(XEN_LIBXENSTAT)
-LDLIBS_libxenstat = $(SHLIB_libxenctrl) $(SHLIB_libxenstore)
-L$(XEN_LIBXENSTAT) -lxenstat
+LDLIBS_libxenstat = $(SHLIB_libxenctrl) $(SHLIB_libxenstore)
$(XEN_LIBXENSTAT)/libxenstat.so.$(XSTATMAJOR).$(XSTATMINOR)
SHLIB_libxenstat = -Wl,-rpath-link=$(XEN_LIBXENSTAT)
ifeq ($(CONFIG_Linux),y)
@@ -50,7 +65,7 @@ SHLIB_libblktapctl =
endif
CFLAGS_libxenlight = -I$(XEN_XENLIGHT) $(CFLAGS_libxenctrl)
$(CFLAGS_xeninclude)
-LDLIBS_libxenlight = -L$(XEN_XENLIGHT) $(SHLIB_libxenctrl)
$(SHLIB_libxenstore) $(SHLIB_libblktapctl) -lxenlight
+LDLIBS_libxenlight = $(XEN_XENLIGHT)/libxenlight.so.$(XLMAJOR).$(XLMINOR)
$(SHLIB_libxenctrl) $(SHLIB_libxenstore) $(SHLIB_libblktapctl)
SHLIB_libxenlight = -Wl,-rpath-link=$(XEN_XENLIGHT)
CFLAGS += -D__XEN_TOOLS__
diff -r a88029177dbc -r fb73bd21cdf7 tools/libxc/Makefile
--- a/tools/libxc/Makefile Fri Sep 30 14:27:58 2011 +0100
+++ b/tools/libxc/Makefile Thu Oct 06 13:20:03 2011 +0200
@@ -1,9 +1,6 @@
XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-MAJOR = 4.2
-MINOR = 0
-
CTRL_SRCS-y :=
CTRL_SRCS-y += xc_core.c
CTRL_SRCS-$(CONFIG_X86) += xc_core_x86.c
@@ -87,12 +84,12 @@ OSDEP_PIC_OBJS := $(patsubst %.c,%.opic,
LIB := libxenctrl.a
ifneq ($(stubdom),y)
-LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR)
+LIB += libxenctrl.so libxenctrl.so.$(XCMAJOR)
libxenctrl.so.$(XCMAJOR).$(XCMINOR)
endif
LIB += libxenguest.a
ifneq ($(stubdom),y)
-LIB += libxenguest.so libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR).$(MINOR)
+LIB += libxenguest.so libxenguest.so.$(XCMAJOR)
libxenguest.so.$(XCMAJOR).$(XCMINOR)
endif
ifneq ($(stubdom),y)
@@ -113,15 +110,15 @@ libs: $(LIB)
install: build
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
$(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)
- $(INSTALL_PROG) libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
+ $(INSTALL_PROG) libxenctrl.so.$(XCMAJOR).$(XCMINOR) $(DESTDIR)$(LIBDIR)
$(INSTALL_DATA) libxenctrl.a $(DESTDIR)$(LIBDIR)
- ln -sf libxenctrl.so.$(MAJOR).$(MINOR)
$(DESTDIR)$(LIBDIR)/libxenctrl.so.$(MAJOR)
- ln -sf libxenctrl.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so
+ ln -sf libxenctrl.so.$(XCMAJOR).$(XCMINOR)
$(DESTDIR)$(LIBDIR)/libxenctrl.so.$(XCMAJOR)
+ ln -sf libxenctrl.so.$(XCMAJOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so
$(INSTALL_DATA) xenctrl.h xenctrlosdep.h xentoollog.h
$(DESTDIR)$(INCLUDEDIR)
- $(INSTALL_PROG) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
+ $(INSTALL_PROG) libxenguest.so.$(XCMAJOR).$(XCMINOR) $(DESTDIR)$(LIBDIR)
$(INSTALL_DATA) libxenguest.a $(DESTDIR)$(LIBDIR)
- ln -sf libxenguest.so.$(MAJOR).$(MINOR)
$(DESTDIR)$(LIBDIR)/libxenguest.so.$(MAJOR)
- ln -sf libxenguest.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenguest.so
+ ln -sf libxenguest.so.$(XCMAJOR).$(XCMINOR)
$(DESTDIR)$(LIBDIR)/libxenguest.so.$(XCMAJOR)
+ ln -sf libxenguest.so.$(XCMAJOR) $(DESTDIR)$(LIBDIR)/libxenguest.so
$(INSTALL_DATA) xenguest.h $(DESTDIR)$(INCLUDEDIR)
.PHONY: TAGS
@@ -150,22 +147,22 @@ rpm: build
libxenctrl.a: $(CTRL_LIB_OBJS)
$(AR) rc $@ $^
-libxenctrl.so: libxenctrl.so.$(MAJOR)
+libxenctrl.so: libxenctrl.so.$(XCMAJOR)
ln -sf $< $@
-libxenctrl.so.$(MAJOR): libxenctrl.so.$(MAJOR).$(MINOR)
+libxenctrl.so.$(XCMAJOR): libxenctrl.so.$(XCMAJOR).$(XCMINOR)
ln -sf $< $@
-libxenctrl.so.$(MAJOR).$(MINOR): $(CTRL_PIC_OBJS)
- $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenctrl.so.$(MAJOR)
$(SHLIB_LDFLAGS) -o $@ $^ $(DLOPEN_LIBS) $(PTHREAD_LIBS)
+libxenctrl.so.$(XCMAJOR).$(XCMINOR): $(CTRL_PIC_OBJS)
+ $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenctrl.so.$(XCMAJOR)
$(SHLIB_LDFLAGS) -o $@ $^ $(DLOPEN_LIBS) $(PTHREAD_LIBS)
# libxenguest
libxenguest.a: $(GUEST_LIB_OBJS)
$(AR) rc $@ $^
-libxenguest.so: libxenguest.so.$(MAJOR)
+libxenguest.so: libxenguest.so.$(XCMAJOR)
ln -sf $< $@
-libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR)
+libxenguest.so.$(XCMAJOR): libxenguest.so.$(XCMAJOR).$(XCMINOR)
ln -sf $< $@
ifeq ($(CONFIG_MiniOS),y)
@@ -190,9 +187,9 @@ endif
xc_dom_bzimageloader.o: CFLAGS += $(call zlib-options,D)
xc_dom_bzimageloader.opic: CFLAGS += $(call zlib-options,D)
-libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(call zlib-options,l)
-libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so
- $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR)
$(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz
$(LDLIBS_libxenctrl) $(PTHREAD_LIBS)
+libxenguest.so.$(XCMAJOR).$(XCMINOR): COMPRESSION_LIBS = $(call zlib-options,l)
+libxenguest.so.$(XCMAJOR).$(XCMINOR): $(GUEST_PIC_OBJS) libxenctrl.so
+ $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(XCMAJOR)
$(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz
$(LDLIBS_libxenctrl) $(PTHREAD_LIBS)
xenctrl_osdep_ENOSYS.so: $(OSDEP_PIC_OBJS) libxenctrl.so
$(CC) -g $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $(OSDEP_PIC_OBJS)
$(LDLIBS_libxenctrl)
diff -r a88029177dbc -r fb73bd21cdf7 tools/libxl/Makefile
--- a/tools/libxl/Makefile Fri Sep 30 14:27:58 2011 +0100
+++ b/tools/libxl/Makefile Thu Oct 06 13:20:03 2011 +0200
@@ -5,12 +5,6 @@
XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
-MAJOR = 2.0
-MINOR = 0
-
-XLUMAJOR = 1.0
-XLUMINOR = 0
-
CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations
CFLAGS += -I. -fPIC
@@ -94,14 +88,14 @@ _libxl_type%.h _libxl_type%.c: libxl_typ
$(call move-if-changed,__libxl_type$*.h,_libxl_type$*.h)
$(call move-if-changed,__libxl_type$*.c,_libxl_type$*.c)
-libxenlight.so: libxenlight.so.$(MAJOR)
+libxenlight.so: libxenlight.so.$(XLMAJOR)
ln -sf $< $@
-libxenlight.so.$(MAJOR): libxenlight.so.$(MAJOR).$(MINOR)
+libxenlight.so.$(XLMAJOR): libxenlight.so.$(XLMAJOR).$(XLMINOR)
ln -sf $< $@
-libxenlight.so.$(MAJOR).$(MINOR): $(LIBXL_OBJS)
- $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(MAJOR)
$(SHLIB_LDFLAGS) -o $@ $^ $(LIBXL_LIBS)
+libxenlight.so.$(XLMAJOR).$(XLMINOR): $(LIBXL_OBJS)
+ $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(XLMAJOR)
$(SHLIB_LDFLAGS) -o $@ $^ $(LIBXL_LIBS)
libxenlight.a: $(LIBXL_OBJS)
$(AR) rcs libxenlight.a $^
@@ -118,11 +112,11 @@ libxlutil.so.$(XLUMAJOR).$(XLUMINOR): $(
libxlutil.a: $(LIBXLU_OBJS)
$(AR) rcs libxlutil.a $^
-xl: $(XL_OBJS) libxlutil.so libxenlight.so
- $(CC) $(LDFLAGS) -o $@ $(XL_OBJS) libxlutil.so $(LDLIBS_libxenlight)
$(LDLIBS_libxenctrl)
+xl: $(XL_OBJS) libxlutil.so.$(XLUMAJOR).$(XLUMINOR)
libxenlight.so.$(XLMAJOR).$(XLMINOR)
+ $(CC) $(LDFLAGS) -o $@ $(XL_OBJS) libxlutil.so.$(XLUMAJOR).$(XLUMINOR)
$(LDLIBS_libxenlight) $(LDLIBS_libxenctrl)
-testidl: testidl.o libxlutil.so libxenlight.so
- $(CC) $(LDFLAGS) -o $@ testidl.o libxlutil.so $(LDLIBS_libxenlight)
$(LDLIBS_libxenctrl)
+testidl: testidl.o libxlutil.so.$(XLUMAJOR).$(XLUMINOR)
libxenlight.so.$(XLMAJOR).$(XLMINOR)
+ $(CC) $(LDFLAGS) -o $@ testidl.o libxlutil.so.$(XLUMAJOR).$(XLUMINOR)
$(LDLIBS_libxenlight) $(LDLIBS_libxenctrl)
.PHONY: install
install: all
@@ -132,9 +126,9 @@ install: all
$(INSTALL_DIR) $(DESTDIR)$(BASH_COMPLETION_DIR)
$(INSTALL_DIR) $(DESTDIR)$(XEN_RUN_DIR)
$(INSTALL_PROG) xl $(DESTDIR)$(SBINDIR)
- $(INSTALL_PROG) libxenlight.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
- ln -sf libxenlight.so.$(MAJOR).$(MINOR)
$(DESTDIR)$(LIBDIR)/libxenlight.so.$(MAJOR)
- ln -sf libxenlight.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenlight.so
+ $(INSTALL_PROG) libxenlight.so.$(XLMAJOR).$(XLMINOR) $(DESTDIR)$(LIBDIR)
+ ln -sf libxenlight.so.$(XLMAJOR).$(XLMINOR)
$(DESTDIR)$(LIBDIR)/libxenlight.so.$(XLMAJOR)
+ ln -sf libxenlight.so.$(XLMAJOR) $(DESTDIR)$(LIBDIR)/libxenlight.so
$(INSTALL_DATA) libxenlight.a $(DESTDIR)$(LIBDIR)
$(INSTALL_PROG) libxlutil.so.$(XLUMAJOR).$(XLUMINOR) $(DESTDIR)$(LIBDIR)
ln -sf libxlutil.so.$(XLUMAJOR).$(XLUMINOR)
$(DESTDIR)$(LIBDIR)/libxlutil.so.$(XLUMAJOR)
diff -r a88029177dbc -r fb73bd21cdf7 tools/xenstat/libxenstat/Makefile
--- a/tools/xenstat/libxenstat/Makefile Fri Sep 30 14:27:58 2011 +0100
+++ b/tools/xenstat/libxenstat/Makefile Thu Oct 06 13:20:03 2011 +0200
@@ -22,17 +22,14 @@ libdir=$(prefix)/lib
LDCONFIG=ldconfig
MAKE_LINK=ln -sf
-MAJOR=0
-MINOR=0
-
LIB=src/libxenstat.a
-SHLIB=src/libxenstat.so.$(MAJOR).$(MINOR)
-SHLIB_LINKS=src/libxenstat.so.$(MAJOR) src/libxenstat.so
+SHLIB=src/libxenstat.so.$(XSTATMAJOR).$(XSTATMINOR)
+SHLIB_LINKS=src/libxenstat.so.$(XSTATMAJOR) src/libxenstat.so
OBJECTS-y=src/xenstat.o
OBJECTS-$(CONFIG_Linux) += src/xenstat_linux.o
OBJECTS-$(CONFIG_SunOS) += src/xenstat_solaris.o
OBJECTS-$(CONFIG_NetBSD) += src/xenstat_netbsd.o
-SONAME_FLAGS=-Wl,$(SONAME_LDFLAG) -Wl,libxenstat.so.$(MAJOR)
+SONAME_FLAGS=-Wl,$(SONAME_LDFLAG) -Wl,libxenstat.so.$(XSTATMAJOR)
WARN_FLAGS=-Wall -Werror
@@ -53,19 +50,19 @@ all: $(LIB) $(SHLIB) $(SHLIB_LINKS)
$(CC) $(LDFLAGS) $(SONAME_FLAGS) $(SHLIB_LDFLAGS) -o $@ \
$(OBJECTS-y) $(LDLIBS-y)
-src/libxenstat.so.$(MAJOR): $(SHLIB)
+src/libxenstat.so.$(XSTATMAJOR): $(SHLIB)
$(MAKE_LINK) $(<F) $@
-src/libxenstat.so: src/libxenstat.so.$(MAJOR)
+src/libxenstat.so: src/libxenstat.so.$(XSTATMAJOR)
$(MAKE_LINK) $(<F) $@
.PHONY: install
install: all
$(INSTALL_DATA) src/xenstat.h $(DESTDIR)$(INCLUDEDIR)
$(INSTALL_DATA) $(LIB) $(DESTDIR)$(LIBDIR)/libxenstat.a
- $(INSTALL_PROG) src/libxenstat.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
- ln -sf libxenstat.so.$(MAJOR).$(MINOR)
$(DESTDIR)$(LIBDIR)/libxenstat.so.$(MAJOR)
- ln -sf libxenstat.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenstat.so
+ $(INSTALL_PROG) src/libxenstat.so.$(XSTATMAJOR).$(XSTATMINOR)
$(DESTDIR)$(LIBDIR)
+ ln -sf libxenstat.so.$(XSTATMAJOR).$(XSTATMINOR)
$(DESTDIR)$(LIBDIR)/libxenstat.so.$(XSTATMAJOR)
+ ln -sf libxenstat.so.$(XSTATMAJOR) $(DESTDIR)$(LIBDIR)/libxenstat.so
PYLIB=bindings/swig/python/_xenstat.so
PYMOD=bindings/swig/python/xenstat.py
diff -r a88029177dbc -r fb73bd21cdf7 tools/xenstore/Makefile
--- a/tools/xenstore/Makefile Fri Sep 30 14:27:58 2011 +0100
+++ b/tools/xenstore/Makefile Thu Oct 06 13:20:03 2011 +0200
@@ -61,15 +61,15 @@ xenstore-control: xenstore_control.o $(L
xs_tdb_dump: xs_tdb_dump.o utils.o tdb.o talloc.o
$(CC) $(LDFLAGS) $^ -o $@
-libxenstore.so: libxenstore.so.$(MAJOR)
+libxenstore.so: libxenstore.so.$(XSMAJOR)
ln -sf $< $@
-libxenstore.so.$(MAJOR): libxenstore.so.$(MAJOR).$(MINOR)
+libxenstore.so.$(XSMAJOR): libxenstore.so.$(XSMAJOR).$(XSMINOR)
ln -sf $< $@
xs.opic: CFLAGS += -DUSE_PTHREAD
-libxenstore.so.$(MAJOR).$(MINOR): xs.opic xs_lib.opic
- $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenstore.so.$(MAJOR)
$(SHLIB_LDFLAGS) -o $@ $^ $(SOCKET_LIBS) -lpthread
+libxenstore.so.$(XSMAJOR).$(XSMINOR): xs.opic xs_lib.opic
+ $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenstore.so.$(XSMAJOR)
$(SHLIB_LDFLAGS) -o $@ $^ $(SOCKET_LIBS) -lpthread
libxenstore.a: xs.o xs_lib.o
$(AR) rcs $@ $^
@@ -104,9 +104,9 @@ install: all
ln -f $(DESTDIR)$(BINDIR)/xenstore $(DESTDIR)$(BINDIR)/$${c} ; \
done
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
- $(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
- ln -sf libxenstore.so.$(MAJOR).$(MINOR)
$(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
- ln -sf libxenstore.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenstore.so
+ $(INSTALL_PROG) libxenstore.so.$(XSMAJOR).$(XSMINOR) $(DESTDIR)$(LIBDIR)
+ ln -sf libxenstore.so.$(XSMAJOR).$(XSMINOR)
$(DESTDIR)$(LIBDIR)/libxenstore.so.$(XSMAJOR)
+ ln -sf libxenstore.so.$(XSMAJOR) $(DESTDIR)$(LIBDIR)/libxenstore.so
$(INSTALL_DATA) libxenstore.a $(DESTDIR)$(LIBDIR)
$(INSTALL_DATA) xs.h $(DESTDIR)$(INCLUDEDIR)
$(INSTALL_DATA) xs_lib.h $(DESTDIR)$(INCLUDEDIR)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|