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