sim/m64: Fix ld error.

/usr/bin/ld: nuttx.rel: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value

Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
This commit is contained in:
cuiziwei 2024-11-19 16:55:23 +08:00 committed by Xiang Xiao
parent 9cd0ea32ea
commit feb38c43f2
2 changed files with 9 additions and 0 deletions

View file

@ -179,6 +179,9 @@ endif()
if(CONFIG_SIM_M32)
add_compile_options(-m32)
add_link_options(-m32)
elseif(NOT CONFIG_HOST_MACOS)
add_compile_options(-no-pie)
add_link_options(-Wl,-no-pie)
endif()
if(CONFIG_LIBCXX)

View file

@ -322,6 +322,12 @@ ifeq ($(CONFIG_SIM_M32),y)
LDMODULEFLAGS += -melf_i386
SHMODULEFLAGS += -melf_i386
LDELFFLAGS += -melf_i386
else ifeq ($(CONFIG_HOST_MACOS),)
# To compile 64-bit Sim, adding no-pie is necessary to prevent linking errors
# but this may cause other issues on Ubuntu 20.
ARCHCFLAGS += -no-pie
ARCHPICFLAGS += -no-pie
LDFLAGS += -Wl,-no-pie
endif
ifeq ($(CONFIG_HOST_LINUX),y)