summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/lib/oeqa/selftest/cases/reproducible.py2
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/determinism.patch64
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb7
3 files changed, 71 insertions, 2 deletions
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
index bd260a4139..9c6f2e89d9 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -34,8 +34,6 @@ exclude_packages = [
34 'go-runtime', 34 'go-runtime',
35 'go_', 35 'go_',
36 'go-', 36 'go-',
37 'lttng-tools-dbg',
38 'lttng-tools-ptest',
39 'ltp', 37 'ltp',
40 'meson', 38 'meson',
41 'ovmf-shell-efi', 39 'ovmf-shell-efi',
diff --git a/meta/recipes-kernel/lttng/lttng-tools/determinism.patch b/meta/recipes-kernel/lttng/lttng-tools/determinism.patch
new file mode 100644
index 0000000000..b2ab880bd6
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-tools/determinism.patch
@@ -0,0 +1,64 @@
1This is a bit ugly. Specifing abs_builddir as an RPATH is plain wrong when
2cross compiling. Sadly, removing the rpath makes libtool/automake do
3weird things and breaks the build as shared libs are no longer generated.
4
5We already try and delete the RPATH at do_install with chrpath however
6that does leave the path in the string table so it doesn't help us
7with reproducibility.
8
9Instead, hack in a bogus but harmless path, then delete it later in
10our do_install. Ultimately we may want to pass a specific path to use
11to configure if we really do need to set an RPATH at all. It is unclear
12to me whether the tests need that or not.
13
14Fixes reproducibility issues for lttng-tools.
15
16Upstream-Status: Pending [needs discussion with upstream about the correct solution]
17RP 2021/3/1
18
19Index: lttng-tools-2.12.2/tests/regression/ust/ust-dl/Makefile.am
20===================================================================
21--- lttng-tools-2.12.2.orig/tests/regression/ust/ust-dl/Makefile.am
22+++ lttng-tools-2.12.2/tests/regression/ust/ust-dl/Makefile.am
23@@ -27,16 +27,16 @@ noinst_LTLIBRARIES = libzzz.la libbar.la
24
25 libzzz_la_SOURCES = libzzz.c libzzz.h
26 libzzz_la_LDFLAGS = -module -shared -avoid-version \
27- -rpath $(abs_builddir)
28+ -rpath /usr/lib
29
30 libbar_la_SOURCES = libbar.c libbar.h
31 libbar_la_LDFLAGS = -module -shared -avoid-version \
32- -rpath $(abs_builddir)
33+ -rpath /usr/lib
34 libbar_la_LIBADD = libzzz.la
35
36 libfoo_la_SOURCES = libfoo.c libfoo.h
37 libfoo_la_LDFLAGS = -module -shared -avoid-version \
38- -rpath $(abs_builddir)
39+ -rpath /usr/lib
40 libfoo_la_LIBADD = libbar.la
41
42 CLEANFILES = libfoo.so libfoo.so.debug libbar.so libbar.so.debug \
43@@ -44,7 +44,7 @@ CLEANFILES = libfoo.so libfoo.so.debug l
44
45 libtp_la_SOURCES = libbar-tp.h libbar-tp.c libfoo-tp.h libfoo-tp.c \
46 libzzz-tp.h libzzz-tp.c
47-libtp_la_LDFLAGS = -module -shared -rpath $(abs_builddir)
48+libtp_la_LDFLAGS = -module -shared -rpath /usr/lib
49
50 # Extract debug symbols
51 libfoo.so.debug: libfoo.la
52Index: lttng-tools-2.12.2/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am
53===================================================================
54--- lttng-tools-2.12.2.orig/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am
55+++ lttng-tools-2.12.2/tests/utils/testapp/userspace-probe-elf-binary/Makefile.am
56@@ -5,7 +5,7 @@ AM_CFLAGS += -O0
57 noinst_LTLIBRARIES = libfoo.la
58
59 libfoo_la_SOURCES = foo.c foo.h
60-libfoo_la_LDFLAGS = -shared -module -avoid-version -rpath $(abs_builddir)/.libs/
61+libfoo_la_LDFLAGS = -shared -module -avoid-version -rpath /usr/lib
62
63 noinst_PROGRAMS = userspace-probe-elf-binary
64 userspace_probe_elf_binary_SOURCES = userspace-probe-elf-binary.c
diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb b/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
index 0787e04d19..1f509caeb4 100644
--- a/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
+++ b/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
@@ -35,6 +35,7 @@ SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
35 file://run-ptest \ 35 file://run-ptest \
36 file://lttng-sessiond.service \ 36 file://lttng-sessiond.service \
37 file://0001-tests-regression-disable-the-tools-live-tests.patch \ 37 file://0001-tests-regression-disable-the-tools-live-tests.patch \
38 file://determinism.patch \
38 " 39 "
39 40
40SRC_URI[sha256sum] = "9ed9161795ff023b076f9f95afaa4f1f822ec42495c0fa04c586ab8fa74e84f1" 41SRC_URI[sha256sum] = "9ed9161795ff023b076f9f95afaa4f1f822ec42495c0fa04c586ab8fa74e84f1"
@@ -113,6 +114,8 @@ do_install_ptest () {
113 done 114 done
114 115
115 chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary 116 chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary
117 chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libbar.so
118 chrpath --delete ${D}${PTEST_PATH}/tests/regression/ust/ust-dl/libfoo.so
116 119
117 # 120 #
118 # Use the versioned libs of liblttng-ust-dl. 121 # Use the versioned libs of liblttng-ust-dl.
@@ -150,6 +153,10 @@ do_install_ptest () {
150 -e 's#\(^test.*LDADD.=\)#disable\1#g' \ 153 -e 's#\(^test.*LDADD.=\)#disable\1#g' \
151 -i ${D}${PTEST_PATH}/tests/unit/Makefile 154 -i ${D}${PTEST_PATH}/tests/unit/Makefile
152 155
156 # Fix hardcoded build path
157 sed -e 's#TESTAPP_PATH=.*/tests/regression/#TESTAPP_PATH=${PTEST_PATH}/tests/regression/#' \
158 -i ${D}${PTEST_PATH}/tests/regression/ust/python-logging/test_python_logging
159
153 # Substitute links to installed binaries. 160 # Substitute links to installed binaries.
154 for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do 161 for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do
155 exedir="${D}${PTEST_PATH}/src/bin/${prog}" 162 exedir="${D}${PTEST_PATH}/src/bin/${prog}"