mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-03 17:51:23 +00:00

Add trivial assembly programs which give themselves the appropriate permissions and then execute GCSPUSHM and GCSSTR, they will report errors by generating signals on the non-permitted instructions. Not using libc minimises the interaction with any policy set for the system but we skip on failure to get the permissions in case the system is locked down to make them inaccessible. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241005-arm64-gcs-test-flags-v1-1-03cb9786c5cd@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
31 lines
842 B
Makefile
31 lines
842 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (C) 2023 ARM Limited
|
|
#
|
|
# In order to avoid interaction with the toolchain and dynamic linker the
|
|
# portions of these tests that interact with the GCS are implemented using
|
|
# nolibc.
|
|
#
|
|
|
|
TEST_GEN_PROGS := basic-gcs libc-gcs gcs-locking gcs-stress gcspushm gcsstr
|
|
TEST_GEN_PROGS_EXTENDED := gcs-stress-thread
|
|
|
|
LDLIBS+=-lpthread
|
|
|
|
include ../../lib.mk
|
|
|
|
$(OUTPUT)/basic-gcs: basic-gcs.c
|
|
$(CC) -g -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
|
|
-static -include ../../../../include/nolibc/nolibc.h \
|
|
-I../../../../../usr/include \
|
|
-std=gnu99 -I../.. -g \
|
|
-ffreestanding -Wall $^ -o $@ -lgcc
|
|
|
|
$(OUTPUT)/gcs-stress-thread: gcs-stress-thread.S
|
|
$(CC) -nostdlib $^ -o $@
|
|
|
|
$(OUTPUT)/gcspushm: gcspushm.S
|
|
$(CC) -nostdlib $^ -o $@
|
|
|
|
$(OUTPUT)/gcsstr: gcsstr.S
|
|
$(CC) -nostdlib $^ -o $@
|