diff --git a/conf/layer.conf b/conf/layer.conf index cf6cd74..40ead0c 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -55,3 +55,4 @@ INSANE_SKIP_append_pn-gdb_riscv32 = " textrel" INSANE_SKIP_append_pn-capnproto_riscv32 = " textrel" INSANE_SKIP_append_pn-rdma-core_riscv32 = " textrel" INSANE_SKIP_append_pn-util-linux_riscv32 = " textrel" +INSANE_SKIP_append_pn-ltp_riscv32 = " textrel" diff --git a/recipes-extended/ltp/ltp/0001-Define-__NR_futex-to-be-__NR_futex_time64-on-riscv32.patch b/recipes-extended/ltp/ltp/0001-Define-__NR_futex-to-be-__NR_futex_time64-on-riscv32.patch new file mode 100644 index 0000000..404261d --- /dev/null +++ b/recipes-extended/ltp/ltp/0001-Define-__NR_futex-to-be-__NR_futex_time64-on-riscv32.patch @@ -0,0 +1,66 @@ +From 39c985e3f03c9c7d361c2fa3dcbe8104a868d959 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2020 20:30:56 -0700 +Subject: [PATCH] Define __NR_futex to be __NR_futex_time64 on riscv32 + +RISCV glibc has decided to use 64bit time_t from get go unlike +other 32bit architecture therefore aliasing __NR_futex to +__NR_futex_time64 helps avoid the below errors on rv32 + +tst_checkpoint.c:99:17: error: use of undeclared identifier 'SYS_futex' + +Signed-off-by: Khem Raj +--- + lib/tst_checkpoint.c | 4 ++++ + testcases/kernel/syscalls/clone/clone08.c | 4 ++++ + testcases/kernel/syscalls/futex/futextest.h | 4 ++++ + 3 files changed, 12 insertions(+) + +diff --git a/lib/tst_checkpoint.c b/lib/tst_checkpoint.c +index 5e5b11496c..0388e9db2f 100644 +--- a/lib/tst_checkpoint.c ++++ b/lib/tst_checkpoint.c +@@ -21,6 +21,10 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + ++#if !defined(__NR_futex) && defined(__riscv) && __riscv_xlen == 32 ++# define __NR_futex __NR_futex_time64 ++#endif ++ + #include + #include + #include +diff --git a/testcases/kernel/syscalls/clone/clone08.c b/testcases/kernel/syscalls/clone/clone08.c +index aace308068..85a2bd9246 100644 +--- a/testcases/kernel/syscalls/clone/clone08.c ++++ b/testcases/kernel/syscalls/clone/clone08.c +@@ -5,6 +5,10 @@ + * Author: Zeng Linggang + */ + ++#if !defined(__NR_futex) && defined(__riscv) && __riscv_xlen == 32 ++# define __NR_futex __NR_futex_time64 ++#endif ++ + #define _GNU_SOURCE + #include + #include +diff --git a/testcases/kernel/syscalls/futex/futextest.h b/testcases/kernel/syscalls/futex/futextest.h +index 5754d36dae..59d877e30f 100644 +--- a/testcases/kernel/syscalls/futex/futextest.h ++++ b/testcases/kernel/syscalls/futex/futextest.h +@@ -34,6 +34,10 @@ + #ifndef _FUTEXTEST_H + #define _FUTEXTEST_H + ++#if !defined(__NR_futex) && defined(__riscv) && __riscv_xlen == 32 ++# define __NR_futex __NR_futex_time64 ++#endif ++ + #include + #include + #include +-- +2.26.2 + diff --git a/recipes-extended/ltp/ltp_%.bbappend b/recipes-extended/ltp/ltp_%.bbappend new file mode 100644 index 0000000..c7166f3 --- /dev/null +++ b/recipes-extended/ltp/ltp_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_riscv32 = " file://0001-Define-__NR_futex-to-be-__NR_futex_time64-on-riscv32.patch"