1 # SPDX-License-Identifier: GPL-2.0
5 ALIGNS
:= 0x1000 0x200000 0x1000000
6 ALIGN_PIES
:= $(patsubst %,load_address.
%,$(ALIGNS
))
7 ALIGN_STATIC_PIES
:= $(patsubst %,load_address.static.
%,$(ALIGNS
))
8 ALIGNMENT_TESTS
:= $(ALIGN_PIES
) $(ALIGN_STATIC_PIES
)
10 TEST_PROGS
:= binfmt_script.py
11 TEST_GEN_PROGS
:= execveat non-regular
$(ALIGNMENT_TESTS
)
12 TEST_GEN_FILES
:= execveat.symlink execveat.denatured script subdir
13 # Makefile is a run-time dependency, since it's accessed by the execveat test
14 TEST_FILES
:= Makefile
16 TEST_GEN_PROGS
+= recursion-depth
17 TEST_GEN_PROGS
+= null-argv
19 EXTRA_CLEAN
:= $(OUTPUT
)/subdir.moved
$(OUTPUT
)/execveat.moved
$(OUTPUT
)/xxxxx
* \
26 $(OUTPUT
)/script
: Makefile
27 echo
'#!/bin/bash' > $@
30 $(OUTPUT
)/execveat.symlink
: $(OUTPUT
)/execveat
31 cd
$(OUTPUT
) && ln
-s
-f
$(shell basename $<) $(shell basename $@
)
32 $(OUTPUT
)/execveat.denatured
: $(OUTPUT
)/execveat
35 $(OUTPUT
)/load_address
.0x
%: load_address.c
36 $(CC
) $(CFLAGS
) $(LDFLAGS
) -Wl
,-z
,max-page-size
=$(lastword
$(subst .
, ,$@
)) \
38 $(OUTPUT
)/load_address.static
.0x
%: load_address.c
39 $(CC
) $(CFLAGS
) $(LDFLAGS
) -Wl
,-z
,max-page-size
=$(lastword
$(subst .
, ,$@
)) \
40 -fPIE
-static-pie
$< -o
$@