|
@@ -8,6 +8,7 @@ include ../lib.mk
|
|
|
UNAME_M := $(shell uname -m)
|
|
|
CAN_BUILD_I386 := $(shell ./check_cc.sh $(CC) trivial_32bit_program.c -m32)
|
|
|
CAN_BUILD_X86_64 := $(shell ./check_cc.sh $(CC) trivial_64bit_program.c)
|
|
|
+CAN_BUILD_WITH_NOPIE := $(shell ./check_cc.sh $(CC) trivial_program.c -no-pie)
|
|
|
|
|
|
TARGETS_C_BOTHBITS := single_step_syscall sysret_ss_attrs syscall_nt test_mremap_vdso \
|
|
|
check_initial_reg_state sigreturn iopl mpx-mini-test ioperm \
|
|
@@ -31,7 +32,12 @@ BINARIES_64 := $(TARGETS_C_64BIT_ALL:%=%_64)
|
|
|
BINARIES_32 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_32))
|
|
|
BINARIES_64 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_64))
|
|
|
|
|
|
-CFLAGS := -O2 -g -std=gnu99 -pthread -Wall -no-pie
|
|
|
+CFLAGS := -O2 -g -std=gnu99 -pthread -Wall
|
|
|
+
|
|
|
+# call32_from_64 in thunks.S uses absolute addresses.
|
|
|
+ifeq ($(CAN_BUILD_WITH_NOPIE),1)
|
|
|
+CFLAGS += -no-pie
|
|
|
+endif
|
|
|
|
|
|
define gen-target-rule-32
|
|
|
$(1) $(1)_32: $(OUTPUT)/$(1)_32
|