public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
@ 2007-03-22 23:57 danglin at gcc dot gnu dot org
2007-03-23 0:06 ` [Bug middle-end/31322] [4.3 Regression] " pinskia at gcc dot gnu dot org
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-03-22 23:57 UTC (permalink / raw)
To: gcc-bugs
/test/gnu/gcc/objdir/./gcc/xgcc -shared-libgcc -B/test/gnu/gcc/objdir/./gcc -no
stdinc++ -L/test/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src
-L/test/g
nu/gcc/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src/.libs
-B/opt/gnu/gcc/gcc-4.
3.0/hppa2.0w-hp-hpux11.11/bin/
-B/opt/gnu/gcc/gcc-4.3.0/hppa2.0w-hp-hpux11.11/li
b/ -isystem /opt/gnu/gcc/gcc-4.3.0/hppa2.0w-hp-hpux11.11/include -isystem
/opt/g
nu/gcc/gcc-4.3.0/hppa2.0w-hp-hpux11.11/sys-include -shared -nostdlib -fPIC
-Wl,+
h -Wl,libstdc++.sl.6 -Wl,+b -Wl,/opt/gnu/gcc/gcc-4.3.0/lib -o
.libs/libstdc++.sl
.6.9 .libs/bitmap_allocator.o .libs/pool_allocator.o .libs/mt_allocator.o
.lib
s/codecvt.o .libs/compatibility.o .libs/complex_io.o .libs/ctype.o
.libs/debug.o
.libs/debug_list.o .libs/functexcept.o .libs/globals_io.o .libs/ios.o
.libs/ios
_failure.o .libs/ios_init.o .libs/ios_locale.o .libs/limits.o .libs/list.o
.libs
/locale.o .libs/locale_init.o .libs/locale_facets.o .libs/localename.o
.libs/std
except.o .libs/strstream.o .libs/tree.o .libs/allocator-inst.o
.libs/concept-ins
t.o .libs/fstream-inst.o .libs/ext-inst.o .libs/ios-inst.o
.libs/iostream-inst.o
.libs/istream-inst.o .libs/istream.o .libs/locale-inst.o .libs/misc-inst.o
.lib
s/ostream-inst.o .libs/sstream-inst.o .libs/streambuf-inst.o .libs/streambuf.o
.
libs/string-inst.o .libs/valarray-inst.o .libs/wlocale-inst.o
.libs/wstring-inst
.o .libs/atomicity.o .libs/codecvt_members.o .libs/collate_members.o
.libs/ctype
_members.o .libs/messages_members.o .libs/monetary_members.o
.libs/numeric_membe
rs.o .libs/time_members.o .libs/basic_file.o .libs/c++locale.o
.libs/libstdc++.l
ax/libmath.a/stubs.o .libs/libstdc++.lax/libmath.a/signbit.o
.libs/libstdc++.lax
/libmath.a/signbitf.o
.libs/libstdc++.lax/libsupc++convenience.a/array_type_inf
o.o .libs/libstdc++.lax/libsupc++convenience.a/bad_cast.o
.libs/libstdc++.lax/li
bsupc++convenience.a/bad_typeid.o
.libs/libstdc++.lax/libsupc++convenience.a/cla
ss_type_info.o .libs/libstdc++.lax/libsupc++convenience.a/del_op.o
.libs/libstdc
++.lax/libsupc++convenience.a/del_opnt.o
.libs/libstdc++.lax/libsupc++convenienc
e.a/del_opv.o .libs/libstdc++.lax/libsupc++convenience.a/del_opvnt.o
.libs/libst
dc++.lax/libsupc++convenience.a/dyncast.o
.libs/libstdc++.lax/libsupc++convenien
ce.a/eh_alloc.o .libs/libstdc++.lax/libsupc++convenience.a/eh_arm.o
.libs/libstd
c++.lax/libsupc++convenience.a/eh_aux_runtime.o
.libs/libstdc++.lax/libsupc++con
venience.a/eh_call.o .libs/libstdc++.lax/libsupc++convenience.a/eh_catch.o
.libs
/libstdc++.lax/libsupc++convenience.a/eh_exception.o
.libs/libstdc++.lax/libsupc
++convenience.a/eh_globals.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_perso
nality.o .libs/libstdc++.lax/libsupc++convenience.a/eh_term_handler.o
.libs/libs
tdc++.lax/libsupc++convenience.a/eh_terminate.o
.libs/libstdc++.lax/libsupc++con
venience.a/eh_throw.o .libs/libstdc++.lax/libsupc++convenience.a/eh_type.o
.libs
/libstdc++.lax/libsupc++convenience.a/eh_unex_handler.o
.libs/libstdc++.lax/libs
upc++convenience.a/enum_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/f
unction_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/fundamental_type_
info.o .libs/libstdc++.lax/libsupc++convenience.a/guard.o
.libs/libstdc++.lax/li
bsupc++convenience.a/new_handler.o
.libs/libstdc++.lax/libsupc++convenience.a/ne
w_op.o .libs/libstdc++.lax/libsupc++convenience.a/new_opnt.o
.libs/libstdc++.lax
/libsupc++convenience.a/new_opv.o
.libs/libstdc++.lax/libsupc++convenience.a/new
_opvnt.o .libs/libstdc++.lax/libsupc++convenience.a/pbase_type_info.o
.libs/libs
tdc++.lax/libsupc++convenience.a/pmem_type_info.o
.libs/libstdc++.lax/libsupc++c
onvenience.a/pointer_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/pure
.o .libs/libstdc++.lax/libsupc++convenience.a/si_class_type_info.o
.libs/libstdc
++.lax/libsupc++convenience.a/tinfo.o
.libs/libstdc++.lax/libsupc++convenience.a
/tinfo2.o .libs/libstdc++.lax/libsupc++convenience.a/vec.o
.libs/libstdc++.lax/l
ibsupc++convenience.a/vmi_class_type_info.o
.libs/libstdc++.lax/libsupc++conveni
ence.a/vterminate.o .libs/libstdc++.lax/libsupc++convenience.a/cp-demangle.o
-
L/test/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src
-L/test/gnu/gcc/obj
dir/hppa2.0w-hp-hpux11.11/libstdc++-v3/src/.libs -lm ../libmath/.libs/libmath.a
-lm ../libsupc++/.libs/libsupc++convenience.a -lm -L/test/gnu/gcc/objdir/./gcc
-
L/usr/ccs/lib -L/opt/langtools/lib -lgcc_s -lgcc_s -lm -lgcc_s -lgcc_s -lc
/usr/ccs/bin/ld: Invalid symbol type for plabel (.libs/debug_list.o,
__gxx_perso
nality_v0).
collect2: ld returned 1 exit status
make[4]: *** [libstdc++.la] Error 1
-bash-2.05b$ ./xgcc -B./ -v
Reading specs from ./specs
Target: hppa2.0w-hp-hpux11.11
Configured with: ../gcc/configure --with-gnu-as --with-as=/opt/gnu/bin/as
--enable-shared --disable-nls --with-local-prefix=/opt/gnu
--prefix=/opt/gnu/gcc/gcc-4.3.0 --enable-debug=no --enable-threads=posix
--with-mpfr=/opt/gnu/gcc/gcc-4.3.0 --with-gmp=/opt/gnu/gcc/gcc-4.3.0
--disable-libmudflap --enable-languages=c,c++,objc,fortran,ada
Thread model: posix
gcc version 4.3.0 20070322 (experimental)
-bash-2.05b$ cat LAST_UPDATED
Wed Mar 21 21:02:45 EDT 2007
Thu Mar 22 01:02:45 UTC 2007 (revision 123123M)
Looking at the assembly output for debug_list, I see the following in the
EH data:
.word P%__gxx_personality_v0
There's no .IMPORT directive for __gxx_personality_v0, so the symbol type
defaults to DATA which is wrong. If I was to guess, I suspect that the
change that introduced this problem was:
2007-03-19 Mark Mitchell <mark@codesourcery.com>
* except.c (output_function_exception_table): Do not reference the
EH personality routine for functions that do not require an
exception table.
--
Summary: ld: Invalid symbol type for plabel (.libs/debug_list.o,
__gxx_personality_v0).
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
GCC build triplet: hppa2.0w-hp-hpux11.11
GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
@ 2007-03-23 0:06 ` pinskia at gcc dot gnu dot org
2007-04-06 15:59 ` sje at cup dot hp dot com
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-03-23 0:06 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |build
Summary|ld: Invalid symbol type for |[4.3 Regression] ld: Invalid
|plabel (.libs/debug_list.o, |symbol type for plabel
|__gxx_personality_v0). |(.libs/debug_list.o,
| |__gxx_personality_v0).
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
2007-03-23 0:06 ` [Bug middle-end/31322] [4.3 Regression] " pinskia at gcc dot gnu dot org
@ 2007-04-06 15:59 ` sje at cup dot hp dot com
2007-04-06 16:53 ` dave at hiauly1 dot hia dot nrc dot ca
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: sje at cup dot hp dot com @ 2007-04-06 15:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from sje at cup dot hp dot com 2007-04-06 16:59 -------
I am seeing this on my HPPA build as well. David sent me a patch for it
off-list and that patch fixed the build problem for me.
--
sje at cup dot hp dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |sje at cup dot hp dot com
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2007-04-06 16:59:41
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
2007-03-23 0:06 ` [Bug middle-end/31322] [4.3 Regression] " pinskia at gcc dot gnu dot org
2007-04-06 15:59 ` sje at cup dot hp dot com
@ 2007-04-06 16:53 ` dave at hiauly1 dot hia dot nrc dot ca
2007-04-06 21:09 ` mark at codesourcery dot com
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-04-06 16:53 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from dave at hiauly1 dot hia dot nrc dot ca 2007-04-06 17:53 -------
Subject: Re: [4.3 Regression] ld: Invalid symbol type for plabel
(.libs/debug_list.o, __gxx_personality_v0).
> I am seeing this on my HPPA build as well. David sent me a patch for it
> off-list and that patch fixed the build problem for me.
The patch just reverts Mark's change. The previous code papers over the
real problem. The reference to the __gxx_personality_v0 personality
function occurs in the eh frame table and not in the exception table.
Looking at this a bit, I think the fix is to add
if (eh_personality_libfunc)
assemble_external_libcall (eh_personality_libfunc);
to output_call_frame_info in dwarf2out.c.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
` (2 preceding siblings ...)
2007-04-06 16:53 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-04-06 21:09 ` mark at codesourcery dot com
2007-04-06 22:44 ` dave at hiauly1 dot hia dot nrc dot ca
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: mark at codesourcery dot com @ 2007-04-06 21:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from mark at codesourcery dot com 2007-04-06 22:09 -------
Subject: Re: [4.3 Regression] ld: Invalid symbol type
for plabel (.libs/debug_list.o, __gxx_personality_v0).
dave at hiauly1 dot hia dot nrc dot ca wrote:
> Looking at this a bit, I think the fix is to add
>
> if (eh_personality_libfunc)
> assemble_external_libcall (eh_personality_libfunc);
>
> to output_call_frame_info in dwarf2out.c.
That makes sense to me. I think you could do it just in the
for_eh/eh_personality case here:
> if (eh_personality_libfunc)
> {
> *p++ = 'P';
> augmentation_size += 1 + size_of_encoded_value (per_encoding);
> }
That would emit the reference only in situations where we're actually
going to need the personality routine. The reason for my earlier change
was that we were referencing it even when we'd optimized away all of the
EH information in the module. I'm sorry this broke HP-UX; let me know
if I can help.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
` (3 preceding siblings ...)
2007-04-06 21:09 ` mark at codesourcery dot com
@ 2007-04-06 22:44 ` dave at hiauly1 dot hia dot nrc dot ca
2007-04-06 23:02 ` mark at codesourcery dot com
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2007-04-06 22:44 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from dave at hiauly1 dot hia dot nrc dot ca 2007-04-06 23:44 -------
Subject: Re: [4.3 Regression] ld: Invalid symbol type for plabel
(.libs/debug_list.o, __gxx_personality_v0).
> That would emit the reference only in situations where we're actually
> going to need the personality routine. The reason for my earlier change
> was that we were referencing it even when we'd optimized away all of the
> EH information in the module. I'm sorry this broke HP-UX; let me know
> if I can help.
I must admit I'm to blame for this ;(
Importing functions that aren't used doesn't cause a problem on HP-UX,
but I can see that it might cause the routine to be unnecessarily included
in an executable on other systems.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
` (4 preceding siblings ...)
2007-04-06 22:44 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2007-04-06 23:02 ` mark at codesourcery dot com
2007-04-12 11:55 ` patchapp at dberlin dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: mark at codesourcery dot com @ 2007-04-06 23:02 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from mark at codesourcery dot com 2007-04-07 00:01 -------
Subject: Re: [4.3 Regression] ld: Invalid symbol type
for plabel (.libs/debug_list.o, __gxx_personality_v0).
dave at hiauly1 dot hia dot nrc dot ca wrote:
> ------- Comment #4 from dave at hiauly1 dot hia dot nrc dot ca 2007-04-06 23:44 -------
> Subject: Re: [4.3 Regression] ld: Invalid symbol type for plabel
> (.libs/debug_list.o, __gxx_personality_v0).
>
>> That would emit the reference only in situations where we're actually
>> going to need the personality routine. The reason for my earlier change
>> was that we were referencing it even when we'd optimized away all of the
>> EH information in the module. I'm sorry this broke HP-UX; let me know
>> if I can help.
>
> I must admit I'm to blame for this ;(
>
> Importing functions that aren't used doesn't cause a problem on HP-UX,
> but I can see that it might cause the routine to be unnecessarily included
> in an executable on other systems.
Yes, the standard behavior for GNU as/ld on ELF systems is that a .globl
emission in the .as file becomes an undefined symbol in the ELF object
file, and the linker then pulls in files from an archive to satisfy that
reference at link-time, even if there are no relocations against the
symbol. One could reasonably argue that the linker shouldn't do this,
but it does, and changing it might break things; people may well be
relying on this trick.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
` (5 preceding siblings ...)
2007-04-06 23:02 ` mark at codesourcery dot com
@ 2007-04-12 11:55 ` patchapp at dberlin dot org
2007-04-14 0:18 ` danglin at gcc dot gnu dot org
2007-04-14 0:24 ` danglin at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: patchapp at dberlin dot org @ 2007-04-12 11:55 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from patchapp at dberlin dot org 2007-04-12 12:55 -------
Subject: Bug number PR middle-end/31322
A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00611.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
` (6 preceding siblings ...)
2007-04-12 11:55 ` patchapp at dberlin dot org
@ 2007-04-14 0:18 ` danglin at gcc dot gnu dot org
2007-04-14 0:24 ` danglin at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-04-14 0:18 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from danglin at gcc dot gnu dot org 2007-04-14 01:17 -------
Subject: Bug 31322
Author: danglin
Date: Sat Apr 14 01:17:41 2007
New Revision: 123806
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123806
Log:
PR middle-end/31322
* dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
when a personality function is used.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug middle-end/31322] [4.3 Regression] ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0).
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
` (7 preceding siblings ...)
2007-04-14 0:18 ` danglin at gcc dot gnu dot org
@ 2007-04-14 0:24 ` danglin at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: danglin at gcc dot gnu dot org @ 2007-04-14 0:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from danglin at gcc dot gnu dot org 2007-04-14 01:24 -------
Fixed.
--
danglin at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31322
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-04-14 0:24 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-22 23:57 [Bug middle-end/31322] New: ld: Invalid symbol type for plabel (.libs/debug_list.o, __gxx_personality_v0) danglin at gcc dot gnu dot org
2007-03-23 0:06 ` [Bug middle-end/31322] [4.3 Regression] " pinskia at gcc dot gnu dot org
2007-04-06 15:59 ` sje at cup dot hp dot com
2007-04-06 16:53 ` dave at hiauly1 dot hia dot nrc dot ca
2007-04-06 21:09 ` mark at codesourcery dot com
2007-04-06 22:44 ` dave at hiauly1 dot hia dot nrc dot ca
2007-04-06 23:02 ` mark at codesourcery dot com
2007-04-12 11:55 ` patchapp at dberlin dot org
2007-04-14 0:18 ` danglin at gcc dot gnu dot org
2007-04-14 0:24 ` danglin at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).