xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/exec/Makefile (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
2*053f45beSAndroid Build Coastguard WorkerCFLAGS = -Wall
3*053f45beSAndroid Build Coastguard WorkerCFLAGS += -Wno-nonnull
4*053f45beSAndroid Build Coastguard WorkerCFLAGS += -D_GNU_SOURCE
5*053f45beSAndroid Build Coastguard Worker
6*053f45beSAndroid Build Coastguard WorkerTEST_PROGS := binfmt_script.py
7*053f45beSAndroid Build Coastguard WorkerTEST_GEN_PROGS := execveat load_address_4096 load_address_2097152 load_address_16777216 non-regular
8*053f45beSAndroid Build Coastguard WorkerTEST_GEN_FILES := execveat.symlink execveat.denatured script subdir
9*053f45beSAndroid Build Coastguard Worker# Makefile is a run-time dependency, since it's accessed by the execveat test
10*053f45beSAndroid Build Coastguard WorkerTEST_FILES := Makefile
11*053f45beSAndroid Build Coastguard Worker
12*053f45beSAndroid Build Coastguard WorkerTEST_GEN_PROGS += recursion-depth
13*053f45beSAndroid Build Coastguard WorkerTEST_GEN_PROGS += null-argv
14*053f45beSAndroid Build Coastguard Worker
15*053f45beSAndroid Build Coastguard WorkerEXTRA_CLEAN := $(OUTPUT)/subdir.moved $(OUTPUT)/execveat.moved $(OUTPUT)/xxxxx*	\
16*053f45beSAndroid Build Coastguard Worker	       $(OUTPUT)/S_I*.test
17*053f45beSAndroid Build Coastguard Worker
18*053f45beSAndroid Build Coastguard Workerinclude ../lib.mk
19*053f45beSAndroid Build Coastguard Worker
20*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/subdir:
21*053f45beSAndroid Build Coastguard Worker	mkdir -p $@
22*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/script:
23*053f45beSAndroid Build Coastguard Worker	echo '#!/bin/sh' > $@
24*053f45beSAndroid Build Coastguard Worker	echo 'exit $$*' >> $@
25*053f45beSAndroid Build Coastguard Worker	chmod +x $@
26*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/execveat.symlink: $(OUTPUT)/execveat
27*053f45beSAndroid Build Coastguard Worker	cd $(OUTPUT) && ln -s -f $(shell basename $<) $(shell basename $@)
28*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/execveat.denatured: $(OUTPUT)/execveat
29*053f45beSAndroid Build Coastguard Worker	cp $< $@
30*053f45beSAndroid Build Coastguard Worker	chmod -x $@
31*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/load_address_4096: load_address.c
32*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x1000 -pie -static $< -o $@
33*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/load_address_2097152: load_address.c
34*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x200000 -pie -static $< -o $@
35*053f45beSAndroid Build Coastguard Worker$(OUTPUT)/load_address_16777216: load_address.c
36*053f45beSAndroid Build Coastguard Worker	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x1000000 -pie -static $< -o $@
37