diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs index 4106e741247..42d78e826b0 100644 --- a/boards/sim/sim/sim/scripts/Make.defs +++ b/boards/sim/sim/sim/scripts/Make.defs @@ -326,9 +326,14 @@ ifeq ($(CONFIG_SIM_M32),y) LDMODULEFLAGS += -melf_i386 SHMODULEFLAGS += -melf_i386 LDELFFLAGS += -melf_i386 -else ifeq ($(CONFIG_HOST_MACOS),) + +else ifeq ($(CONFIG_HOST_MACOS)$(CONFIG_HOST_ARM64),) # To compile 64-bit Sim, adding no-pie is necessary to prevent linking errors # but this may cause other issues on Ubuntu 20. + # NOTE: HOST_ARM64 is also excluded -- Ubuntu/Debian arm64 toolchains ship + # only libgcc_s.so.1 (no libgcc_s.a), and -no-pie forces gcc to look for + # the static archive; skipping it lets gcc use the default PIE link path + # which works correctly on aarch64 hosts. ARCHCFLAGS += -no-pie ARCHPICFLAGS += -no-pie LDFLAGS += -Wl,-no-pie