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