diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/mips/iris6.h | 4 | ||||
-rw-r--r-- | gcc/crtstuff.c | 18 | ||||
-rw-r--r-- | gcc/gcc.1 | 4 | ||||
-rw-r--r-- | gcc/gcc.texi | 2 | ||||
-rw-r--r-- | gcc/version.c | 2 |
6 files changed, 27 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46407cb2943..ebaff2d7969 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. + Wed Dec 24 23:03:42 1997 Jim Wilson (wilson@cygnus.com) * mips.c (mips_expand_epilogue): Emit blockage insn before call to diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h index 86746d11e84..109546e60c2 100644 --- a/gcc/config/mips/iris6.h +++ b/gcc/config/mips/iris6.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Iris version 6. - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc. This file is part of GNU CC. @@ -542,5 +542,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}" diff --git a/gcc/crtstuff.c b/gcc/crtstuff.c index 7e3c3edb25a..ef683a199d9 100644 --- a/gcc/crtstuff.c +++ b/gcc/crtstuff.c @@ -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 Free Software Foundation, Inc. + Copyright (C) 1991, 1994, 1995, 1996, 1997 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) (); diff --git a/gcc/gcc.1 b/gcc/gcc.1 index 4b6ccd3a2e4..10422c2ea03 100644 --- a/gcc/gcc.1 +++ b/gcc/gcc.1 @@ -20,10 +20,10 @@ .if n .sp .if t .sp 0.4 .. -.Id $Id: gcc.1,v 1.1.1.1 1997/08/11 15:57:07 law Exp $ +.Id $Id: gcc.1,v 1.1.1.1.2.1 1997/12/03 08:07:52 law Exp $ .TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools" .SH NAME -gcc, g++ \- GNU project C and C++ Compiler (egcs-1.0) +gcc, g++ \- GNU project C and C++ Compiler (egcs-1.0.1) .SH SYNOPSIS .B gcc .RI "[ " option " | " filename " ].\|.\|." diff --git a/gcc/gcc.texi b/gcc/gcc.texi index 99887cdd661..5072b86e1ef 100644 --- a/gcc/gcc.texi +++ b/gcc/gcc.texi @@ -148,7 +148,7 @@ original English. @sp 1 @c The version number appears twice more in this file. -@center for egcs-1.0 +@center for egcs-1.0.1 @page @vskip 0pt plus 1filll Copyright @copyright{} 1988, 89, 92, 93, 94, 95, 96 Free Software Foundation, Inc. diff --git a/gcc/version.c b/gcc/version.c index f04d3c87512..b91ba861425 100644 --- a/gcc/version.c +++ b/gcc/version.c @@ -1 +1 @@ -char *version_string = "egcs-2.90.22 971220 (egcs-1.01 beta)"; +char *version_string = "egcs-2.90.23 980102 (egcs-1.0.1 release)"; |