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