xref: /linux/tools/testing/selftests/exec/Makefile (revision 21266b8df5224c4f677acf9f353eecc9094731f0)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2c9b26b81SDavid DrysdaleCFLAGS = -Wall
34e7301e6SAlexey DobriyanCFLAGS += -Wno-nonnull
4b083cc81SMickaël SalaünCFLAGS += $(KHDR_INCLUDES)
5b083cc81SMickaël Salaün
6b083cc81SMickaël SalaünLDLIBS += -lcap
7c9b26b81SDavid Drysdale
8b57a2907SKees CookALIGNS := 0x1000 0x200000 0x1000000
9b57a2907SKees CookALIGN_PIES        := $(patsubst %,load_address.%,$(ALIGNS))
10b57a2907SKees CookALIGN_STATIC_PIES := $(patsubst %,load_address.static.%,$(ALIGNS))
113545deffSKees CookALIGNMENT_TESTS   := $(ALIGN_PIES) $(ALIGN_STATIC_PIES)
12b57a2907SKees Cook
13*2a69962bSMickaël SalaünTEST_PROGS := binfmt_script.py check-exec-tests.sh
14b57a2907SKees CookTEST_GEN_PROGS := execveat non-regular $(ALIGNMENT_TESTS)
15*2a69962bSMickaël SalaünTEST_GEN_PROGS_EXTENDED := false inc set-exec script-exec.inc script-noexec.inc
16908a26e1SMuhammad Usama AnjumTEST_GEN_FILES := execveat.symlink execveat.denatured script subdir
1780d443e8Sbamvor.zhangjian@huawei.com# Makefile is a run-time dependency, since it's accessed by the execveat test
1880d443e8Sbamvor.zhangjian@huawei.comTEST_FILES := Makefile
1980d443e8Sbamvor.zhangjian@huawei.com
204e7301e6SAlexey DobriyanTEST_GEN_PROGS += recursion-depth
219132c394SKees CookTEST_GEN_PROGS += null-argv
22b083cc81SMickaël SalaünTEST_GEN_PROGS += check-exec
234e7301e6SAlexey Dobriyan
240f71241aSKees CookEXTRA_CLEAN := $(OUTPUT)/subdir.moved $(OUTPUT)/execveat.moved $(OUTPUT)/xxxxx*	\
250f71241aSKees Cook	       $(OUTPUT)/S_I*.test
2680d443e8Sbamvor.zhangjian@huawei.com
2780d443e8Sbamvor.zhangjian@huawei.cominclude ../lib.mk
2880d443e8Sbamvor.zhangjian@huawei.com
29*2a69962bSMickaël SalaünCHECK_EXEC_SAMPLES := $(top_srcdir)/samples/check-exec
30*2a69962bSMickaël Salaün
31a8ba798bSbamvor.zhangjian@huawei.com$(OUTPUT)/subdir:
32c9b26b81SDavid Drysdale	mkdir -p $@
33472874cfSKees Cook$(OUTPUT)/script: Makefile
34472874cfSKees Cook	echo '#!/bin/bash' > $@
35c9b26b81SDavid Drysdale	echo 'exit $$*' >> $@
36c9b26b81SDavid Drysdale	chmod +x $@
37a8ba798bSbamvor.zhangjian@huawei.com$(OUTPUT)/execveat.symlink: $(OUTPUT)/execveat
38a8ba798bSbamvor.zhangjian@huawei.com	cd $(OUTPUT) && ln -s -f $(shell basename $<) $(shell basename $@)
39a8ba798bSbamvor.zhangjian@huawei.com$(OUTPUT)/execveat.denatured: $(OUTPUT)/execveat
40c9b26b81SDavid Drysdale	cp $< $@
41c9b26b81SDavid Drysdale	chmod -x $@
42b57a2907SKees Cook$(OUTPUT)/load_address.0x%: load_address.c
43b57a2907SKees Cook	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=$(lastword $(subst ., ,$@)) \
44b57a2907SKees Cook		-fPIE -pie $< -o $@
45b57a2907SKees Cook$(OUTPUT)/load_address.static.0x%: load_address.c
46b57a2907SKees Cook	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=$(lastword $(subst ., ,$@)) \
47b57a2907SKees Cook		-fPIE -static-pie $< -o $@
48b083cc81SMickaël Salaün$(OUTPUT)/false: false.c
49b083cc81SMickaël Salaün	$(CC) $(CFLAGS) $(LDFLAGS) -static $< -o $@
50*2a69962bSMickaël Salaün$(OUTPUT)/inc: $(CHECK_EXEC_SAMPLES)/inc.c
51*2a69962bSMickaël Salaün	$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
52*2a69962bSMickaël Salaün$(OUTPUT)/set-exec: $(CHECK_EXEC_SAMPLES)/set-exec.c
53*2a69962bSMickaël Salaün	$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
54*2a69962bSMickaël Salaün$(OUTPUT)/script-exec.inc: $(CHECK_EXEC_SAMPLES)/script-exec.inc
55*2a69962bSMickaël Salaün	cp $< $@
56*2a69962bSMickaël Salaün$(OUTPUT)/script-noexec.inc: $(CHECK_EXEC_SAMPLES)/script-noexec.inc
57*2a69962bSMickaël Salaün	cp $< $@
58