diff --git a/os/src/lib/trace/policy/policy.inc b/os/src/lib/trace/policy/policy.inc index 2b7eea212..6a13af09b 100644 --- a/os/src/lib/trace/policy/policy.inc +++ b/os/src/lib/trace/policy/policy.inc @@ -4,7 +4,7 @@ # \date 2013-08-12 # -CXX_OPT = -g -ffreestanding -fno-exceptions -fno-rtti -nostdinc -nostdlib +CXX_OPT = -g -ffreestanding -fPIC -fno-exceptions -fno-rtti -nostdinc -nostdlib -MMD LD_SCRIPT= $(PRG_DIR)/../policy.ld @@ -23,7 +23,8 @@ policy.o: policy.cc $(TARGET_POLICY).elf: table.o policy.o $(MSG_LINK)$@ - $(VERBOSE)$(LD) $(LD_MARCH) -T $(LD_SCRIPT) -Ttext=0 $^ -o $@ + $(VERBOSE)$(LD) $(LD_MARCH) -T $(LD_SCRIPT) -Ttext=0 \ + $^ $(shell $(CXX) $(CC_MARCH) -print-libgcc-file-name) -o $@ $(INSTALL_DIR)/$(TARGET_POLICY): $(TARGET_POLICY).elf $(VERBOSE)$(OBJCOPY) -O binary $< $@ diff --git a/os/src/lib/trace/policy/policy.ld b/os/src/lib/trace/policy/policy.ld index 1ff5d776c..db66c4b33 100644 --- a/os/src/lib/trace/policy/policy.ld +++ b/os/src/lib/trace/policy/policy.ld @@ -2,9 +2,12 @@ PHDRS { rw PT_LOAD; } SECTIONS { .text : { - *(.data) /* must be first because it contains policy module header */ + *(.data.rel) /* must be first because it contains policy module header */ + *(.data) + *(.rodata .rodata.*) *(.text .text.*) *(.bss) + *(.got.plt) } : rw /DISCARD/ : { *(.*) }