* dw2gencfi.c (cfi_finish): Deal with md_fix_up_eh_frame.
* config/tc-i386.h (md_fix_up_eh_frame): Define on Solaris. (i386_solaris_fix_up_eh_frame): Declare. * config/tc-i386.c (i386_solaris_fix_up_eh_frame): New function.
This commit is contained in:
parent
dcb1a1e279
commit
ad5fec3b3a
4 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2008-10-09 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* dw2gencfi.c (cfi_finish): Deal with md_fix_up_eh_frame.
|
||||
* config/tc-i386.h (md_fix_up_eh_frame): Define on Solaris.
|
||||
(i386_solaris_fix_up_eh_frame): Declare.
|
||||
* config/tc-i386.c (i386_solaris_fix_up_eh_frame): New function.
|
||||
|
||||
2008-10-09 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 6944
|
||||
|
|
|
@ -10105,6 +10105,15 @@ i386_elf_section_type (const char *str, size_t len)
|
|||
return -1;
|
||||
}
|
||||
|
||||
#ifdef TE_SOLARIS
|
||||
void
|
||||
i386_solaris_fix_up_eh_frame (segT sec)
|
||||
{
|
||||
if (flag_code == CODE_64BIT)
|
||||
elf_section_type (sec) = SHT_X86_64_UNWIND;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef TE_PE
|
||||
void
|
||||
tc_pe_dwarf2_emit_offset (symbolS *symbol, unsigned int size)
|
||||
|
|
|
@ -212,6 +212,11 @@ extern void tc_x86_frame_initial_instructions (void);
|
|||
#define md_elf_section_type(str,len) i386_elf_section_type (str, len)
|
||||
extern int i386_elf_section_type (const char *, size_t);
|
||||
|
||||
#ifdef TE_SOLARIS
|
||||
#define md_fix_up_eh_frame(sec) i386_solaris_fix_up_eh_frame (sec)
|
||||
extern void i386_solaris_fix_up_eh_frame (segT);
|
||||
#endif
|
||||
|
||||
/* Support for SHF_X86_64_LARGE */
|
||||
extern int x86_64_section_word (char *, size_t);
|
||||
extern int x86_64_section_letter (int, char **);
|
||||
|
|
|
@ -1496,6 +1496,10 @@ cfi_finish (void)
|
|||
subseg_set (cfi_seg, 0);
|
||||
record_alignment (cfi_seg, EH_FRAME_ALIGNMENT);
|
||||
|
||||
#ifdef md_fix_up_eh_frame
|
||||
md_fix_up_eh_frame (cfi_seg);
|
||||
#endif
|
||||
|
||||
/* Make sure check_eh_frame doesn't do anything with our output. */
|
||||
save_flag_traditional_format = flag_traditional_format;
|
||||
flag_traditional_format = 1;
|
||||
|
|
Loading…
Reference in a new issue