This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch,middle-end] PR middle-end/31322 - ld: Invalid symbol type for plabel


:ADDPATCH middle-end:

The enclosed patch fixes PR middle-end/31322 (shared version of libstdc++
fails to link).  PA HP-UX requires correct types for code and data symbols.
The default is data.

We were incorrectly relying on except.c to provide the correct import
declaration for the personality function referenced in the call frame info.
This problem was exposed when Mark noticed that .globl directives were
being emitted for the personality function when an exception table wasn't
required, and revised output_function_exception_table() accordingly.

Tested on hppa2.0w-hp-hpux11.11 and hppa64-hp-hpux11.11 with no regressions.

Ok for trunk?

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

2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/31322
	* dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
	when a personality function is used.

Index: dwarf2out.c
===================================================================
--- dwarf2out.c	(revision 123710)
+++ dwarf2out.c	(working copy)
@@ -2304,6 +2304,7 @@
 	{
 	  *p++ = 'P';
 	  augmentation_size += 1 + size_of_encoded_value (per_encoding);
+	  assemble_external_libcall (eh_personality_libfunc);
 	}
       if (any_lsda_needed)
 	{


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]