xref: /linux/tools/testing/selftests/arm64/gcs/Makefile (revision cdd30ebb1b9f36159d66f088b61aee264e649d7a)
1# SPDX-License-Identifier: GPL-2.0
2# Copyright (C) 2023 ARM Limited
3#
4# In order to avoid interaction with the toolchain and dynamic linker the
5# portions of these tests that interact with the GCS are implemented using
6# nolibc.
7#
8
9TEST_GEN_PROGS := basic-gcs libc-gcs gcs-locking gcs-stress gcspushm gcsstr
10TEST_GEN_PROGS_EXTENDED := gcs-stress-thread
11
12LDLIBS+=-lpthread
13
14include ../../lib.mk
15
16$(OUTPUT)/basic-gcs: basic-gcs.c
17	$(CC) -g -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
18		-static -include ../../../../include/nolibc/nolibc.h \
19		-I../../../../../usr/include \
20		-std=gnu99 -I../.. -g \
21		-ffreestanding -Wall $^ -o $@ -lgcc
22
23$(OUTPUT)/gcs-stress-thread: gcs-stress-thread.S
24	$(CC) -nostdlib $^ -o $@
25
26$(OUTPUT)/gcspushm: gcspushm.S
27	$(CC) -nostdlib $^ -o $@
28
29$(OUTPUT)/gcsstr: gcsstr.S
30	$(CC) -nostdlib $^ -o $@
31