[This bug was reported in gcc bugzilla [1]] ext/pb_ds/regression/hash_data_map_rand.cc from gcc testsuite fails on alphaev68-linux-gnu due to wrong link from FDE to LSDA. The assembler dump is available at [2].
To summarize the bug: When attached source is linked, the FDE for _ZN10__gnu_pbds6detail15gp_ht_map_data_INS_4test10basic_typeES3_NS2_4hashESt8equal_toIS3_EN9__gnu_cxx15throw_allocatorIS3_EELb0ENS2_27direct_mod_range_hashing_t_IS9_EENS2_21quadratic_probe_fn_t_IS3_S9_EENS_27hash_standard_resize_policyINS2_25hash_prime_size_policy_t_ENS2_33hash_load_check_resize_trigger_t_IS9_Lm1ELm8ELm1ELm2ELb1EEELb1EmEEEC2ERKSJ_ will miss its LSDA by 0x11 bytes: failed: 0x1201bb405 objdump --section=.gcc_except_table -s hash_data_map_rand.test 1201bb3f4 ff9b2d01 23a80148 c40400f0 0208b404 ..-.#..H........ >1201bb404 01880308 e00301d8 0304c404 009c0414 ................ 1201bb414 e80400e0 04040000 01000000 00000000 ................ 1201bb424 ff9b2101 17ac0208 d80401d8 0308fc03 ..!............. 1201bb434 05940404 a80400d0 04380000 7f000000 .........8...... 1201bb444 7f7d0000 00000000 ff9b4901 41d4015c .}........I.A..\ correct: 0x1201bb3f4 1201bb3e4 00ffff01 08240848 005c0400 00000000 .....$.H.\...... >1201bb3f4 ff9b2d01 23a80148 c40400f0 0208b404 ..-.#..H........ 1201bb404 01880308 e00301d8 0304c404 009c0414 ................ 1201bb414 e80400e0 04040000 01000000 00000000 ................ 1201bb424 ff9b2101 17ac0208 d80401d8 0308fc03 ..!............. 1201bb434 05940404 a80400d0 04380000 7f000000 .........8...... Please look for $LSFDE285 in the dump: $LSFDE285: .4byte $LEFDE285-$LASFDE285 $LASFDE285: .4byte $LASFDE285-$Lframe1 .4byte $LFB5858-. .4byte $LFE5858-$LFB5858 .uleb128 0x4 >>> .4byte $LLSDA5858-. .byte 0x4 .4byte $LCFI1142-$LFB5858 .byte 0xe The line that will fail to link to correct LSDA is marked with >>>. .end _ZN10__gnu_pbds6detail15gp_ht_map_data_INS_4test10basic_typeES3_NS2_4hashESt8equal_toIS3_EN9__gnu_cxx15throw_allocatorIS3_EELb0ENS2_27direct_mod_range_hashing_t_IS9_EENS2_21quadratic_probe_fn_t_IS3_S9_EENS_27hash_standard_resize_policyINS2_25hash_prime_size_policy_t_ENS2_33hash_load_check_resize_trigger_t_IS9_Lm1ELm8ELm1ELm2ELb1EEELb1EmEEEC2ERKSJ_ .section .gcc_except_table .align 2 $LLSDA5858: .byte 0xff .byte 0x9b .uleb128 $LLSDATT5858-$LLSDATTD5858 $LLSDATTD5858: .byte 0x1 .uleb128 $LLSDACSE5858-$LLSDACSB5858 $LLSDACSB5858: .uleb128 $LEHB373-$LFB5858 .uleb128 $LEHE373-$LEHB373 .uleb128 $L2169-$LFB5858 .uleb128 0x0 [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41058 [2] http://gcc.gnu.org/bugzilla/attachment.cgi?id=18456 -- Summary: LSDA section is linked off-by 0x11 from FDE Product: binutils Version: 2.19 Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassigned at sources dot redhat dot com ReportedBy: ubizjak at gmail dot com CC: bug-binutils at gnu dot org GCC build triplet: alphaev68-linux-gnu GCC host triplet: alphaev68-linux-gnu GCC target triplet: alphaev68-linux-gnu http://sourceware.org/bugzilla/show_bug.cgi?id=10579 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils