Fix encoding of LSDA entries. .eh_frame references in non-PIC mode can

use plain pointers. For PIC, any references to global objects must be
indirect, but the .eh_frame entries themselve should be pcrel.
This commit is contained in:
joerg 2017-07-18 18:02:37 +00:00
parent c7fa9ad5c0
commit 4df4cd4e92

View File

@ -964,10 +964,8 @@ extern int arm_arch_crc;
/* DWARF unwinding uses the normal indirect/pcrel vs absptr format
for 32bit platforms. */
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
((flag_pic \
&& ((GLOBAL) || (CODE))) \
? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4 \
: DW_EH_PE_absptr)
(flag_pic ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
: DW_EH_PE_absptr)
#else
/* ttype entries (the only interesting data references used)
use TARGET2 relocations. */