deregister_frame_info w/o register?
Robert Lipe
robertl@sco.com
Tue Nov 30 23:39:00 GMT 1999
You were right. I misapplied the patch and was confounded by a
different problem.
Your patch (backstitched appropriately) does indeed correct the
problem with version 1.66 of libgcc2.c which is where I did the
analysis. Unfortunately, version 1.67 of libgcc2.c introduces a new
problem with very similar symptoms. It's no longer aborting in teardown
becuase it's walking the non-existent eh_frame list. It's aborting in
teardown becuase the atexit(_fini) is walking into a 0xffffffff opcode.
I'll split the 1.66->1.67 patch into smaller pieces and see if I can
spot it. But I'll say your patch below is good, Jason.
RJL
Jason Merrill wrote:
> >>>>> Robert Lipe <robertl@sco.com> writes:
>
> >> Does this fix the problem?
>
> > No, becuase even in COFF there is an INIT_SECTION_ASM_OP so this
> > HAS_INIT_SECTION gets turned on and this code won't go away.
>
> That's the point of the patch; if COFF has HAS_INIT_SECTION, this code will
> go away. Note the '!'.
>
> Jason
>
> >> Index: libgcc2.c
> >> ===================================================================
> >> RCS file: /cvs/gcc/egcs/gcc/libgcc2.c,v
> >> retrieving revision 1.75
> >> diff -c -p -r1.75 libgcc2.c
> >> *** libgcc2.c 1999/10/14 13:38:01 1.75
> >> --- libgcc2.c 1999/11/01 22:58:46
> >> *************** __do_global_dtors ()
> >> *** 2866,2872 ****
> >> (*(p-1)) ();
> >> }
> >> #endif
> >> ! #ifdef EH_FRAME_SECTION
> >> {
> >> static int completed = 0;
> >> if (! completed)
> >> --- 2866,2872 ----
> >> (*(p-1)) ();
> >> }
> >> #endif
> >> ! #if defined (EH_FRAME_SECTION) && !defined (HAS_INIT_SECTION)
> >> {
> >> static int completed = 0;
> >> if (! completed)
More information about the Gcc-bugs
mailing list