From 4bbf434262e95da8e751841ffffb59fec8d15a96 Mon Sep 17 00:00:00 2001 From: Elliott Mitchell Date: Sun, 11 Oct 2020 18:11:39 -0700 Subject: [PATCH] tools/python: Pass linker to Python build process MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Unexpectedly the environment variable which needs to be passed is $LDSHARED and not $LD. Otherwise Python may find the build `ld` instead of the host `ld`. Replace $(LDFLAGS) with $(SHLIB_LDFLAGS) as Python needs shared objects it can load at runtime, not executables. This uses $(CC) instead of $(LD) since Python distutils appends $CFLAGS to $LDFLAGS which breaks many linkers. Signed-off-by: Elliott Mitchell Acked-by: Marek Marczykowski-Górecki (cherry picked from commit 17d192e0238d6c714e9f04593b59597b7090be38) [ Hans van Kranenburg ] Fixed cherry-pick conflict because we have LIBEXEC_LIB=$(LIBEXEC_LIB) in between in the same lines. The line wrap mess makes it a bit hard to follow. Gbp-Pq: Name 0028-tools-python-Pass-linker-to-Python-build-process.patch --- tools/pygrub/Makefile | 11 ++++++----- tools/python/Makefile | 9 +++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile index 4cd1a95421..2950f375f1 100644 --- a/tools/pygrub/Makefile +++ b/tools/pygrub/Makefile @@ -3,21 +3,22 @@ XEN_ROOT = $(CURDIR)/../.. include $(XEN_ROOT)/tools/Rules.mk PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) -PY_LDFLAGS = $(LDFLAGS) $(APPEND_LDFLAGS) +PY_LDFLAGS = $(SHLIB_LDFLAGS) $(APPEND_LDFLAGS) INSTALL_LOG = build/installed_files.txt .PHONY: all all: build .PHONY: build build: - CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" LIBEXEC_LIB=$(LIBEXEC_LIB) $(PYTHON) setup.py build + CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" 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)" \ - LIBEXEC_LIB=$(LIBEXEC_LIB) $(PYTHON) \ - setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \ + CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" \ + 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 \ "`readlink -f $(DESTDIR)/$(bindir)`" != \ diff --git a/tools/python/Makefile b/tools/python/Makefile index 8d22c03676..b675f5b4de 100644 --- a/tools/python/Makefile +++ b/tools/python/Makefile @@ -5,19 +5,20 @@ include $(XEN_ROOT)/tools/Rules.mk all: build PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) -PY_LDFLAGS = $(LDFLAGS) $(APPEND_LDFLAGS) +PY_LDFLAGS = $(SHLIB_LDFLAGS) $(APPEND_LDFLAGS) INSTALL_LOG = build/installed_files.txt .PHONY: build build: - CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build + CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build .PHONY: install install: $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) - CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \ - setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \ + CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDSHARED="$(CC)" \ + LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py install \ + --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \ --root="$(DESTDIR)" --force $(INSTALL_PYTHON_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN) -- 2.30.2