aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorAndrew Dixie <andrewd@gentrack.com>2015-09-18 14:10:36 +0000
committerDavid Edelsohn <dje.gcc@gmail.com>2015-09-18 14:10:36 +0000
commite35647bc76b56387c35443c8c7c16c50f319b5a4 (patch)
treea2da31202b08fdaf8e1ee8716ea6db02c1e77164 /libgcc
parentc97d4a183d55e1e629b7875f5f0837ac55825cfb (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@227906 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/config.host2
-rw-r--r--libgcc/config/rs6000/crtdbase.S31
-rw-r--r--libgcc/config/rs6000/t-aix-cxa3
4 files changed, 42 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 472dd78c2c6..8d44ec2f75b 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 3a2c75db458..140aa227c49 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 00000000000..732d7775e73
--- /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 4755c20c964..f230a88d47f 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 $<