This produces a PIE binary with a variety of p_align requirements, suitable for verifying that the load address meets that alignment requirement. Signed-off-by: Chris Kennelly <ckennelly@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Alexey Dobriyan <adobriyan@gmail.com> Cc: David Rientjes <rientjes@google.com> Cc: Fangrui Song <maskray@google.com> Cc: Hugh Dickens <hughd@google.com> Cc: Ian Rogers <irogers@google.com> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Sandeep Patil <sspatil@google.com> Cc: Song Liu <songliubraving@fb.com> Cc: Suren Baghdasaryan <surenb@google.com> Link: https://lkml.kernel.org/r/20200820170541.1132271-3-ckennelly@google.com Link: https://lkml.kernel.org/r/20200821233848.3904680-3-ckennelly@google.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| CFLAGS = -Wall
 | |
| CFLAGS += -Wno-nonnull
 | |
| CFLAGS += -D_GNU_SOURCE
 | |
| 
 | |
| TEST_PROGS := binfmt_script non-regular
 | |
| TEST_GEN_PROGS := execveat load_address_4096 load_address_2097152 load_address_16777216
 | |
| TEST_GEN_FILES := execveat.symlink execveat.denatured script subdir pipe
 | |
| # Makefile is a run-time dependency, since it's accessed by the execveat test
 | |
| TEST_FILES := Makefile
 | |
| 
 | |
| TEST_GEN_PROGS += recursion-depth
 | |
| 
 | |
| EXTRA_CLEAN := $(OUTPUT)/subdir.moved $(OUTPUT)/execveat.moved $(OUTPUT)/xxxxx*	\
 | |
| 	       $(OUTPUT)/S_I*.test
 | |
| 
 | |
| include ../lib.mk
 | |
| 
 | |
| $(OUTPUT)/subdir:
 | |
| 	mkdir -p $@
 | |
| $(OUTPUT)/script:
 | |
| 	echo '#!/bin/sh' > $@
 | |
| 	echo 'exit $$*' >> $@
 | |
| 	chmod +x $@
 | |
| $(OUTPUT)/execveat.symlink: $(OUTPUT)/execveat
 | |
| 	cd $(OUTPUT) && ln -s -f $(shell basename $<) $(shell basename $@)
 | |
| $(OUTPUT)/execveat.denatured: $(OUTPUT)/execveat
 | |
| 	cp $< $@
 | |
| 	chmod -x $@
 | |
| $(OUTPUT)/load_address_4096: load_address.c
 | |
| 	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x1000 -pie $< -o $@
 | |
| $(OUTPUT)/load_address_2097152: load_address.c
 | |
| 	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x200000 -pie $< -o $@
 | |
| $(OUTPUT)/load_address_16777216: load_address.c
 | |
| 	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x1000000 -pie $< -o $@
 |