Commit 16b61764 by Douglas B Rupp Committed by Richard Kenner

vms.h (DWARF2_UNWIND_INFO, [...]): Define.

	* config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
	LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
	(vms-dwarf2eh.o): Add Makefile rule.
	* config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
	* config/alpha/vms-dwarf2eh.asm: New file.

From-SVN: r48451
parent f01c9bcd
2002-01-01 Douglas B Rupp <rupp@gnat.com> 2002-01-01 Douglas B Rupp <rupp@gnat.com>
* config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
* config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
(vms-dwarf2eh.o): Add Makefile rule.
* config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
* config/alpha/vms-dwarf2eh.asm: New file.
* gcc.c (delete_if_ordinary): Delete all versions. * gcc.c (delete_if_ordinary): Delete all versions.
2002-01-01 Hans-Peter Nilsson <hp@bitrange.com> 2002-01-01 Hans-Peter Nilsson <hp@bitrange.com>
......
...@@ -3,12 +3,15 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/alpha/vms_tramp.asm ...@@ -3,12 +3,15 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/alpha/vms_tramp.asm
# VMS_EXTRA_PARTS is defined in x-vms and represent object files that # VMS_EXTRA_PARTS is defined in x-vms and represent object files that
# are only needed for VMS targets, but can only be compiled on a VMS host # are only needed for VMS targets, but can only be compiled on a VMS host
# (because they need DEC C). # (because they need DEC C).
EXTRA_PARTS = vms-dwarf2.o $(VMS_EXTRA_PARTS) EXTRA_PARTS = vms-dwarf2.o vms-dwarf2eh.o $(VMS_EXTRA_PARTS)
# This object must be linked with in order to make the executable debuggable. # This object must be linked with in order to make the executable debuggable.
# vms-ld handles it automatically when passed -g. # vms-ld handles it automatically when passed -g.
vms-dwarf2.o : $(srcdir)/config/alpha/vms-dwarf2.asm vms-dwarf2.o : $(srcdir)/config/alpha/vms-dwarf2.asm
gcc -c -x assembler $< gcc -c -x assembler $< -o $@
vms-dwarf2eh.o : $(srcdir)/config/alpha/vms-dwarf2eh.asm
gcc -c -x assembler $< -o $@
# Assemble startup files. # Assemble startup files.
vcrt0.o: $(CRT0_S) $(GCC_PASSES) vcrt0.o: $(CRT0_S) $(GCC_PASSES)
......
/* VMS dwarf2 exception handling section sequentializer.
Copyright (C) 2002 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GNU CC.
GNU CC 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 2, or (at your option)
any later version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GNU CC 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.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Linking with this file forces the Dwarf2 EH section to be
individually loaded by the VMS linker an the unwinder to read it. */
.section .eh_frame,NOWRT
.align 0
.global __EH_FRAME_BEGIN__
__EH_FRAME_BEGIN__:
/* VMS linker wrapper. /* VMS linker wrapper.
Copyright (C) 1996-2001 Free Software Foundation, Inc. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com). Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GNU CC. This file is part of GNU CC.
...@@ -38,6 +39,9 @@ typedef struct dsc {unsigned short len, mbz; char *adr; } Descr; ...@@ -38,6 +39,9 @@ typedef struct dsc {unsigned short len, mbz; char *adr; } Descr;
/* File specification for vms-dwarf2.o. */ /* File specification for vms-dwarf2.o. */
static char *vmsdwarf2spec = 0; static char *vmsdwarf2spec = 0;
/* File specification for vms-dwarf2eh.o. */
static char *vmsdwarf2ehspec = 0;
/* verbose = 1 if -v passed. */ /* verbose = 1 if -v passed. */
static int verbose = 0; static int verbose = 0;
...@@ -589,8 +593,11 @@ main (argc, argv) ...@@ -589,8 +593,11 @@ main (argc, argv)
buff_len = strlen (buff); buff_len = strlen (buff);
if (buff_len >= 13 if (buff_len >= 15
&& strcasecmp (&buff[buff_len-13],"vms-dwarf2.o\n") == 0) && strcasecmp (&buff[buff_len - 15], "vms-dwarf2eh.o\n") == 0)
vmsdwarf2ehspec = xstrdup (buff);
else if (buff_len >= 13
&& strcasecmp (&buff[buff_len - 13],"vms-dwarf2.o\n") == 0)
vmsdwarf2spec = xstrdup (buff); vmsdwarf2spec = xstrdup (buff);
else if (is_cld) else if (is_cld)
{ {
...@@ -607,14 +614,22 @@ main (argc, argv) ...@@ -607,14 +614,22 @@ main (argc, argv)
fprintf (optfile, "symbol_vector=(main=procedure)\n"); fprintf (optfile, "symbol_vector=(main=procedure)\n");
#endif #endif
if (vmsdwarf2ehspec)
{
fprintf (optfile, "case_sensitive=yes\n");
fprintf (optfile, "cluster=DWARF2eh,,,%s", vmsdwarf2ehspec);
fprintf (optfile, "collect=DWARF2eh,eh_frame\n");
fprintf (optfile, "case_sensitive=NO\n");
}
if (debug && vmsdwarf2spec) if (debug && vmsdwarf2spec)
{ {
fprintf (optfile, "case_sensitive=yes\n"); fprintf (optfile, "case_sensitive=yes\n");
fprintf (optfile, "cluster=DWARF2debug,,,%s", vmsdwarf2spec); fprintf (optfile, "cluster=DWARF2debug,,,%s", vmsdwarf2spec);
fprintf (optfile, "collect=DWARF2debug,debug_abbrev,debug_aranges,-\n"); fprintf (optfile, "collect=DWARF2debug,debug_abbrev,debug_aranges,-\n");
fprintf (optfile, " debug_frame,debug_info,debug_line,debug_loc,-\n"); fprintf (optfile, " debug_frame,debug_info,debug_line,debug_loc,-\n");
fprintf (optfile, fprintf (optfile, " debug_macinfo,debug_pubnames,debug_str,-\n");
" debug_macinfo,debug_pubnames,debug_str,debug_zzzzzz\n"); fprintf (optfile, " debug_zzzzzz\n");
fprintf (optfile, "case_sensitive=NO\n"); fprintf (optfile, "case_sensitive=NO\n");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment