From 45c0a5114d44fa1c20b06ef9d2a4ae7ecf26658a Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Sun, 29 Sep 2024 22:14:51 +0200 Subject: [PATCH] Revert: "arch: drop now useless support for FDPIC" This reverts commit 58dcd28dfbed481becb822b009583a63efbc6ffa. ARM supports FDPIC, so this code is needed once again. Signed-off-by: Ben Wolsieffer Signed-off-by: Waldemar Brodkorb Signed-off-by: Dario Binacchi Signed-off-by: Thomas Petazzoni --- arch/Config.in | 14 ++++++++++++++ package/uclibc/uclibc.mk | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/arch/Config.in b/arch/Config.in index 2e7ac080ef..bd5f9ce470 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -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 diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index de834bac4f..600d72ce7b 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -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)