[Bug target/35222] New: [4.3 Regression] EH output contains procedure label without P' selector
danglin at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Feb 16 22:46:00 GMT 2008
The link command for libstdc++.sl.6.10 fails:
libtool: link: /xxx/gnu/gcc/objdir/./gcc/xgcc -shared-libgcc
-B/xxx/gnu/gcc/objdir/./gcc -nostdinc++
-L/xxx/gnu/gcc/objdir/hppa1.1-hp-hpux10.20/threads/libstdc++-v3/src
-L/xxx/gnu/gcc/objdir/hppa1.1-hp-hpux10.20/threads/libstdc++-v3/src/.libs
-B/opt/gnu/gcc/gcc-4.3.0/hppa1.1-hp-hpux10.20/bin/
-B/opt/gnu/gcc/gcc-4.3.0/hppa1.1-hp-hpux10.20/lib/ -isystem
/opt/gnu/gcc/gcc-4.3.0/hppa1.1-hp-hpux10.20/include -isystem
/opt/gnu/gcc/gcc-4.3.0/hppa1.1-hp-hpux10.20/sys-include -threads -shared
-nostdlib -fPIC -Wl,+h -Wl,libstdc++.sl.6 -Wl,+b
-Wl,/opt/gnu/gcc/gcc-4.3.0/lib/threads -o .libs/libstdc++.sl.6.10
.libs/bitmap_allocator.o .libs/pool_allocator.o .libs/mt_allocator.o
.libs/codecvt.o .libs/compatibility.o .libs/complex_io.o .libs/ctype.o
.libs/debug.o .libs/functexcept.o .libs/hash.o .libs/hash_c++0x.o
.libs/globals_io.o .libs/hashtable.o .libs/hashtable_c++0x.o .libs/ios.o
.libs/ios_failure.o .libs/ios_init.o .libs/ios_locale.o .libs/limits.o
.libs/list.o .libs/debug_list.o .libs/locale.o .libs/locale_init.o
.libs/locale_facets.o .libs/localename.o .libs/stdexcept.o .libs/strstream.o
.libs/system_error.o .libs/tree.o .libs/allocator-inst.o .libs/concept-inst.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
.libs/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_members.o
.libs/time_members.o .libs/basic_file.o .libs/c++locale.o
.libs/libstdc++.lax/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_info.o
.libs/libstdc++.lax/libsupc++convenience.a/atexit_arm.o
.libs/libstdc++.lax/libsupc++convenience.a/bad_cast.o
.libs/libstdc++.lax/libsupc++convenience.a/bad_typeid.o
.libs/libstdc++.lax/libsupc++convenience.a/class_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++convenience.a/del_opv.o
.libs/libstdc++.lax/libsupc++convenience.a/del_opvnt.o
.libs/libstdc++.lax/libsupc++convenience.a/dyncast.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_alloc.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_arm.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_aux_runtime.o
.libs/libstdc++.lax/libsupc++convenience.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_personality.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_term_handler.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_terminate.o
.libs/libstdc++.lax/libsupc++convenience.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/libsupc++convenience.a/enum_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/function_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/fundamental_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/guard.o
.libs/libstdc++.lax/libsupc++convenience.a/new_handler.o
.libs/libstdc++.lax/libsupc++convenience.a/new_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/libstdc++.lax/libsupc++convenience.a/pmem_type_info.o
.libs/libstdc++.lax/libsupc++convenience.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/libsupc++convenience.a/vmi_class_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/vterminate.o
.libs/libstdc++.lax/libsupc++convenience.a/cp-demangle.o
-L/xxx/gnu/gcc/objdir/hppa1.1-hp-hpux10.20/threads/libstdc++-v3/src
-L/xxx/gnu/gcc/objdir/hppa1.1-hp-hpux10.20/threads/libstdc++-v3/src/.libs -lm
-L/xxx/gnu/gcc/objdir/./gcc/threads -L/xxx/gnu/gcc/objdir/./gcc -L/usr/ccs/lib
-L/opt/langtools/lib -lgcc_s -threads -threads -threads -threads -threads
-threads
/usr/ccs/bin/ld: Procedure labels require the P' selector - use the P' selector
on code symbol "$CODE$" in file .libs/pool_allocator.o
collect2: ld returned 1 exit status
make[8]: *** [libstdc++.la] Error 1
Looking at the assembler output for pool_allocator.cc, I see the following:
.SPACE $PRIVATE$
.SUBSPA $DATA$
.align 4
.EXPORT
_GLOBAL__F_.._.._.._.._.._gcc_libstdc___v3_src_pool_allocator.cc
_79739C6C_A6218F4D,DATA
_GLOBAL__F_.._.._.._.._.._gcc_libstdc___v3_src_pool_allocator.cc_79739C6C_A6218F
4D:
L$frame0001:
.word L$ECIE0001-L$SCIE0001
L$SCIE0001:
.word 0x0
.byte 0x1
.STRING "zPL\x00"
.uleb128 0x1
.sleb128 4
.byte 0x2
.uleb128 0x8
.byte 0x50
.align 4
.word P%__gxx_personality_v0
.byte 0x0
.byte 0xc
.uleb128 0x1e
.uleb128 0x0
.align 4
L$ECIE0001:
L$SFDE0005:
.word L$EFDE0005-L$ASFDE0005
L$ASFDE0005:
.word L$ASFDE0005-L$frame0001
.word L$FB0098
.word L$FE0098-L$FB0098
.uleb128 0x4
...
L$FB0098 is a function label:
.SPACE $TEXT$
.NSUBSPA $CODE$
.align 4
.EXPORT
_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj,ENTRY,PRIV_
LEV=3,ARGW0=GR,ARGW1=GR,RTNVAL=GR
L$FB0098:
_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEj:
.PROC
.CALLINFO FRAME=0,NO_CALLS
.ENTRY
ldo 7(%r25),%r28
This is the cause of the error. I'm not sure why we are missing
the P' selector in 4.3, but this works in 4.2.
--
Summary: [4.3 Regression] EH output contains procedure label
without P' selector
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
GCC build triplet: hppa1.1-hp-hpux10.20
GCC host triplet: hppa1.1-hp-hpux10.20
GCC target triplet: hppa1.1-hp-hpux10.20
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35222
More information about the Gcc-bugs
mailing list