@@ -12,6 +12,9 @@ config BR2_SOFT_FLOAT
config BR2_USE_MMU
bool
+config BR2_ARCH_HAS_FDPIC_SUPPORT
+ bool
+
choice
prompt "Target Architecture"
default BR2_i386
@@ -430,6 +433,7 @@ endif
choice
prompt "Target Binary Format"
default BR2_BINFMT_ELF if BR2_USE_MMU
+ default BR2_BINFMT_FDPIC if BR2_ARCH_HAS_FDPIC_SUPPORT
default BR2_BINFMT_FLAT
config BR2_BINFMT_ELF
@@ -441,6 +445,16 @@ config BR2_BINFMT_ELF
and executables used across different architectures and
operating systems.
+config BR2_BINFMT_FDPIC
+ bool "FDPIC"
+ depends on BR2_ARCH_HAS_FDPIC_SUPPORT
+ select BR2_BINFMT_SUPPORTS_SHARED
+ help
+ ELF FDPIC binaries are based on ELF, but allow the individual
+ load segments of a binary to be located in memory
+ independently of each other. This makes this format ideal for
+ use in environments where no MMU is available.
+
config BR2_BINFMT_FLAT
bool "FLAT"
depends on !BR2_USE_MMU
@@ -57,6 +57,13 @@ UCLIBC_LOCALES = \
endif
# noMMU binary formats
+ifeq ($(BR2_BINFMT_FDPIC),y)
+define UCLIBC_BINFMT_CONFIG
+ $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config)
+ $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config)
+ $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config)
+endef
+endif
ifeq ($(BR2_BINFMT_FLAT),y)
define UCLIBC_BINFMT_CONFIG
$(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT)