diff options
author | Andrew Dixie <andrewd@gentrack.com> | 2015-09-18 14:10:36 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2015-09-18 10:10:36 -0400 |
commit | 04218b3564e3462d2e68c11548299d7359ad8c17 (patch) | |
tree | a2da31202b08fdaf8e1ee8716ea6db02c1e77164 /libgcc | |
parent | 8cd60b238b40e06647938ef44114da23b6d27391 (diff) | |
download | gcc-04218b3564e3462d2e68c11548299d7359ad8c17.zip gcc-04218b3564e3462d2e68c11548299d7359ad8c17.tar.gz gcc-04218b3564e3462d2e68c11548299d7359ad8c17.tar.bz2 |
config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.
libgcc/
* config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.
* config/rs6000/crtdbase.S: New file.
* config/rs6000/t-aix-cxa: Build crtdbase.o.
gcc/
* defaults.h (EH_FRAME_SECTION_NAME): Depend on
EH_FRAME_THROUGH_COLLECT2.
* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
DW_EH_PE_datarel.
* dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
even if EH_FRAME_SECTION_NAME is undefined. Restrict special
collect2 labels to EH_FRAME_THROUGH_COLLECT2.
* except.c (switch_to_exception_section): Use a read-only section
even if EH_FRAME_SECTION_NAME is undefined.
* system.h (EH_FRAME_IN_DATA_SECTION): Poison.
* collect2.c (write_c_file_stat): Provide dbase on AIX.
(scan_prog_file): Don't export __dso_handle nor
__gcc_unwind_dbase.
* config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
(EH_TABLES_CAN_BE_READ_ONLY): Define.
(ASM_OUTPUT_DWARF_PCREL): Define.
(ASM_OUTPUT_DWARF_DATAREL): Define.
(EH_FRAME_THROUGH_COLLECT2): Define.
(EH_FRAME_IN_DATA_SECTION): Delete.
* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
(rs6000_aix_asm_output_dwarf_datarel): New.
(rs6000_xcoff_asm_init_sections): Don't set exception_section.
* config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
(EH_FRAME_THROUGH_COLLECT2): Define.
* config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
(EH_FRAME_THROUGH_COLLECT2): Define.
(EH_TABLES_CAN_BE_READ_ONLY): Define.
* doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
(EH_FRAME_THROUGH_COLLECT2): New.
(ASM_OUTPUT_DWARF_DATAREL): New.
* doc/tm.texi: Regenerate.
Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
From-SVN: r227906
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 7 | ||||
-rw-r--r-- | libgcc/config.host | 2 | ||||
-rw-r--r-- | libgcc/config/rs6000/crtdbase.S | 31 | ||||
-rw-r--r-- | libgcc/config/rs6000/t-aix-cxa | 3 |
4 files changed, 42 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 472dd78..8d44ec2 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2015-09-18 Andrew Dixie <andrewd@gentrack.com> + David Edelsohn <dje.gcc@gmail.com> + + * config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts. + * config/rs6000/crtdbase.S: New file. + * config/rs6000/t-aix-cxa: Build crtdbase.o. + 2015-09-15 Max Filippov <jcmvbkbc@gmail.com> * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): diff --git a/libgcc/config.host b/libgcc/config.host index 3a2c75d..140aa22 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1085,7 +1085,7 @@ rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) md_unwind_header=rs6000/aix-unwind.h tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa" - extra_parts="crtcxa.o crtcxa_s.o" + extra_parts="crtcxa.o crtcxa_s.o crtdbase.o" ;; rl78-*-elf) tmake_file="$tm_file t-fdpbit rl78/t-rl78" diff --git a/libgcc/config/rs6000/crtdbase.S b/libgcc/config/rs6000/crtdbase.S new file mode 100644 index 0000000..732d777 --- /dev/null +++ b/libgcc/config/rs6000/crtdbase.S @@ -0,0 +1,31 @@ +/* Defines __gcc_unwind_dbase + + Copyright (C) 2014 Free Software Foundation, Inc. + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + <http://www.gnu.org/licenses/>. */ + +/* Symbol used as an arbitrary base for offsets inside the data + * segment for unwind information. */ + .file "crtdbase.S" + .globl __gcc_unwind_dbase + .csect __gcc_unwind_dbase[RW],2 + .align 2 +__gcc_unwind_dbase: + .long 0 diff --git a/libgcc/config/rs6000/t-aix-cxa b/libgcc/config/rs6000/t-aix-cxa index 4755c20..f230a88 100644 --- a/libgcc/config/rs6000/t-aix-cxa +++ b/libgcc/config/rs6000/t-aix-cxa @@ -5,6 +5,9 @@ LIB2ADD_ST += $(srcdir)/config/rs6000/aixinitfini.c SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-aix-cxa.ver +crtdbase.o: $(srcdir)/config/rs6000/crtdbase.S + $(crt_compile) -c $< + crtcxa.o: $(srcdir)/config/rs6000/crtcxa.c $(crt_compile) -c $< |