| 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 | 24 all: testbin timestats demo elf_loader_32 elf_loader_64 |
| 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 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 45 tests/test_syscalls.o64 tests/test_syscalls.o32: tests/test-list.h | 45 tests/test_syscalls.o64 tests/test_syscalls.o32: tests/test-list.h |
| 46 | 46 |
| 47 tests/test-list.h: tests/list_tests.py tests/test_syscalls.cc | 47 tests/test-list.h: tests/list_tests.py tests/test_syscalls.cc |
| 48 python tests/list_tests.py tests/test_syscalls.cc > $@ | 48 python tests/list_tests.py tests/test_syscalls.cc > $@ |
| 49 | 49 |
| 50 run_tests_64: $(OBJS64) tests/test_syscalls.o64 tests/clone_test_helper.o64 | 50 run_tests_64: $(OBJS64) tests/test_syscalls.o64 tests/clone_test_helper.o64 |
| 51 g++ -m64 $^ -lpthread -lutil -o $@ | 51 g++ -m64 $^ -lpthread -lutil -o $@ |
| 52 run_tests_32: $(OBJS32) tests/test_syscalls.o32 tests/clone_test_helper.o32 | 52 run_tests_32: $(OBJS32) tests/test_syscalls.o32 tests/clone_test_helper.o32 |
| 53 g++ -m32 $^ -lpthread -lutil -o $@ | 53 g++ -m32 $^ -lpthread -lutil -o $@ |
| 54 | 54 |
| 55 # Link these as PIEs so that they stay out of the way of any |
| 56 # fixed-position executable that gets loaded later. |
| 57 elf_loader_64: elf_loader.o64 $(OBJS64) |
| 58 g++ -pie -m64 $^ -o $@ |
| 59 elf_loader_32: elf_loader.o32 $(OBJS32) |
| 60 g++ -pie -m32 $^ -o $@ |
| 61 |
| 55 demo: playground preload32.so preload64.so | 62 demo: playground preload32.so preload64.so |
| 56 ./playground /bin/ls $(HOME) | 63 ./playground /bin/ls $(HOME) |
| 57 | 64 |
| 58 testbin: testbin32 testbin64 | 65 testbin: testbin32 testbin64 |
| 59 | 66 |
| 60 gdb: testbin64 | 67 gdb: testbin64 |
| 61 gdb $< | 68 gdb $< |
| 62 | 69 |
| 63 valgrind: testbin64 | 70 valgrind: testbin64 |
| 64 valgrind --db-attach=yes ./$< | 71 valgrind --db-attach=yes ./$< |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 111 |
| 105 .cc.o32: | 112 .cc.o32: |
| 106 ${CXX} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -fPIC -c -o $@ $< | 113 ${CXX} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -fPIC -c -o $@ $< |
| 107 | 114 |
| 108 .c.o32: | 115 .c.o32: |
| 109 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 --std=gnu99 -fPIC \ | 116 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 --std=gnu99 -fPIC \ |
| 110 -c -o $@ $< | 117 -c -o $@ $< |
| 111 | 118 |
| 112 .S.o32: | 119 .S.o32: |
| 113 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -c -o $@ $< | 120 ${CC} ${CFLAGS} ${CPPFLAGS} ${DEPFLAGS} -m32 -c -o $@ $< |
| OLD | NEW |