summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/config/Config.in.binfmt2
-rw-r--r--toolchain/gcc/patches/6.3.0/fix-dwarf-fdpic.patch16
2 files changed, 7 insertions, 11 deletions
diff --git a/target/config/Config.in.binfmt b/target/config/Config.in.binfmt
index 03f2c6003..336b0b8b0 100644
--- a/target/config/Config.in.binfmt
+++ b/target/config/Config.in.binfmt
@@ -18,7 +18,7 @@ config ADK_TARGET_BINFMT_FLAT
config ADK_TARGET_BINFMT_FDPIC
bool "FDPIC"
- depends on ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_FRV || (ADK_TARGET_CPU_SH_J2 && ADK_TARGET_LIB_MUSL)
+ depends on ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_FRV || ADK_TARGET_CPU_SH_J2
config ADK_TARGET_BINFMT_DSBT
bool "DSBT"
diff --git a/toolchain/gcc/patches/6.3.0/fix-dwarf-fdpic.patch b/toolchain/gcc/patches/6.3.0/fix-dwarf-fdpic.patch
index 315b40668..d462a6c7a 100644
--- a/toolchain/gcc/patches/6.3.0/fix-dwarf-fdpic.patch
+++ b/toolchain/gcc/patches/6.3.0/fix-dwarf-fdpic.patch
@@ -1,15 +1,11 @@
-Fix DWARF compilation for FDPIC targets
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gcc-6.1.0.orig/libgcc/unwind-dw2-fde-dip.c gcc-6.1.0/libgcc/unwind-dw2-fde-dip.c
---- gcc-6.1.0.orig/libgcc/unwind-dw2-fde-dip.c 2016-01-04 15:30:50.000000000 +0100
-+++ gcc-6.1.0/libgcc/unwind-dw2-fde-dip.c 2016-08-05 02:17:40.424195128 +0200
+diff -Nur gcc-6.3.0.orig/libgcc/unwind-dw2-fde-dip.c gcc-6.3.0/libgcc/unwind-dw2-fde-dip.c
+--- gcc-6.3.0.orig/libgcc/unwind-dw2-fde-dip.c 2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.3.0/libgcc/unwind-dw2-fde-dip.c 2017-05-18 00:43:58.000000000 +0200
@@ -124,7 +124,11 @@
{
_Unwind_Ptr pc_low;
_Unwind_Ptr pc_high;
-+#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
++#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__ || defined __SH_FDPIC__
+ struct elf32_fdpic_loadaddr load_base;
+#else
_Unwind_Ptr load_base;
@@ -22,7 +18,7 @@ diff -Nur gcc-6.1.0.orig/libgcc/unwind-dw2-fde-dip.c gcc-6.1.0/libgcc/unwind-dw2
const ElfW(Phdr) *phdr, *p_eh_frame_hdr, *p_dynamic;
long n, match;
-#ifdef __FRV_FDPIC__
-+#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
++#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__ || defined __SH_FDPIC__
struct elf32_fdpic_loadaddr load_base;
#else
_Unwind_Ptr load_base;
@@ -31,7 +27,7 @@ diff -Nur gcc-6.1.0.orig/libgcc/unwind-dw2-fde-dip.c gcc-6.1.0/libgcc/unwind-dw2
}
}
-# elif defined __FRV_FDPIC__ && defined __linux__
-+# elif (defined __FRV_FDPIC__ || defined __BFIN_FDPIC__) && defined __linux__
++# elif (defined __FRV_FDPIC__ || defined __BFIN_FDPIC__) || defined __SH_FDPIC__ && defined __linux__
data->dbase = load_base.got_value;
# else
# error What is DW_EH_PE_datarel base on this platform?