btrfs-tools: Pass DEBUG_MAP_PREFIX flags to Python

The DEBUG_MAP_PREFIX flags need to be passed when building the Python
library to prevent these non-reproducible paths from being encoded into
the library. The patch that does this was accepted upstream and
supersedes part of a previous patch that passed LDFLAGS to the Python
library in favor of passing EXTRA_PYTHON_LDFLAGS, so the patch and
recipe has been updated to reflect this.

(From OE-Core rev: 04bb44c1b97c3183739e4836588a93dc34af8806)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt
2019-05-29 21:41:09 -05:00
committed by Richard Purdie
parent 570938d845
commit 41bd3fee9d
3 changed files with 53 additions and 15 deletions

View File

@@ -1,4 +1,4 @@
From eecc48ecad359cd4fab650ce49cfe57e99d1859d Mon Sep 17 00:00:00 2001
From c384fa875c5128009ac8b6ba11a54a6bd4de575a Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 17 May 2018 12:21:31 +0300
Subject: [PATCH] Add LDFLAGS when building libbtrfsutil.so and python
@@ -8,14 +8,14 @@ Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 10f0e3b0..1697794c 100644
index e25e256f..6df00186 100644
--- a/Makefile
+++ b/Makefile
@@ -402,7 +402,7 @@ libbtrfsutil/%.o: libbtrfsutil/%.c
@@ -424,7 +424,7 @@ libbtrfsutil/%.o: libbtrfsutil/%.c
libbtrfsutil.so.$(libbtrfsutil_version): $(libbtrfsutil_objects)
@echo " [LD] $@"
@@ -24,12 +24,3 @@ index 10f0e3b0..1697794c 100644
-shared -Wl,-soname,libbtrfsutil.so.$(libbtrfsutil_major) -o $@
libbtrfsutil.a: $(libbtrfsutil_objects)
@@ -417,7 +417,7 @@ ifeq ($(PYTHON_BINDINGS),1)
libbtrfsutil_python: libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so libbtrfsutil/btrfsutil.h
@echo " [PY] libbtrfsutil"
$(Q)cd libbtrfsutil/python; \
- CFLAGS= LDFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
+ CFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
.PHONY: libbtrfsutil_python
endif

View File

@@ -0,0 +1,43 @@
From 730fe2ee2fb9e08cbe885f370afe83fecb18d048 Mon Sep 17 00:00:00 2001
From: Joshua Watt <JPEWhacker@gmail.com>
Date: Sun, 26 May 2019 21:26:04 -0500
Subject: [PATCH] btrfs-progs: Pass CFLAGS and LDFLAGS to Python
Adds Make variables EXTRA_PYTHON_CFLAGS and EXTRA_PYTHON_LDFLAGS which
can be used to pass CFLAGS and LDFLAGS respectively when building the
Python library.
This is required to support reproducible builds, as there are often
compiler and linker flags that must be passed in order to generate
reproducible output (e.g. -fdebug-prefix-map)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Upstream-Status: Accepted [https://github.com/kdave/btrfs-progs/pull/176]
---
Makefile | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 505bd9c1..814767a8 100644
--- a/Makefile
+++ b/Makefile
@@ -24,6 +24,10 @@
# DEBUG_CFLAGS additional compiler flags for debugging build
# EXTRA_CFLAGS additional compiler flags
# EXTRA_LDFLAGS additional linker flags
+# EXTRA_PYTHON_CFLAGS additional compiler flags to pass when building Python
+# library
+# EXTRA_PYTHON_LDFLAGS additional linker flags to pass when building Python
+# library
#
# Testing-specific options (see also tests/README.md):
# TEST=GLOB run test(s) from directories matching GLOB
@@ -439,7 +443,7 @@ ifeq ($(PYTHON_BINDINGS),1)
libbtrfsutil_python: libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so libbtrfsutil/btrfsutil.h
@echo " [PY] libbtrfsutil"
$(Q)cd libbtrfsutil/python; \
- CFLAGS= LDFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
+ CFLAGS="$(EXTRA_PYTHON_CFLAGS)" LDFLAGS="$(EXTRA_PYTHON_LDFLAGS)" $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
.PHONY: libbtrfsutil_python
endif

View File

@@ -18,6 +18,7 @@ SRCREV = "43013422dbce4bcc9ed77cfe65b294caa0985ec8"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
file://0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch \
file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
file://0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch \
"
inherit autotools-brokensep pkgconfig manpages distutils3-base
@@ -27,7 +28,10 @@ CLEANBROKEN = "1"
PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
EXTRA_OECONF = " --disable-zstd"
EXTRA_OECONF_append_libc-musl = " --disable-backtrace "
EXTRA_OEMAKE = "V=1"
EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}"
EXTRA_PYTHON_CFLAGS_class-native = ""
EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}"
EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'"
do_configure_prepend() {
# Upstream doesn't ship this and autoreconf won't install it as automake isn't used.