diff options
-rw-r--r-- | arch/Config.in | 26 | ||||
-rw-r--r-- | package/Makefile.in | 11 |
2 files changed, 37 insertions, 0 deletions
diff --git a/arch/Config.in b/arch/Config.in index fa9dad343..5ca05cdde 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -226,6 +226,32 @@ config BR2_BINFMT_FLAT endchoice +# Set up flat binary type +choice + prompt "FLAT Binary type" + depends on BR2_BINFMT_FLAT + default BR2_BINFMT_FLAT_ONE + +config BR2_BINFMT_FLAT_ONE + bool "One memory region" + help + All segments are linked into one memory region. + +config BR2_BINFMT_FLAT_SEP_DATA + bool "Separate data and code region" + depends on BR2_bfin || BR2_m68k + help + Allow for the data and text segments to be separated and placed in + different regions of memory. + +config BR2_BINFMT_FLAT_SHARED + bool "Shared binary" + depends on BR2_bfin || BR2_m68k + help + Allow to load and link indiviual FLAT binaries at run time. + +endchoice + if BR2_arcle || BR2_arceb source "arch/Config.in.arc" endif diff --git a/package/Makefile.in b/package/Makefile.in index a8bf36b18..dd3bc7d1a 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -103,6 +103,17 @@ TARGET_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET TARGET_CXXFLAGS = $(TARGET_CFLAGS) TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS)) +ifeq ($(BR2_BINFMT_FLAT_SHARED),y) +TARGET_LDFLAGS += -mid-shared-library -mshared-library-id=0 +TARGET_CFLAGS += -mid-shared-library -mshared-library-id=0 +TARGET_CXXFLAGS += -mid-shared-library -mshared-library-id=0 +endif +ifeq ($(BR2_BINFMT_FLAT_SEP_DATA),y) +TARGET_LDFLAGS += -msep-data +TARGET_CFLAGS += -msep-data +TARGET_CXXFLAGS += -msep-data +endif + ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_CTNG),y) TARGET_CROSS=$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)- else |