Skip to content

Commit

Permalink
sim/m64: Fix ld error.
Browse files Browse the repository at this point in the history
/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 <[email protected]>
  • Loading branch information
cuiziweizw authored and xiaoxiang781216 committed Nov 21, 2024
1 parent 9cd0ea3 commit feb38c4
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
3 changes: 3 additions & 0 deletions arch/sim/src/cmake/Toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions boards/sim/sim/sim/scripts/Make.defs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit feb38c4

Please sign in to comment.