crtstuff.c (__frame_dummy): New function for irix6.
* crtstuff.c (__frame_dummy): New function for irix6. (__do_global_ctors): Call __frame_dummy for irix6. * iris6.h (LINK_SPEC): Hide __frame_dummy too. Co-Authored-By: Jeffrey A Law <law@cygnus.com> From-SVN: r17281
This commit is contained in:
parent
4aa0a3f4e8
commit
35a42f5f33
3 changed files with 23 additions and 6 deletions
|
@ -1,3 +1,10 @@
|
|||
Fri Jan 2 23:40:09 1998 Jim Wilson (wilson@cygnus.com)
|
||||
Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* crtstuff.c (__frame_dummy): New function for irix6.
|
||||
(__do_global_ctors): Call __frame_dummy for irix6.
|
||||
* iris6.h (LINK_SPEC): Hide __frame_dummy too.
|
||||
|
||||
Fri Jan 2 04:57:57 1998 Weiwen Liu <liu@hepmail.physics.yale.edu>
|
||||
|
||||
* alpha.c (vms_valid_decl_attribute_p): Move within #if OPEN_VMS.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions of target machine for GNU compiler. Iris version 6.
|
||||
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -541,5 +541,5 @@ do { \
|
|||
%{!static: \
|
||||
%{!shared: %{!non_shared: %{!call_shared: -call_shared -no_unresolved}}}} \
|
||||
%{rpath} -init __do_global_ctors -fini __do_global_dtors \
|
||||
%{shared:-hidden_symbol __do_global_ctors,__do_global_dtors,__EH_FRAME_BEGIN__} \
|
||||
%{shared:-hidden_symbol __do_global_ctors,__do_global_dtors,__EH_FRAME_BEGIN__,__frame_dummy} \
|
||||
-_SYSTYPE_SVR4 %{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64} %{!mabi*: -n32}"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Specialized bits of code needed to support construction and
|
||||
destruction of file-scope objects in C++ code.
|
||||
Copyright (C) 1991, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 94-97, 1998 Free Software Foundation, Inc.
|
||||
Contributed by Ron Guilmette (rfg@monkeys.com).
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -257,6 +257,18 @@ __do_global_dtors ()
|
|||
__deregister_frame_info (__EH_FRAME_BEGIN__);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef EH_FRAME_SECTION_ASM_OP
|
||||
/* Define a function here to call __register_frame. crtend.o is linked in
|
||||
after libgcc.a, and hence can't call libgcc.a functions directly. That
|
||||
can lead to unresolved function references. */
|
||||
void
|
||||
__frame_dummy ()
|
||||
{
|
||||
static struct object object;
|
||||
__register_frame_info (__EH_FRAME_BEGIN__, &object);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* defined(INIT_SECTION_ASM_OP) */
|
||||
|
@ -387,15 +399,13 @@ __do_global_ctors_aux () /* prologue goes in .text section */
|
|||
/* This case is used by the Irix 6 port, which supports named sections but
|
||||
not an SVR4-style .init section. __do_global_ctors can be non-static
|
||||
in this case because we protect it with -hidden_symbol. */
|
||||
extern char __EH_FRAME_BEGIN__[];
|
||||
static func_ptr __CTOR_END__[];
|
||||
void
|
||||
__do_global_ctors ()
|
||||
{
|
||||
func_ptr *p;
|
||||
#ifdef EH_FRAME_SECTION_ASM_OP
|
||||
static struct object object;
|
||||
__register_frame_info (__EH_FRAME_BEGIN__, &object);
|
||||
__frame_dummy ();
|
||||
#endif
|
||||
for (p = __CTOR_END__ - 1; *p != (func_ptr) -1; p--)
|
||||
(*p) ();
|
||||
|
|
Loading…
Add table
Reference in a new issue