diff options
| -rw-r--r-- | meta/lib/oeqa/selftest/cases/reproducible.py | 2 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-tools/determinism.patch | 64 | ||||
| -rw-r--r-- | meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb | 7 |
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 @@ | |||
| 1 | This is a bit ugly. Specifing abs_builddir as an RPATH is plain wrong when | ||
| 2 | cross compiling. Sadly, removing the rpath makes libtool/automake do | ||
| 3 | weird things and breaks the build as shared libs are no longer generated. | ||
| 4 | |||
| 5 | We already try and delete the RPATH at do_install with chrpath however | ||
| 6 | that does leave the path in the string table so it doesn't help us | ||
| 7 | with reproducibility. | ||
| 8 | |||
| 9 | Instead, hack in a bogus but harmless path, then delete it later in | ||
| 10 | our do_install. Ultimately we may want to pass a specific path to use | ||
| 11 | to configure if we really do need to set an RPATH at all. It is unclear | ||
| 12 | to me whether the tests need that or not. | ||
| 13 | |||
| 14 | Fixes reproducibility issues for lttng-tools. | ||
| 15 | |||
| 16 | Upstream-Status: Pending [needs discussion with upstream about the correct solution] | ||
| 17 | RP 2021/3/1 | ||
| 18 | |||
| 19 | Index: 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 | ||
| 52 | Index: 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 | ||
| 40 | SRC_URI[sha256sum] = "9ed9161795ff023b076f9f95afaa4f1f822ec42495c0fa04c586ab8fa74e84f1" | 41 | SRC_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}" |
