Browse Source

j2: allow to try uClibc-ng sh FDPIC

Waldemar Brodkorb 7 years ago
parent
commit
460a1397e4
2 changed files with 7 additions and 11 deletions
  1. 1 1
      target/config/Config.in.binfmt
  2. 6 10
      toolchain/gcc/patches/6.3.0/fix-dwarf-fdpic.patch

+ 1 - 1
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"

+ 6 - 10
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?