[Bug c++/23958] collect2: ld terminated with signal 10 [Bus error] linking libstdc++.sl.6

dave at hiauly1 dot hia dot nrc dot ca gcc-bugzilla@gcc.gnu.org
Wed Sep 21 23:02:00 GMT 2005


------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2005-09-21 23:02 -------
Subject: Re:  collect2: ld terminated with signal 10 [Bus error] linking libstdc++.sl.6

> The Ada bug number in the previous comment should be PR 23957, not 2397.

The enclosed patch fixes the linker segmentation fault for both PRs.
However, I'm not sure the call to assemble_external_libcall is in
the right place.  output_function_exception_table is called at the
end of the output for each function.  I think we should do this after
all functions have been output.  However, this probably doesn't matter
for the PA.

I started trying to look at the eh errors.  They are now about the
same for 32 and 64-bit hpux.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

Index: except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.317
diff -u -3 -p -r1.317 except.c
--- except.c	17 Sep 2005 20:58:14 -0000	1.317
+++ except.c	21 Sep 2005 22:52:15 -0000
@@ -3516,13 +3516,15 @@ output_function_exception_table (void)
   int have_tt_data;
   int tt_format_size = 0;
 
+  if (eh_personality_libfunc)
+    assemble_external_libcall (eh_personality_libfunc);
+
   /* Not all functions need anything.  */
   if (! cfun->uses_eh_lsda)
     return;
 
 #ifdef TARGET_UNWIND_INFO
   /* TODO: Move this into target file.  */
-  assemble_external_libcall (eh_personality_libfunc);
   fputs ("\t.personality\t", asm_out_file);
   output_addr_const (asm_out_file, eh_personality_libfunc);
   fputs ("\n\t.handlerdata\n", asm_out_file);


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23958



More information about the Gcc-bugs mailing list