Add configure --enable-rpath
authorOlaf Hering <olaf@aepfle.de>
Wed, 1 Oct 2014 16:41:20 +0000 (18:41 +0200)
committerIan Campbell <ian.campbell@citrix.com>
Mon, 6 Oct 2014 16:00:22 +0000 (17:00 +0100)
This fixes the tools when xen is configured with --prefix=/odd/path

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
[ ijc -- ran autogen.sh as requested ]

Config.mk
config/Tools.mk.in
tools/Makefile
tools/configure
tools/configure.ac

index e551339c37487c5b83c7bb2b715c32bf5d95e0a3..339fb3c0f29adbc990f68cab065db497ae04d322 100644 (file)
--- a/Config.mk
+++ b/Config.mk
@@ -208,6 +208,9 @@ LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
 CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
 LDFLAGS += $(foreach i, $(PREPEND_LIB), -L$(i))
 CFLAGS += $(foreach i, $(PREPEND_INCLUDES), -I$(i))
+ifeq ($(XEN_TOOLS_RPATH),y)
+LDFLAGS += -Wl,-rpath,$(LIBDIR)
+endif
 APPEND_LDFLAGS += $(foreach i, $(APPEND_LIB), -L$(i))
 APPEND_CFLAGS += $(foreach i, $(APPEND_INCLUDES), -I$(i))
 
index a69b8466ab85c70576f4dc4c7d7519cc60f750b1..7183c32679074b80ae887e8a29a32c4d77d71c9d 100644 (file)
@@ -45,6 +45,7 @@ PTYFUNCS_LIBS       := @PTYFUNCS_LIBS@
 
 LIBNL3_LIBS         := @LIBNL3_LIBS@
 LIBNL3_CFLAGS       := @LIBNL3_CFLAGS@
+XEN_TOOLS_RPATH     := @rpath@
 
 # Download GIT repositories via HTTP or GIT's own protocol?
 # GIT's protocol is faster and more robust, when it works at all (firewalls
index b4a26c4d5be2ccdf4997f9f09240063d4fe9312d..452510ab6d6be7c1d951ec1bf9b0116f2a81b83a 100644 (file)
@@ -118,6 +118,14 @@ IOEMU_CONFIGURE_CROSS ?= --cross-prefix=$(CROSS_COMPILE) \
                         --interp-prefix=$(CROSS_SYS_ROOT)
 endif
 
+ifeq ($(XEN_TOOLS_RPATH),y)
+QEMU_UPSTREAM_RPATH := -Wl,-rpath,$(LIBEXEC_LIB):$(LIBDIR)
+IOEMU_EXTRA_LDFLAGS := --extra-ldflags="-Wl,-rpath,$(LIBDIR)"
+else
+QEMU_UPSTREAM_RPATH := -Wl,-rpath,$(LIBEXEC_LIB)
+IOEMU_EXTRA_LDFLAGS :=
+endif
+
 QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
 ifneq ($(QEMU_ROOT),.)
 export QEMU_ROOT
@@ -153,7 +161,10 @@ subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
        set -e; \
                $(buildmakevars2shellvars); \
                cd qemu-xen-traditional-dir; \
-               $(QEMU_ROOT)/xen-setup --cpu=$(IOEMU_CPU_ARCH) $(IOEMU_CONFIGURE_CROSS); \
+               $(QEMU_ROOT)/xen-setup \
+               $(IOEMU_EXTRA_LDFLAGS) \
+               --cpu=$(IOEMU_CPU_ARCH) \
+               $(IOEMU_CONFIGURE_CROSS); \
                $(MAKE) all
 
 subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
@@ -162,6 +173,7 @@ subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
                cd qemu-xen-traditional-dir; \
                $(QEMU_ROOT)/xen-setup \
                --extra-cflags="$(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
+               $(IOEMU_EXTRA_LDFLAGS) \
                --cpu=$(IOEMU_CPU_ARCH) \
                $(IOEMU_CONFIGURE_CROSS); \
                $(MAKE) install
@@ -206,7 +218,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-find
                $(EXTRA_CFLAGS_QEMU_XEN)" \
                --extra-ldflags="-L$(XEN_ROOT)/tools/libxc \
                -L$(XEN_ROOT)/tools/xenstore \
-               -Wl,-rpath=$(PREFIX)/lib/xen/lib" \
+               $(QEMU_UPSTREAM_RPATH)" \
                --bindir=$(LIBEXEC_BIN) \
                --datadir=$(SHAREDIR)/qemu-xen \
                --localstatedir=$(localstatedir) \
index 2750985a354e81d0c88162bb8e21870c2eb5d58d..8ce29aab711bf1fe3665ad28098e04c3c2ae3ea1 100755 (executable)
@@ -707,6 +707,7 @@ xsmpolicy
 ocamltools
 monitors
 githttp
+rpath
 XEN_PAGING_DIR
 XEN_LOCK_DIR
 XEN_SCRIPT_DIR
@@ -779,6 +780,7 @@ ac_user_opts='
 enable_option_checking
 enable_largefile
 with_initddir
+enable_rpath
 enable_githttp
 enable_monitors
 enable_ocamltools
@@ -1446,6 +1448,8 @@ Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --disable-largefile     omit support for large files
+  --enable-rpath          Build tools with -Wl,-rpath,LIBDIR (default is
+                          DISABLED)
   --enable-githttp        Download GIT repositories via HTTP (default is
                           DISABLED)
   --disable-monitors      Disable xenstat and xentop monitoring tools (default
@@ -3790,6 +3794,29 @@ XEN_PAGING_DIR=$localstatedir/lib/xen/xenpaging
 
 # Enable/disable options
 
+# Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+  enableval=$enable_rpath;
+fi
+
+
+if test "x$enable_rpath" = "xno"; then :
+
+    ax_cv_rpath="n"
+
+elif test "x$enable_rpath" = "xyes"; then :
+
+    ax_cv_rpath="y"
+
+elif test -z $ax_cv_rpath; then :
+
+    ax_cv_rpath="n"
+
+fi
+rpath=$ax_cv_rpath
+
+
+
 # Check whether --enable-githttp was given.
 if test "${enable_githttp+set}" = set; then :
   enableval=$enable_githttp;
index 788ba72a6230b97c1bf36a0da575c4d1587ccb8b..b9a1f6e1c46129a056b6b530b4303edb97900124 100644 (file)
@@ -80,6 +80,7 @@ m4_include([../m4/systemd.m4])
 AX_XEN_EXPAND_CONFIG()
 
 # Enable/disable options
+AX_ARG_DEFAULT_DISABLE([rpath], [Build tools with -Wl,-rpath,LIBDIR])
 AX_ARG_DEFAULT_DISABLE([githttp], [Download GIT repositories via HTTP])
 AX_ARG_DEFAULT_ENABLE([monitors], [Disable xenstat and xentop monitoring tools])
 AX_ARG_DEFAULT_ENABLE([ocamltools], [Disable Ocaml tools])