]> xenbits.xensource.com Git - people/iwj/xen.git/commitdiff
pygrub: Specify -rpath LIBEXEC_LIB when building fsimage.so
authorIan Jackson <ian.jackson@citrix.com>
Fri, 22 Feb 2019 12:24:35 +0000 (12:24 +0000)
committerIan Jackson <ian.jackson@citrix.com>
Thu, 11 Jul 2019 23:05:33 +0000 (00:05 +0100)
If LIBEXEC_LIB is not on the default linker search path, the python
fsimage.so module fails to find libfsimage.so.

Add the relevant directory to the rpath explicitly.

(This situation occurs in the Debian package, where
--with-libexec-libdir is used to put each Xen version's libraries and
utilities in their own directory, to allow them to be coinstalled.)

Signed-off-by: Ian Jackson <ian.jackson@citrix.com>
tools/pygrub/Makefile
tools/pygrub/setup.py

index 3063c4998fe9aa7d031b324c958eceee508988d9..4cd1a95421a4d0167b6e69800761131d8c57334b 100644 (file)
@@ -10,12 +10,13 @@ INSTALL_LOG = build/installed_files.txt
 all: build
 .PHONY: build
 build:
-       CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build
+       CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" LIBEXEC_LIB=$(LIBEXEC_LIB) $(PYTHON) setup.py build
 
 .PHONY: install
 install: all
        $(INSTALL_DIR) $(DESTDIR)/$(bindir)
-       CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
+       CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" \
+               LIBEXEC_LIB=$(LIBEXEC_LIB) $(PYTHON) \
                setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
                 --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force
        set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
index 52dcf5737393c6aee10d9bfce0d69db856f96a40..b907525b84d11f5f965dd39542c3795ec408c066 100644 (file)
@@ -5,10 +5,15 @@ import sys
 
 extra_compile_args  = [ "-fno-strict-aliasing", "-Werror" ]
 
+extra_link_args = []
+try: extra_link_args += [ "-Wl,-rpath," + os.environ['LIBEXEC_LIB'] ]
+except KeyError: pass
+
 XEN_ROOT = "../.."
 
 fsimage = Extension("fsimage",
     extra_compile_args = extra_compile_args,
+    extra_link_args = extra_link_args,
     include_dirs = [ XEN_ROOT + "/tools/libfsimage/common/" ],
     library_dirs = [ XEN_ROOT + "/tools/libfsimage/common/" ],
     libraries = ["fsimage"],