xref: /linux/tools/testing/selftests/arm64/gcs/Makefile (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
13d37d430SMark Brown# SPDX-License-Identifier: GPL-2.0
23d37d430SMark Brown# Copyright (C) 2023 ARM Limited
33d37d430SMark Brown#
43d37d430SMark Brown# In order to avoid interaction with the toolchain and dynamic linker the
53d37d430SMark Brown# portions of these tests that interact with the GCS are implemented using
63d37d430SMark Brown# nolibc.
73d37d430SMark Brown#
83d37d430SMark Brown
9*48f8d9ceSMark BrownTEST_GEN_PROGS := basic-gcs libc-gcs gcs-locking gcs-stress gcspushm gcsstr
1005e6cfffSMark BrownTEST_GEN_PROGS_EXTENDED := gcs-stress-thread
11a505a52bSMark Brown
12a505a52bSMark BrownLDLIBS+=-lpthread
133d37d430SMark Brown
143d37d430SMark Browninclude ../../lib.mk
153d37d430SMark Brown
163d37d430SMark Brown$(OUTPUT)/basic-gcs: basic-gcs.c
173d37d430SMark Brown	$(CC) -g -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
183d37d430SMark Brown		-static -include ../../../../include/nolibc/nolibc.h \
193d37d430SMark Brown		-I../../../../../usr/include \
203d37d430SMark Brown		-std=gnu99 -I../.. -g \
213d37d430SMark Brown		-ffreestanding -Wall $^ -o $@ -lgcc
2205e6cfffSMark Brown
2305e6cfffSMark Brown$(OUTPUT)/gcs-stress-thread: gcs-stress-thread.S
2405e6cfffSMark Brown	$(CC) -nostdlib $^ -o $@
25*48f8d9ceSMark Brown
26*48f8d9ceSMark Brown$(OUTPUT)/gcspushm: gcspushm.S
27*48f8d9ceSMark Brown	$(CC) -nostdlib $^ -o $@
28*48f8d9ceSMark Brown
29*48f8d9ceSMark Brown$(OUTPUT)/gcsstr: gcsstr.S
30*48f8d9ceSMark Brown	$(CC) -nostdlib $^ -o $@
31