This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch,middle-end] PR middle-end/31322 - ld: Invalid symbol type for plabel
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc-patches at gcc dot gnu dot org
- Cc: mark at codesourcery dot com
- Date: Wed, 11 Apr 2007 19:48:40 -0400 (EDT)
- Subject: [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)
{