Browse Source

respect TARGET_LDFLAGS

Waldemar Brodkorb 9 years ago
parent
commit
f453f2605a
3 changed files with 30 additions and 12 deletions
  1. 4 1
      mk/vars.mk
  2. 12 11
      target/config/Config.in.binfmt
  3. 14 0
      toolchain/uclibc-ng/Makefile

+ 4 - 1
mk/vars.mk

@@ -108,11 +108,14 @@ TARGET_LDFLAGS:=	-L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
 			-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib
 
 ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
+TARGET_LDFLAGS+=	-elf2flt
+endif
+
+ifeq ($(ADK_TARGET_ARCH_M68K),y)
 ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
 TARGET_CFLAGS+=		-msep-data
 TARGET_CXXFLAGS+=	-msep-data
 endif
-TARGET_LDFLAGS+=	-elf2flt
 endif
 
 ifeq ($(ADK_TARGET_LIB_MUSL),y)

+ 12 - 11
target/config/Config.in.binfmt

@@ -30,20 +30,21 @@ depends on ADK_TARGET_BINFMT_FLAT
 default ADK_TARGET_BINFMT_FLAT_ONE
 
 config ADK_TARGET_BINFMT_FLAT_ONE
-        bool "One memory region"
-        help
-          All segments are linked into one memory region.
+	bool "One memory region"
+	help
+	  All segments are linked into one memory region.
 
 config ADK_TARGET_BINFMT_FLAT_SEP_DATA
-        bool "Separate data and code region"
-        help
-          Allow for the data and text segments to be separated and placed in
-          different regions of memory.
+	bool "Separate data and code region"
+	depends on ADK_TARGET_ARCH_M68K || ADK_TARGET_ARCH_BFIN
+	help
+	  Allow for the data and text segments to be separated and placed in
+	  different regions of memory.
 
 config ADK_TARGET_BINFMT_FLAT_SHARED
-        bool "Shared binary"
-        select ADK_TARGET_BINFMT_SUPPORTS_SHARED
-        help
-          Allow to load and link indiviual FLAT binaries at run time.
+	bool "Shared binary"
+	select ADK_TARGET_BINFMT_SUPPORTS_SHARED
+	help
+	  Allow to load and link indiviual FLAT binaries at run time.
 
 endchoice

+ 14 - 0
toolchain/uclibc-ng/Makefile

@@ -61,8 +61,16 @@ ifeq ($(ADK_TARGET_HARD_FLOAT),y)
 	$(SED) 's/.*\(UCLIBC_HAS_SOFT_FLOAT\).*/# \1 is not set/' ${WRKBUILD}/.config
 endif
 ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
+ifeq ($(ADK_TARGET_BINFMT_FLAT_ONE),y)
+	$(SED) 's/.*\(UCLIBC_FORMAT_FLAT_ONE\).*/\1=y/' ${WRKBUILD}/.config
+endif
+ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
 	$(SED) 's/.*\(UCLIBC_FORMAT_FLAT_SEP_DATA\).*/\1=y/' ${WRKBUILD}/.config
 endif
+ifeq ($(ADK_TARGET_BINFMT_FLAT_SHARED),y)
+	$(SED) 's/.*\(UCLIBC_FORMAT_FLAT_SHARED\).*/\1=y/' ${WRKBUILD}/.config
+endif
+endif
 ifeq ($(ADK_TARGET_UCLINUX),y)
 	$(SED) 's/.*\(ARCH_USE_MMU\).*/# \1 is not set/' ${WRKBUILD}/.config
 endif
@@ -179,6 +187,7 @@ endif
 		RUNTIME_PREFIX=$(STAGING_TARGET_DIR) \
 		HOSTCC="$(HOST_CC)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+		UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 		oldconfig
 	PATH='$(HOST_PATH)' $(MAKE) ${UCLIBC_MAKEOPTS} -C $(WRKBUILD) \
 		PREFIX=$(STAGING_TARGET_DIR) \
@@ -186,6 +195,7 @@ endif
 		RUNTIME_PREFIX=$(STAGING_TARGET_DIR) \
 		HOSTCC="$(HOST_CC)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+		UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 		install_headers
 	touch $(WRKBUILD)/.configured
 	touch $@
@@ -197,6 +207,7 @@ $(WRKBUILD)/.compiled:
 		RUNTIME_PREFIX=/ \
 		HOSTCC="$(HOST_CC)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+		UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 		VERBOSE=1 \
 		all
 	touch $@
@@ -208,6 +219,7 @@ $(WRKBUILD)/.install_headers: $(WRKBUILD)/.compiled
 		DEVEL_PREFIX_LIB=/ \
 		RUNTIME_PREFIX=/ \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+		UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 		VERBOSE=1 \
 		install_dev
 	touch $@
@@ -219,6 +231,7 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
 		DEVEL_PREFIX_LIB=/ \
 		RUNTIME_PREFIX=/ \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+		UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 		VERBOSE=1 \
 		install_runtime
 	touch $@
@@ -230,6 +243,7 @@ ifeq ($(ADK_UCLIBC_TEST),y)
 		TEST_INSTALLED_UCLIBC=1 \
 		UCLIBC_ONLY=1 \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+		UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
 		VERBOSE=1 \
 		test_compile
 endif