mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
18e04883d0
* elf-bfd.h (eh_cie_fde): Add personality_offset and make_per_encoding_relative to the CIE structure. Add a padding field. * elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Use 0x70 rather than 0xf0 when masking out the base address encoding Record the offset of personality data from the start of the CIE. Remove a repeated elf_backend_can_make_relative_eh_frame check. (find_merged_cie): Take an info argument. If the personality binds locally, try converting an absolute personality into a local one. (_bfd_elf_discard_section_eh_frame): Use 0x70 rather than 0xf0 when masking out the base address encoding. Update the call to find_merged_cie. (_bfd_elf_eh_frame_section_offset): Discard relocations against the personality data if we are converting into PC-relative form. (_bfd_elf_write_section_eh_frame): Use 0x70 rather than 0xf0 when masking out the base address encoding. Handle make_per_encoding_relative. ld/testsuite/ * ld-mips-elf/eh-frame5.s, ld-mips-elf/eh-frame5.ld, ld-mips-elf/eh-frame5.d: New test. * ld-mips-elf/mips-elf.exp: Run it.
108 lines
1.4 KiB
ArmAsm
108 lines
1.4 KiB
ArmAsm
.cfi_startproc
|
|
.cfi_personality 0x0,local_pers
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f1
|
|
f1:
|
|
nop
|
|
.end f1
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x0,hidden_pers
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f2
|
|
f2:
|
|
nop
|
|
.end f2
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x0,global_pers
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f3
|
|
f3:
|
|
nop
|
|
.end f3
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x0,extern_pers
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f4
|
|
f4:
|
|
nop
|
|
.end f4
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x80,local_indirect_ptr
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f5
|
|
f5:
|
|
nop
|
|
.end f5
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x80,hidden_indirect_ptr
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f6
|
|
f6:
|
|
nop
|
|
.end f6
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x80,global_indirect_ptr
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f7
|
|
f7:
|
|
nop
|
|
.end f7
|
|
.cfi_endproc
|
|
|
|
.cfi_startproc
|
|
.cfi_personality 0x80,extern_indirect_ptr
|
|
.cfi_lsda 0x0,LSDA
|
|
.ent f8
|
|
f8:
|
|
nop
|
|
.end f8
|
|
.cfi_endproc
|
|
|
|
|
|
.ent local_pers
|
|
local_pers:
|
|
nop
|
|
.end local_pers
|
|
|
|
.globl hidden_pers
|
|
.hidden hidden_pers
|
|
.ent hidden_pers
|
|
hidden_pers:
|
|
nop
|
|
.end hidden_pers
|
|
|
|
.globl global_pers
|
|
.ent global_pers
|
|
global_pers:
|
|
nop
|
|
.end global_pers
|
|
|
|
.section .data,"aw",@progbits
|
|
|
|
local_indirect_ptr:
|
|
.4byte pers1
|
|
|
|
.globl hidden_indirect_ptr
|
|
.hidden hidden_indirect_ptr
|
|
hidden_indirect_ptr:
|
|
.4byte pers2
|
|
|
|
.globl global_indirect_ptr
|
|
global_indirect_ptr:
|
|
.4byte pers3
|
|
|
|
LSDA:
|
|
.4byte 0
|