From 57c05432917de3b9aec293d713acafde01ac9b07 Mon Sep 17 00:00:00 2001 From: Sonic Zhang Date: Fri, 3 May 2013 18:39:37 +0800 Subject: [PATCH] arch: toolchain: Introduce binary format FLAT types. Just introduce the symbol and options in arch generic Config.in. Add FLAT types specific compiling flags into package makefile. Signed-off-by: Sonic Zhang Acked-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- arch/Config.in | 26 ++++++++++++++++++++++++++ package/Makefile.in | 11 +++++++++++ 2 files changed, 37 insertions(+) diff --git a/arch/Config.in b/arch/Config.in index fa9dad3432..5ca05cdde6 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 a8bf36b184..dd3bc7d1a5 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 -- 2.30.2