| OLD | NEW |
| 1 CFLAGS = -g -O0 -Wall -Werror -Wextra -Wno-missing-field-initializers \ | 1 CFLAGS = -g -O0 -Wall -Werror -Wextra -Wno-missing-field-initializers \ |
| 2 -Wno-unused-parameter -I. | 2 -Wno-unused-parameter -I. |
| 3 LDFLAGS = -g | 3 LDFLAGS = -g |
| 4 CPPFLAGS = | 4 CPPFLAGS = |
| 5 DEPFLAGS = -MMD -MF $@.d | 5 DEPFLAGS = -MMD -MF $@.d |
| 6 MODS := allocator preload library debug maps x86_decode securemem sandbox \ | 6 MODS := allocator preload library debug maps x86_decode securemem sandbox \ |
| 7 syscall_entrypoint system_call_table \ | 7 syscall_entrypoint system_call_table \ |
| 8 trusted_thread trusted_thread_asm trusted_process \ | 8 trusted_thread trusted_thread_asm trusted_process \ |
| 9 access exit fault_handler_asm clone \ | 9 access exit fault_handler_asm clone \ |
| 10 getpid gettid ioctl ipc madvise mmap mprotect \ | 10 getpid gettid ioctl ipc madvise mmap mprotect \ |
| 11 munmap open prctl reference_trusted_thread sigaction sigprocmask \ | 11 munmap open prctl reference_trusted_thread sigaction sigprocmask \ |
| 12 socketcall stat tls_setup tls_setup_helper | 12 socketcall stat tls_setup tls_setup_helper |
| 13 OBJS64 := $(shell echo ${MODS} | xargs -n 1 | sed -e 's/$$/.o64/') | 13 OBJS64 := $(shell echo ${MODS} | xargs -n 1 | sed -e 's/$$/.o64/') |
| 14 OBJS32 := $(shell echo ${MODS} | xargs -n 1 | sed -e 's/$$/.o32/') | 14 OBJS32 := $(shell echo ${MODS} | xargs -n 1 | sed -e 's/$$/.o32/') |
| 15 ALL_OBJS = $(OBJS32) $(OBJS64) tests/test_syscalls.o64 tests/test_syscalls.o32 \ | 15 ALL_OBJS = $(OBJS32) $(OBJS64) tests/test_syscalls.o64 tests/test_syscalls.o32 \ |
| 16 tests/clone_test_helper.o64 tests/clone_test_helper.o32 \ | 16 tests/clone_test_helper.o64 tests/clone_test_helper.o32 \ |
| 17 timestats.o playground.o | 17 timestats.o playground.o |
| 18 DEP_FILES = $(wildcard $(foreach f,$(ALL_OBJS),$(f).d)) | 18 DEP_FILES = $(wildcard $(foreach f,$(ALL_OBJS),$(f).d)) |
| 19 | 19 |
| 20 include $(DEP_FILES) | 20 include $(DEP_FILES) |
| 21 | 21 |
| 22 .SUFFIXES: .o64 .o32 | 22 .SUFFIXES: .o64 .o32 |
| 23 | 23 |
| 24 all: testbin timestats demo elf_loader_32 elf_loader_64 | 24 all: testbin timestats demo elf_loader_32 elf_loader_64 patch_offline |
| 25 | 25 |
| 26 clean: | 26 clean: |
| 27 -rm -f playground playground.o | 27 -rm -f playground playground.o |
| 28 -rm -f $(ALL_OBJS) | 28 -rm -f $(ALL_OBJS) |
| 29 -rm -f $(DEP_FILES) | 29 -rm -f $(DEP_FILES) |
| 30 -rm -f preload64.so | 30 -rm -f preload64.so |
| 31 -rm -f preload32.so | 31 -rm -f preload32.so |
| 32 -rm -f testbin64 testbin.o64 | 32 -rm -f testbin64 testbin.o64 |
| 33 -rm -f testbin32 testbin.o32 | 33 -rm -f testbin32 testbin.o32 |
| 34 -rm -f timestats timestats.o | 34 -rm -f timestats timestats.o |
| 35 -rm -f run_tests_32 run_tests_64 | 35 -rm -f run_tests_32 run_tests_64 |
| 36 -rm -f elf_loader_32 elf_loader_64 |
| 37 -rm -f patch_offline |
| 36 -rm -f tests/test-list.h | 38 -rm -f tests/test-list.h |
| 37 -rm -f core core.* vgcore vgcore.* strace.log* | 39 -rm -f core core.* vgcore vgcore.* strace.log* |
| 38 | 40 |
| 39 test: run_tests_64 run_tests_32 | 41 test: run_tests_64 run_tests_32 |
| 40 ./run_tests_64 | 42 ./run_tests_64 |
| 41 ./run_tests_32 | 43 ./run_tests_32 |
| 42 env SECCOMP_SANDBOX_REFERENCE_IMPL=1 ./run_tests_64 | 44 env SECCOMP_SANDBOX_REFERENCE_IMPL=1 ./run_tests_64 |
| 43 env SECCOMP_SANDBOX_REFERENCE_IMPL=1 ./run_tests_32 | 45 env SECCOMP_SANDBOX_REFERENCE_IMPL=1 ./run_tests_32 |
| 44 | 46 |
| 45 tests/test_syscalls.o64 tests/test_syscalls.o32: tests/test-list.h | 47 tests/test_syscalls.o64 tests/test_syscalls.o32: tests/test-list.h |
| 46 | 48 |
| 47 tests/test-list.h: tests/list_tests.py tests/test_syscalls.cc | 49 tests/test-list.h: tests/list_tests.py tests/test_syscalls.cc |
| 48 python tests/list_tests.py tests/test_syscalls.cc > $@ | 50 python tests/list_tests.py tests/test_syscalls.cc > $@ |
| 49 | 51 |
| 50 run_tests_64: $(OBJS64) tests/test_syscalls.o64 tests/clone_test_helper.o64 | 52 run_tests_64: $(OBJS64) tests/test_syscalls.o64 tests/clone_test_helper.o64 |
| 51 g++ -m64 $^ -lpthread -lutil -o $@ | 53 g++ -m64 $^ -lpthread -lutil -o $@ |
| 52 run_tests_32: $(OBJS32) tests/test_syscalls.o32 tests/clone_test_helper.o32 | 54 run_tests_32: $(OBJS32) tests/test_syscalls.o32 tests/clone_test_helper.o32 |
| 53 g++ -m32 $^ -lpthread -lutil -o $@ | 55 g++ -m32 $^ -lpthread -lutil -o $@ |
| 54 | 56 |
| 55 # Link these as PIEs so that they stay out of the way of any | 57 # Link these as PIEs so that they stay out of the way of any |
| 56 # fixed-position executable that gets loaded later. | 58 # fixed-position executable that gets loaded later. |
| 57 elf_loader_64: elf_loader.o64 $(OBJS64) | 59 elf_loader_64: elf_loader.o64 $(OBJS64) |
| 58 g++ -pie -m64 $^ -o $@ | 60 g++ -pie -m64 $^ -o $@ |
| 59 elf_loader_32: elf_loader.o32 $(OBJS32) | 61 elf_loader_32: elf_loader.o32 $(OBJS32) |
| 60 g++ -pie -m32 $^ -o $@ | 62 g++ -pie -m32 $^ -o $@ |
| 61 | 63 |
| 64 patch_offline: patch_offline.o x86_decode.o |
| 65 g++ $^ -o $@ |
| 66 |
| 62 demo: playground preload32.so preload64.so | 67 demo: playground preload32.so preload64.so |
| 63 ./playground /bin/ls $(HOME) | 68 ./playground /bin/ls $(HOME) |
| 64 | 69 |
| 65 testbin: testbin32 testbin64 | 70 testbin: testbin32 testbin64 |
| 66 | 71 |
| 67 gdb: testbin64 | 72 gdb: testbin64 |
| 68 gdb $< | 73 gdb $< |
| 69 | 74 |
| 70 valgrind: testbin64 | 75 valgrind: testbin64 |
| 71 valgrind --db-attach=yes ./$< | 76 valgrind --db-attach=yes ./$< |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 116 |
| 112 .cc.o32: | 117 .cc.o32: |
| 113 ${CXX} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -fPIC -c -o $@ $< | 118 ${CXX} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -fPIC -c -o $@ $< |
| 114 | 119 |
| 115 .c.o32: | 120 .c.o32: |
| 116 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 --std=gnu99 -fPIC \ | 121 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 --std=gnu99 -fPIC \ |
| 117 -c -o $@ $< | 122 -c -o $@ $< |
| 118 | 123 |
| 119 .S.o32: | 124 .S.o32: |
| 120 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -c -o $@ $< | 125 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -c -o $@ $< |
| OLD | NEW |