 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1 of 2] build: link to specific library version (libxs, libxl, xenstore, xenstat)
 # 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
 
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |