|
@@ -0,0 +1,33 @@
|
|
|
+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__ || defined __SH_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 @@
|
|
|
+ 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__ || defined __SH_FDPIC__
|
|
|
+ struct elf32_fdpic_loadaddr load_base;
|
|
|
+ #else
|
|
|
+ _Unwind_Ptr load_base;
|
|
|
+@@ -347,7 +351,7 @@
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+-# elif defined __FRV_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?
|