This series updates the brk LTP tests to use direct syscalls which makes
the compat tests pass on our musl-based distribution.
Add a simple sanity check for purecap that will fail if brk is not disabled.
Depends on merging the corresponding Linux patch disabling brk :
https://op-lists.linaro.org/archives/list/linux-morello@op-lists.linaro.org…
Teo Couprie Diaz (2):
syscalls/brk: use direct syscall
syscalls/brk: add a sanity check for purecap
testcases/kernel/syscalls/brk/brk01.c | 35 ++++++++++++++++++++++++---
testcases/kernel/syscalls/brk/brk02.c | 17 +++++++------
2 files changed, 41 insertions(+), 11 deletions(-)
--
2.25.1
This series adds a new epoll test that checks that passing a pointer
through epoll_data works for purecap apps (as well as compat64). (Note,
the kernel patches for enabling this have been merged.)
In addition, the second patch adds all epoll tests to the morello extended
runlist. This has a musl dependency - see the patch for details.
Kristina Martsenko (2):
syscalls/epoll_wait: Add test for pointer passing
runtest: Add epoll tests to extended PCuABI syscall list
runtest/morello_transitional_extended | 21 +++++
runtest/syscalls | 1 +
.../kernel/syscalls/epoll_wait/.gitignore | 1 +
.../kernel/syscalls/epoll_wait/epoll_wait05.c | 87 +++++++++++++++++++
4 files changed, 110 insertions(+)
create mode 100644 testcases/kernel/syscalls/epoll_wait/epoll_wait05.c
--
2.30.2
Provide new README file with project-specific details.
At the same time, rename the original LTP README, with the only reason
being to facilitate gitlab's feature (and others) of rendering README
as a project description and in this way to avoid any confusion with
the upstream LTP project.
Signed-off-by: Beata Michalska <beata.michalska(a)arm.com>
---
To see how it renders:
https://git.morello-project.org/Bea/morello-linux-ltp/-/tree/morello/dev
v3:
- small workaround for glitch in rendering bold sections which seems to
affect preceding line
- fixed warnings with title underline being too short
v2:
- review comments applied
- dropped duplicate link to Morello Linux kernel
README.md => README-LTP.md | 0
README.rst | 135 +++++++++++++++++++++++++++++++++++++
2 files changed, 135 insertions(+)
rename README.md => README-LTP.md (100%)
create mode 100644 README.rst
diff --git a/README.md b/README-LTP.md
similarity index 100%
rename from README.md
rename to README-LTP.md
diff --git a/README.rst b/README.rst
new file mode 100644
index 000000000..342901f4d
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,135 @@
+Linux Test Project for Morello
+==============================
+
+Morello LTP, project enrolled as a fork of the upstream `Linux Test Project
+<http://linux-test-project.github.io/>`_, aims at enabling LTP with architectural
+capabilities based on `CHERI <https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/>`_
+model (and as provided by `Morello <https://www.arm.com/architecture/cpu/morello>`_
+architecture). Independently developed from its original project, Morello LTP
+places its focus on verifying and validating capabilities support within the
+`(Morello) Linux kernel <https://git.morello-project.org/morello/kernel/linux>`_
+[#]_ and, at this point, targets *kernel syscalls testcases* only. Due to
+external limitations only static builds are supported.
+
+Discussions, contributions and reporting issues conveyed on the mailing list:
+https://op-lists.linaro.org/mailman3/lists/linux-morello-ltp.op-lists.linaro.org
+
+.. [#] Mainline-based fork of the Linux kernel for Morello supporting
+ pure-capability kernel-user ABI (PCuABI)
+ (see `Morello Linux ABI specifications <https://git.morello-project.org/morello/kernel/linux/-/wikis/home>`_)
+
+Building (cross-compiling) & running relevant tests (purecap mode)
+-------------------------------------------------------------------
+
+Dependencies/requirements: (additional to what's required to build base LTP):
+
+- Morello LLVM toolchain (version >= 1.4)
+
+ Sources: https://git.morello-project.org/morello/llvm-project
+
+ Binary releases: https://git.morello-project.org/morello/llvm-project-releases
+
+ - **morello/baremetal-release-1.4** + **morello/linux-aarch64-release-1.4** for Morello
+ purecap crt objects
+
+
+- Musl libc for Morello (version >= 1.4): https://git.morello-project.org/morello/musl-libc
+
+- Kernel uAPI header files: https://git.morello-project.org/morello/morello-linux-headers
+
+Building Musl:
+--------------
+
+Assumptions:
+
+.. code-block::
+
+ clang - Morello Clang (see Dependencies) configured for current environment
+
+.. code-block::
+
+
+ CC=clang ./configure \
+ --disable-shared \
+ --enable-morello \
+ --disable-libshim \
+ --target=aarch64-linux-musl_purecap \
+ --prefix=${INSTALL_PATH}
+
+
+.. code-block::
+
+ make
+ make install
+
+
+For more details see `Musl libc for Morello README <https://git.morello-project.org/morello/musl-libc/-/blob/morello/master/REA…>`_.
+
+Building LTP syscall testcases:
+-------------------------------
+Assumptions:
+
+.. code-block::
+
+ clang - Morello Clang (see Dependencies) configured for current environment
+ KHDR_DIR - kernel uAPI headers
+ MUSL - Musl build (see above)
+ MORELLO_CRT_OBJS - as per https://git.morello-project.org/morello/llvm-project-releases/-/tree/morell…
+ -> $(clang -print-resource-dir)/lib/aarch64-unknown-linux-musl_purecap
+
+
+.. code-block::
+
+ CLANG_RES_DIR=$(clang -print-resource-dir)
+
+ CFLAGS_COMMON="--target=aarch64-linux-gnu -integrated-as -g -static -nostdinc -pthread \
+ -isystem $KHDR_DIR/usr/include"
+
+ CFLAGS_PURECAP="$CFLAGS_COMMON -march=morello+c64 -mabi=purecap \
+ -isystem $CLANG_RES_DIR/include -isystem $MUSL/include -Wall"
+
+ LDFLAGS_COMMON="--target=aarch64-linux-gnu -fuse-ld=lld -static -nostdlib"
+
+ LDFLAGS_PURECAP="$LDFLAGS_COMMON $MUSL/lib/crt1.o $MUSL/lib/crti.o \
+ $MORELLO_CRT_OBJS/clang_rt.crtbegin.o $MORELLO_CRT_OBJS/libclang_rt.builtins.a \
+ $MORELLO_CRT_OBJS/clang_rt.crtend.o $MUSL/lib/crtn.o -L$MUSL/lib/ -lc -L$LTP_BUILD/lib"
+
+ export CC=clang
+ export HOST_CFLAGS="-O2 -Wall"
+ export HOST_LDFLAGS="-Wall"
+ export CONFIGURE_OPT_EXTRA="--prefix=/ --host=aarch64-linux-gnu --disable-metadata --without-numa"
+
+ MAKE_OPTS="TST_NEWER_64_SYSCALL=no TST_COMPAT_16_SYSCALL=no" \
+ TARGETS="pan testcases/kernel/syscalls" BUILD_DIR="$LTP_BUILD" \
+ CFLAGS="$CFLAGS_PURECAP" LDFLAGS="$LDFLAGS_PURECAP" \
+ ./build.sh -t cross -o out -ip "${OUTPUT_DIR}/opt/ltp"
+
+
+Running tests:
+--------------
+.. code-block::
+
+ runltp -f morello_transitional,morello_transitional_extended
+
+
+Developers playground
+---------------------
+
+First things first: read the docs - LTP rules/guidelines still apply (see section below).
+Plus there are number of resources linked throughout this document; when in doubt.
+If there is still something missing, `Morello LTP mailing list <https://op-lists.linaro.org/mailman3/lists/linux-morello-ltp.op-lists.linar…>`_
+is the right place to go.
+
+The above applies to all contributions and issue reports.
+Pull requests should give place to appropriate patch submission on the mailing list.
+
+Note on *next*
+~~~~~~~~~~~~~~~~
+While working on ``morello/next`` be mindful of the dependencies (see ``'Building'``
+section). Some testcases might require newer version of either (or all) of them.
+This should, preferably, be clearly stated for each testcase affected.
+
+
+Original README / Further reading
+---------------------------------
+Original Linux Test Project `README <README-LTP.md>`_ file.
--
2.37.3
Provide new README file with project-specific details.
At the same time, rename the original LTP README, with the only reason
being to facilitate gitlab's feature (and others) of rendering README
as a project description and in this way to avoid any confusion with
the upstream LTP project.
Signed-off-by: Beata Michalska <beata.michalska(a)arm.com>
---
Notes:
To see how it renders:
https://git.morello-project.org/Bea/morello-linux-ltp/-/tree/morello/dev
v2:
- review comments applied
- dropped duplicate link to Morello Linux kernel
README.md => README-LTP.md | 0
README.rst | 134 +++++++++++++++++++++++++++++++++++++
2 files changed, 134 insertions(+)
rename README.md => README-LTP.md (100%)
create mode 100644 README.rst
diff --git a/README.md b/README-LTP.md
similarity index 100%
rename from README.md
rename to README-LTP.md
diff --git a/README.rst b/README.rst
new file mode 100644
index 000000000..aaf2db34b
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,134 @@
+Linux Test Project for Morello
+==============================
+
+Morello LTP, project enrolled as a fork of the upstream `Linux Test Project
+<http://linux-test-project.github.io/>`_, aims at enabling LTP with architectural
+capabilities based on `CHERI <https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/>`_
+model (and as provided by `Morello <https://www.arm.com/architecture/cpu/morello>`_
+architecture). Independently developed from its original project, Morello LTP
+places its focus on verifying and validating capabilities support within the
+`(Morello) Linux kernel <https://git.morello-project.org/morello/kernel/linux>`_
+[#]_ and, at this point, targets *kernel syscalls testcases* only. Due to
+external limitations only static builds are supported.
+
+Discussions, contributions and reporting issues conveyed on the mailing list:
+https://op-lists.linaro.org/mailman3/lists/linux-morello-ltp.op-lists.linaro.org
+
+.. [#] Mainline-based fork of the Linux kernel for Morello supporting
+ pure-capability kernel-user ABI (PCuABI)
+ (see `Morello Linux ABI specifications <https://git.morello-project.org/morello/kernel/linux/-/wikis/home>`_)
+
+Building (cross-compiling) & running relevant tests (purecap mode)
+-----------------------------------------------------------------
+
+Dependencies/requirements: (additional to what's required to build base LTP):
+
+- Morello LLVM toolchain (version >= 1.4)
+
+ Sources: https://git.morello-project.org/morello/llvm-project
+
+ Binary releases: https://git.morello-project.org/morello/llvm-project-releases
+ - **morello/baremetal-release-1.4** + **morello/linux-aarch64-release-1.4** for Morello
+ purecap crt objects
+
+
+- Musl libc for Morello (version >= 1.4): https://git.morello-project.org/morello/musl-libc
+
+- Kernel uAPI header files: https://git.morello-project.org/morello/morello-linux-headers
+
+Building Musl:
+-------------
+
+Assumptions:
+
+.. code-block::
+
+ clang - Morello Clang (see Dependencies) configured for current environment
+
+.. code-block::
+
+
+ CC=clang ./configure \
+ --disable-shared \
+ --enable-morello \
+ --disable-libshim \
+ --target=aarch64-linux-musl_purecap \
+ --prefix=${INSTALL_PATH}
+
+
+.. code-block::
+
+ make
+ make install
+
+
+For more details see `Musl libc for Morello README <https://git.morello-project.org/morello/musl-libc/-/blob/morello/master/REA…>`_.
+
+Building LTP syscall testcases:
+------------------------------
+Assumptions:
+
+.. code-block::
+
+ clang - Morello Clang (see Dependencies) configured for current environment
+ KHDR_DIR - kernel uAPI headers
+ MUSL - Musl build (see above)
+ MORELLO_CRT_OBJS - as per https://git.morello-project.org/morello/llvm-project-releases/-/tree/morell…
+ -> $(clang -print-resource-dir)/lib/aarch64-unknown-linux-musl_purecap
+
+
+.. code-block::
+
+ CLANG_RES_DIR=$(clang -print-resource-dir)
+
+ CFLAGS_COMMON="--target=aarch64-linux-gnu -integrated-as -g -static -nostdinc -pthread \
+ -isystem $KHDR_DIR/usr/include"
+
+ CFLAGS_PURECAP="$CFLAGS_COMMON -march=morello+c64 -mabi=purecap \
+ -isystem $CLANG_RES_DIR/include -isystem $MUSL/include -Wall"
+
+ LDFLAGS_COMMON="--target=aarch64-linux-gnu -fuse-ld=lld -static -nostdlib"
+
+ LDFLAGS_PURECAP="$LDFLAGS_COMMON $MUSL/lib/crt1.o $MUSL/lib/crti.o \
+ $MORELLO_CRT_OBJS/clang_rt.crtbegin.o $MORELLO_CRT_OBJS/libclang_rt.builtins.a \
+ $MORELLO_CRT_OBJS/clang_rt.crtend.o $MUSL/lib/crtn.o -L$MUSL/lib/ -lc -L$LTP_BUILD/lib"
+
+ export CC=clang
+ export HOST_CFLAGS="-O2 -Wall"
+ export HOST_LDFLAGS="-Wall"
+ export CONFIGURE_OPT_EXTRA="--prefix=/ --host=aarch64-linux-gnu --disable-metadata --without-numa"
+
+ MAKE_OPTS="TST_NEWER_64_SYSCALL=no TST_COMPAT_16_SYSCALL=no" \
+ TARGETS="pan testcases/kernel/syscalls" BUILD_DIR="$LTP_BUILD" \
+ CFLAGS="$CFLAGS_PURECAP" LDFLAGS="$LDFLAGS_PURECAP" \
+ ./build.sh -t cross -o out -ip "${OUTPUT_DIR}/opt/ltp"
+
+
+Running tests:
+-------------
+.. code-block::
+
+ runltp -f morello_transitional,morello_transitional_extended
+
+
+Developers playground
+---------------------
+
+First things first: read the docs - LTP rules/guidelines still apply (see section below).
+Plus there are number of resources linked throughout this document; when in doubt.
+If there is still something missing, `Morello LTP mailing list <https://op-lists.linaro.org/mailman3/lists/linux-morello-ltp.op-lists.linar…>`_
+is the right place to go.
+
+The above applies to all contributions and issue reports.
+Pull requests should give place to appropriate patch submission on the mailing list.
+
+Note on *next*
+~~~~~~~~~~~~~
+While working on ``morello/next`` be mindful of the dependencies (see ``'Building'``
+section). Some testcases might require newer version of either (or all) of them.
+This should, preferably, be clearly stated for each testcase affected.
+
+
+Original README / Further reading
+---------------------------------
+Original Linux Test Project `README <README-LTP.md>`_ file.
--
2.37.3
Provide new README file with project-specific details.
At the same time, rename the original LTP README, with the only reason
being to facilitate gitlab's feature (and others) of rendering README
as a project description and, in this way, to avoid any confusion with
the upstream LTP project.
Signed-off-by: Beata Michalska <beata.michalska(a)arm.com>
---
Notes:
To see how it renders:
https://git.morello-project.org/Bea/morello-linux-ltp/-/tree/morello/dev
README.md => README-LTP.md | 0
README.rst | 129 +++++++++++++++++++++++++++++++++++++
2 files changed, 129 insertions(+)
rename README.md => README-LTP.md (100%)
create mode 100644 README.rst
diff --git a/README.md b/README-LTP.md
similarity index 100%
rename from README.md
rename to README-LTP.md
diff --git a/README.rst b/README.rst
new file mode 100644
index 000000000..8c42a0dab
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,129 @@
+Linux Test Project for Morello
+==============================
+
+Morello LTP, project enrolled as a fork of the upstream `Linux Test Project
+<http://linux-test-project.github.io/>`_, aims at enabling LTP with architectural
+capabilities based on `CHERI <https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/>`_
+model (and as provided by `Morello <https://developer.arm.com/documentation/ddi0606/latest>`_
+architecture). Independently developed from it's original project, Morello LTP
+places it's focus on verifying and validating capabilities support within the
+`(Morello) Linux kernel <https://git.morello-project.org/morello/kernel/linux>`_
+[#]_ and, at this point, targets *kernel syscalls testcases* only. Due to
+external limitations only static builds are supported.
+
+Discussions, contributions and reporting issues conveyed on the mailing list:
+https://op-lists.linaro.org/mailman3/lists/linux-morello-ltp.op-lists.linaro.org
+
+Linux kernel - Morello fork:
+https://git.morello-project.org/morello/kernel/linux
+
+.. [#] Mainline-based fork of the Linux kernel for Morello supporting
+ pure-capability kernel-user ABI (PCuABI)
+ (see `Morello Linux ABI specifications <https://git.morello-project.org/morello/kernel/linux/-/wikis/home>`_)
+
+Building (cross-compiling) & running relevant tests (purecap mode)
+-----------------------------------------------------------------
+
+Dependencies/requirements: (additional to what's required to build base LTP):
+
+- CHERI (Morello) LLVM toolchain (version >= 1.4)
+
+ Sources: https://git.morello-project.org/morello/llvm-project
+
+ Binary releases: https://git.morello-project.org/morello/llvm-project-releases
+ - *morello/baremetal-release-1.4* + *morello/linux-aarch64-release-1.4* for Morello
+ purecap crt objects
+
+
+- Musl libc for Morello (version >= 1.4): https://git.morello-project.org/morello/musl-libc
+
+- Kernel uAPI header files: https://git.morello-project.org/morello/musl-libc
+
+Building Musl:
+-------------
+
+.. code-block::
+
+
+ CC=clang ./configure \
+ --disable-shared \
+ --enable-morello \
+ --disable-libshim \
+ --target=aarch64-linux-musl_purecap \
+ --prefix=${INSTALL_PATH}
+
+
+.. code-block::
+
+ make
+ make install
+
+
+For more details see `Musl libc for Morello README <https://git.morello-project.org/morello/musl-libc/-/blob/morello/master/REA…>`_.
+
+Building LTP syscall testcases:
+------------------------------
+Assumptions:
+
+.. code-block::
+
+ KHDR_DIR - kernel uAPI headers
+ MUSL - Musl build (see above)
+ MORELLO_CRT_OBJS - as per https://git.morello-project.org/morello/llvm-project-releases/-/tree/morell…
+ -> $(clang -print-resource-dir)/lib/aarch64-unknown-linux-musl_purecap
+
+.. code-block::
+
+ CLANG_RES_DIR=$(clang -print-resource-dir)
+
+ CFLAGS_COMMON="--target=aarch64-linux-gnu -integrated-as -g -static -nostdinc -pthread \
+ -isystem $KHDR_DIR/usr/include"
+
+ CFLAGS_PURECAP="$CFLAGS_COMMON -march=morello+c64 -mabi=purecap \
+ -isystem $CLANG_RES_DIR/include -isystem $MUSL/include -Wall"
+
+ LDFLAGS_COMMON="--target=aarch64-linux-gnu -fuse-ld=lld -static -nostdlib"
+
+ LDFLAGS_PURECAP="$LDFLAGS_COMMON $MUSL/lib/crt1.o $MUSL/lib/crti.o \
+ $MORELLO_CRT_OBJS/clang_rt.crtbegin.o $MORELLO_CRT_OBJS/libclang_rt.builtins.a \
+ $MORELLO_CRT_OBJS/clang_rt.crtend.o $MUSL/lib/crtn.o -L$MUSL/lib/ -lc -L$LTP_BUILD/lib"
+
+ export CC=clang
+ export HOST_CFLAGS="-O2 -Wall"
+ export HOST_LDFLAGS="-Wall"
+ export CONFIGURE_OPT_EXTRA="--prefix=/ --host=aarch64-linux-gnu --disable-metadata --without-numa"
+
+ MAKE_OPTS="TST_NEWER_64_SYSCALL=no TST_COMPAT_16_SYSCALL=no" \
+ TARGETS="pan testcases/kernel/syscalls" BUILD_DIR="$LTP_BUILD" \
+ CFLAGS="$CFLAGS_PURECAP" LDFLAGS="$LDFLAGS_PURECAP" \
+ ./build.sh -t cross -o out -ip "${OUTPUT_DIR}/opt/ltp"
+
+
+Running tests:
+-------------
+.. code-block::
+
+ runltp -f morello_transitional,morello_transitional_extended
+
+
+Developers playground
+---------------------
+
+First things first: read the docs - LTP rules/guidelines still apply (see section below).
+Plus there are number of resources linked throughout this document; when in doubt.
+If there is still something missing, `Morello LTP mailing list <https://op-lists.linaro.org/mailman3/lists/linux-morello-ltp.op-lists.linar…>`_
+is the right place to go.
+
+The above applies to all contributions and issue reports.
+Pull requests should give place to appropriate patch submission on the mailing list.
+
+Note on *next*
+~~~~~~~~~~~~~
+While working on ``morello/next`` be mindful of the dependencies (see ``'Building'``
+section). Some testcases might require newer version of either (or all) of them.
+This should, preferably, be clearly stated for each testcase affected.
+
+
+Original README / Further reading
+---------------------------------
+Original Linux Test Project `README <README-LTP.md>`_ file.
--
2.37.3