diff options
Diffstat (limited to 'poky/meta/recipes-extended/ltp')
-rw-r--r-- | poky/meta/recipes-extended/ltp/ltp/determinism.patch | 43 | ||||
-rw-r--r-- | poky/meta/recipes-extended/ltp/ltp_20210121.bb | 13 |
2 files changed, 56 insertions, 0 deletions
diff --git a/poky/meta/recipes-extended/ltp/ltp/determinism.patch b/poky/meta/recipes-extended/ltp/ltp/determinism.patch new file mode 100644 index 000000000..76d40721b --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/determinism.patch @@ -0,0 +1,43 @@ +open_posix_testsuite/generate-makefiles.sh: Fix determinism issue + +Currently the list of tests is generated by the order of the files found +within the directories. This results in differences in the run.sh and +Makefiles. Within Yocto Project this results in differing target +test packages. The fix is simple, just sort the output from locate-test. + +mk/lib.mk: Sort wildcard expansion for determinism + +The order of the objects linked into libltp.a varies depending on the +order of the files found on disk. This results in most ltp binaries +differing depending on that order too. + +Sort the wildcard expansion of *.c which leads to reproducible binaries. + +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> +Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2021-March/021272.html http://lists.linux.it/pipermail/ltp/2021-March/021273.html] + +Index: git/testcases/open_posix_testsuite/scripts/generate-makefiles.sh +=================================================================== +--- git.orig/testcases/open_posix_testsuite/scripts/generate-makefiles.sh ++++ git/testcases/open_posix_testsuite/scripts/generate-makefiles.sh +@@ -24,7 +24,7 @@ generate_locate_test_makefile() { + + echo "Generating $maketype Makefiles" + +- locate-test --$maketype | sed -e 's,^./,,g' > make-gen.$maketype ++ locate-test --$maketype | sed -e 's,^./,,g' | sort > make-gen.$maketype + + generate_makefiles make-gen.$maketype $* + +Index: git/include/mk/lib.mk +=================================================================== +--- git.orig/include/mk/lib.mk ++++ git/include/mk/lib.mk +@@ -50,6 +50,7 @@ endif + MAKE_TARGETS += $(LIB) + + LIBSRCS ?= $(wildcard $(abs_srcdir)/*.c) ++LIBSRCS := $(sort $(LIBSRCS)) + LIBSRCS := $(abspath $(LIBSRCS)) + LIBSRCS := $(subst $(abs_srcdir)/,,$(wildcard $(LIBSRCS))) + LIBSRCS := $(filter-out $(FILTER_OUT_LIBSRCS),$(LIBSRCS)) diff --git a/poky/meta/recipes-extended/ltp/ltp_20210121.bb b/poky/meta/recipes-extended/ltp/ltp_20210121.bb index c541f9859..593f07087 100644 --- a/poky/meta/recipes-extended/ltp/ltp_20210121.bb +++ b/poky/meta/recipes-extended/ltp/ltp_20210121.bb @@ -29,11 +29,16 @@ CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__" CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" SRCREV = "4d005621edd109d119627eb9210b224a63bf22cb" +# remove at next version upgrade or when output changes +PR = "r1" +HASHEQUIV_HASH_VERSION .= ".1" + SRC_URI = "git://github.com/linux-test-project/ltp.git \ file://0001-build-Add-option-to-select-libc-implementation.patch \ file://0007-Fix-test_proc_kill-hanging.patch \ file://0001-Add-more-musl-exclusions.patch \ file://0001-Remove-OOM-tests-from-runtest-mm.patch \ + file://determinism.patch \ " S = "${WORKDIR}/git" @@ -51,6 +56,14 @@ EXTRA_OECONF = " --with-realtime-testsuite --with-open-posix-testsuite " # ltp network/rpc test cases ftbfs when libtirpc is found EXTRA_OECONF += " --without-tirpc " +do_compile_prepend() { + # Reported at http://lists.linux.it/pipermail/ltp/2021-March/021274.html + # Avoid a race over construction of libswapon.o which is built by swapon and swapoff + # but the object differs depending upon which one built it + # ("../swapon/libswapon.c" vs "libswapon.c" references) + make -C ${B}/testcases/kernel/syscalls/swapon/ +} + do_install(){ install -d ${D}${prefix}/ oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install |