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