From 00178b98eb609827f8e799931f55288ab2f58ee1 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 16 Nov 2016 07:01:56 +0000
Subject: [PATCH] re PR libgcc/68468 (frv/bfin FDPIC toolchain build error)

	PR libgcc/68468
	* unwind-dw2-fde-dip.c: Fix build on FDPIC targets.

From-SVN: r242468
---
 libgcc/ChangeLog            | 5 +++++
 libgcc/unwind-dw2-fde-dip.c | 8 ++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index cca3de50eb65..cfa61115f6a5 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-16  Waldemar Brodkorb  <wbx@openadk.org>
+
+	PR libgcc/68468
+	* unwind-dw2-fde-dip.c: Fix build on FDPIC targets.
+
 2016-11-15  Claudiu Zissulescu  <claziss@synopsys.com>
 
 	* config/arc/lib1funcs.S (__mulsi3): Use feature defines instead
diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
index f7a1c3fd1cf3..801bce8fa3d0 100644
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -124,7 +124,11 @@ static struct frame_hdr_cache_element
 {
   _Unwind_Ptr pc_low;
   _Unwind_Ptr pc_high;
+#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
+  struct elf32_fdpic_loadaddr load_base;
+#else
   _Unwind_Ptr load_base;
+#endif
   const ElfW(Phdr) *p_eh_frame_hdr;
   const ElfW(Phdr) *p_dynamic;
   struct frame_hdr_cache_element *link;
@@ -163,7 +167,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
   struct unw_eh_callback_data *data = (struct unw_eh_callback_data *) ptr;
   const ElfW(Phdr) *phdr, *p_eh_frame_hdr, *p_dynamic;
   long n, match;
-#ifdef __FRV_FDPIC__
+#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
   struct elf32_fdpic_loadaddr load_base;
 #else
   _Unwind_Ptr load_base;
@@ -347,7 +351,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
 	    break;
 	  }
     }
-# elif defined __FRV_FDPIC__ && defined __linux__
+# elif (defined __FRV_FDPIC__ || defined __BFIN_FDPIC__) && defined __linux__
   data->dbase = load_base.got_value;
 # else
 #  error What is DW_EH_PE_datarel base on this platform?
-- 
GitLab