diff options
Diffstat (limited to 'mk/vars.mk')
-rw-r--r-- | mk/vars.mk | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/mk/vars.mk b/mk/vars.mk index e476b8938..1585833c6 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -142,7 +142,7 @@ TARGET_CFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU) TARGET_CXXFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU) endif -# for archiectures where gcc --with-arch matches -march= +# for architectures where gcc --with-arch matches -march= ifneq ($(ADK_TARGET_GCC_ARCH),) TARGET_CFLAGS+= -march=$(ADK_TARGET_GCC_ARCH) TARGET_CXXFLAGS+= -march=$(ADK_TARGET_GCC_ARCH) @@ -171,9 +171,9 @@ endif endif ifeq ($(ADK_TARGET_BINFMT_FLAT),y) -TARGET_LDFLAGS+= -Wl,-elf2flt -TARGET_CFLAGS+= -Wl,-elf2flt -TARGET_CXXFLAGS+= -Wl,-elf2flt +TARGET_LDFLAGS+= -Wl,-elf2flt=-r +TARGET_CFLAGS+= -Wl,-elf2flt=-r +TARGET_CXXFLAGS+= -Wl,-elf2flt=-r endif ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y) @@ -198,6 +198,13 @@ ifneq ($(ADK_TARGET_USE_LD_BIND_NOW),) TARGET_LDFLAGS+= -Wl,-z,now endif +ifeq ($(ADK_TARGET_ARCH_RISCV64)$(ADK_TARGET_ARCH_RISCV32),y) +ifeq ($(ADK_TARGET_BINFMT_FLAT),y) +TARGET_CFLAGS+= -fPIC +TARGET_CXXFLAGS+= -fPIC +endif +endif + # needed for musl ppc ifeq ($(ADK_TARGET_ARCH_PPC),y) ifeq ($(ADK_TARGET_LIB_MUSL),y) @@ -205,11 +212,17 @@ TARGET_LDFLAGS+= -Wl,--secure-plt endif endif +ifneq ($(ADK_TARGET_BINFMT_ELF)$(ADK_TARGET_WITH_MMU),y) ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY)$(ADK_TARGET_USE_STATIC_AND_SHARED_LIBS),y) TARGET_CFLAGS+= -static TARGET_CXXFLAGS+= -static TARGET_LDFLAGS+= -static endif +else +TARGET_CFLAGS+= -fpie +TARGET_CXXFLAGS+= -fpie +TARGET_LDFLAGS+= -fpie -pie +endif ifneq ($(ADK_TARGET_USE_SSP),) TARGET_CFLAGS+= -fstack-protector-all --param=ssp-buffer-size=4 @@ -236,16 +249,14 @@ endif # special architecture optimization flags ifeq ($(ADK_TARGET_ARCH_XTENSA),y) -ifeq ($(ADK_TARGET_BIG_ENDIAN),) ifeq ($(ADK_TARGET_LIB_NEWLIB),) TARGET_CFLAGS+= -mlongcalls -mauto-litpools TARGET_CXXFLAGS+= -mlongcalls -mauto-litpools endif endif -endif ifeq ($(ADK_TARGET_ARCH_MICROBLAZE),y) -TARGET_CFLAGS+= -mxl-barrel-shift -TARGET_CXXFLAGS+= -mxl-barrel-shift +TARGET_CFLAGS+= -mxl-barrel-shift -fno-tree-loop-distribute-patterns +TARGET_CXXFLAGS+= -mxl-barrel-shift -fno-tree-loop-distribute-patterns endif endif @@ -282,8 +293,8 @@ endif # workaround gcc bug for m68k/coldfire ifeq ($(ADK_TARGET_CPU_CF),y) -TARGET_CFLAGS+= -fno-dwarf2-cfi-asm -TARGET_CXXFLAGS+= -fno-dwarf2-cfi-asm +TARGET_CFLAGS+= -fno-dwarf2-cfi-asm -mxgot +TARGET_CXXFLAGS+= -fno-dwarf2-cfi-asm -mxgot endif ifeq ($(ADK_TARGET_ARCH_ARM),y) @@ -322,7 +333,6 @@ HOST_STATIC_LDFLAGS:= -Wl,-static endif SED:= PATH='${HOST_PATH}' sed -i -e -XZ:= PATH='${HOST_PATH}' xz CPIO:= PATH='${HOST_PATH}' cpio LINUX_DIR:= $(BUILD_DIR)/$(ADK_TARGET_OS) KERNEL_MODULE_FLAGS:= ARCH=${ADK_TARGET_KARCH} \ @@ -406,7 +416,7 @@ PKG_INSTALL:= PATH='${HOST_PATH}' \ PKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/opkg endif -ifeq ($(ADK_TARGET_PACKAGE_TXZ),y) +ifeq ($(ADK_TARGET_PACKAGE_TGZ),y) PKG_BUILD:= ${BASH} ${SCRIPT_DIR}/tarpkg build PKG_INSTALL:= PKG_INSTROOT='$(TARGET_DIR)' \ PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/tarpkg install |