This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: EGCS 1.1.3?
> > Is EGCS 1.1.3 going to happen anytime soon? I'm away at LinuxExpo this
...
> No. Being sick totally killed any chance to do egcs-1.1.3. THe only
> patch it would have anyway would be to fix the shared library problems
> HJ introduced. Absolutely nothing else.
And if one wanted to have the equivant of the would-be 1.1.3, they would
apply this patch, right?
--- egcs-1.1.2/gcc/crtstuff.c Sat Feb 27 13:54:23 1999
+++ egcs-1.1.1/gcc/crtstuff.c Mon Jun 8 11:30:12 1998
@@ -56,45 +56,6 @@
#include <stddef.h>
#include "frame.h"
-/* This really belongs in gansidecl.h, but for the egcs-1.1.x branch, the
- only code which uses weak attributes is in this file and this file does
- not include gansidecl.h. */
-#ifndef TARGET_ATTRIBUTE_WEAK
-# if SUPPORTS_WEAK
-# define TARGET_ATTRIBUTE_WEAK __attribute__ ((weak))
-# else
-# define TARGET_ATTRIBUTE_WEAK
-# endif
-#endif
-
-/* We do not want to add the weak attribute to the declarations of these
- routines in frame.h because that will cause the definition of these
- symbols to be weak as well.
-
- This exposes a core issue, how to handle creating weak references vs
- how to create weak definitions. Either we have to have the definition
- of TARGET_WEAK_ATTRIBUTE be conditional in the shared header files or
- have a second declaration if we want a function's references to be weak,
- but not its definition.
-
- Making TARGET_WEAK_ATTRIBUTE conditional seems like a good solution until
- one thinks about scaling to larger problems -- ie, the condition under
- which TARGET_WEAK_ATTRIBUTE is active will eventually get far too
- complicated.
-
- So, we take an approach similar to #pragma weak -- we have a second
- declaration for functions that we want to have weak references.
-
- Neither way is particularly good. */
-
-/* References to __register_frame_info and __deregister_frame_info should
- be weak in this file if at all possible. */
-extern void __register_frame_info (void *, struct object *)
- TARGET_ATTRIBUTE_WEAK;
-
-extern void *__deregister_frame_info (void *)
- TARGET_ATTRIBUTE_WEAK;
-
/* Provide default definitions for the pseudo-ops used to switch to the
.ctors and .dtors sections.
@@ -181,8 +142,7 @@
}
#ifdef EH_FRAME_SECTION_ASM_OP
- if (__deregister_frame_info)
- __deregister_frame_info (__EH_FRAME_BEGIN__);
+ __deregister_frame_info (__EH_FRAME_BEGIN__);
#endif
completed = 1;
}
@@ -210,8 +170,7 @@
frame_dummy ()
{
static struct object object;
- if (__register_frame_info)
- __register_frame_info (__EH_FRAME_BEGIN__, &object);
+ __register_frame_info (__EH_FRAME_BEGIN__, &object);
}
static void __attribute__ ((__unused__))
@@ -295,8 +254,7 @@
(*p) ();
#ifdef EH_FRAME_SECTION_ASM_OP
- if (__deregister_frame_info)
- __deregister_frame_info (__EH_FRAME_BEGIN__);
+ __deregister_frame_info (__EH_FRAME_BEGIN__);
#endif
}
@@ -308,8 +266,7 @@
__frame_dummy ()
{
static struct object object;
- if (__register_frame_info)
- __register_frame_info (__EH_FRAME_BEGIN__, &object);
+ __register_frame_info (__EH_FRAME_BEGIN__, &object);
}
#endif
#endif