https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79462
Bug ID: 79462 Summary: sh: Stack smashing detected when building __ashrdi3 in libgcc Product: gcc Version: 7.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: dhowells at redhat dot com Target Milestone: --- Stack smashing is detected on some host arches (i686, ppc64, for example, but not x86_64) when building libgcc for an sh-target cross compiler: /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/xgcc -B/builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/ -B/usr/sh-linux-gnu/bin/ -B/usr/sh-linux-gnu/lib/ -isystem /usr/sh-linux-gnu/include -isystem /usr/sh-linux-gnu/sys-include -g -O2 -Wall -fexceptions -m2 -O2 -g -O2 -Wall -fexceptions -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -DNO_FPSCR_VALUES -w -Wno-sync-nand -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -fpic -DNO_FPSCR_VALUES -w -Wno-sync-nand -I. -I. -I../../.././gcc -I../../../../gcc-7.0.1-20170209/libgcc -I../../../../gcc-7.0.1-20170209/libgcc/. -I../../../../gcc-7.0.1-20170209/libgcc/../gcc -I../../../../gcc-7.0.1-20170209/libgcc/../include -DHAVE_CC_TLS -o _ashrdi3.o -MT _ashrdi3.o -MD -MP -MF _ashrdi3.dep -DL_ashrdi3 -c ../../../../gcc-7.0.1-20170209/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS *** stack smashing detected ***: /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1 terminated ======= Backtrace: ========= /lib64/libc.so.6(+0x969b8)[0x3fff947069b8] /lib64/libc.so.6(__fortify_fail+0x54)[0x3fff947d2fc4] /lib64/libc.so.6(__stack_chk_fail+0x20)[0x3fff947d2f60] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z14gen_cbranchdi4P7rtx_defS0_S0_S0_+0xd4)[0x10b904c4] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z23emit_cmp_and_jump_insnsP7rtx_defS0_8rtx_codeS0_12machine_modeiS0_i+0x170)[0x105e4b70] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z23do_compare_rtx_and_jumpP7rtx_defS0_8rtx_codei12machine_modeS0_P14rtx_code_labelS4_i+0x214)[0x102ff1a4] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x105ed30c] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z12expand_binop12machine_mode9optab_tagP7rtx_defS2_S2_i13optab_methods+0x1d54)[0x105ec814] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z12expand_binop12machine_mode9optab_tagP7rtx_defS2_S2_i13optab_methods+0x5b8)[0x105eb078] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x1039e220] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z18expand_expr_real_2P12separate_opsP7rtx_def12machine_mode15expand_modifier+0x3aa8)[0x103ca268] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z18expand_expr_real_1P9tree_nodeP7rtx_def12machine_mode15expand_modifierPS2_b+0x2f54)[0x103b6d14] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x103c5f7c] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z17expand_assignmentP9tree_nodeS0_b+0x5b8)[0x103c2e68] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x102743e0] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x10276178] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x1027ca08] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z16execute_one_passP8opt_pass+0x334)[0x10611e54] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x10612e04] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_Z17execute_pass_listP8functionP8opt_pass+0x38)[0x10612ea8] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_ZN11cgraph_node6expandEv+0x170)[0x102b85d0] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x102ba0e4] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_ZN12symbol_table25finalize_compilation_unitEv+0x1ec)[0x102bc61c] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1[0x1071e04c] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(_ZN6toplev4mainEiPPc+0xfcc)[0x101199ec] /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/./gcc/cc1(main+0x54)[0x1011bb34] /lib64/libc.so.6(+0x22b20)[0x3fff94692b20] /lib64/libc.so.6(__libc_start_main+0xb8)[0x3fff94692d18] ======= Memory map: ======== 10000000-11100000 r-xp 00000000 fc:05 9181442 /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/gcc/cc1 11100000-11130000 r--p 010f0000 fc:05 9181442 /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/gcc/cc1 11130000-11140000 rw-p 01120000 fc:05 9181442 /builddir/build/BUILD/gcc-7.0.1-20170209/sh-linux-gnu/gcc/cc1 11140000-11220000 rw-p 00000000 00:00 0 1000d640000-1000d880000 rw-p 00000000 00:00 0 [heap] 3fff92660000-3fff94670000 rw-p 00000000 00:00 0 3fff94670000-3fff94880000 r-xp 00000000 fc:05 5123537 /usr/lib64/libc-2.25.so 3fff94880000-3fff94890000 r--p 00200000 fc:05 5123537 /usr/lib64/libc-2.25.so 3fff94890000-3fff948a0000 rw-p 00210000 fc:05 5123537 /usr/lib64/libc-2.25.so 3fff948a0000-3fff948c0000 r-xp 00000000 fc:05 5123183 /usr/lib64/libgcc_s-7-20170204.so.1 3fff948c0000-3fff948d0000 r--p 00010000 fc:05 5123183 /usr/lib64/libgcc_s-7-20170204.so.1 3fff948d0000-3fff948e0000 rw-p 00020000 fc:05 5123183 /usr/lib64/libgcc_s-7-20170204.so.1 3fff948e0000-3fff949c0000 r-xp 00000000 fc:05 5123547 /usr/lib64/libm-2.25.so 3fff949c0000-3fff949d0000 r--p 000d0000 fc:05 5123547 /usr/lib64/libm-2.25.so 3fff949d0000-3fff949e0000 rw-p 000e0000 fc:05 5123547 /usr/lib64/libm-2.25.so 3fff949e0000-3fff94bf0000 r-xp 00000000 fc:05 5123732 /usr/lib64/libstdc++.so.6.0.23 3fff94bf0000-3fff94c00000 r--p 00200000 fc:05 5123732 /usr/lib64/libstdc++.so.6.0.23 3fff94c00000-3fff94c10000 rw-p 00210000 fc:05 5123732 /usr/lib64/libstdc++.so.6.0.23 3fff94c10000-3fff94c30000 r-xp 00000000 fc:05 5123681 /usr/lib64/libz.so.1.2.11 3fff94c30000-3fff94c40000 r--p 00010000 fc:05 5123681 /usr/lib64/libz.so.1.2.11 3fff94c40000-3fff94c50000 rw-p 00000000 00:00 0 3fff94c50000-3fff94ce0000 r-xp 00000000 fc:05 5123699 /usr/lib64/libgmp.so.10.3.2 3fff94ce0000-3fff94cf0000 r--p 00080000 fc:05 5123699 /usr/lib64/libgmp.so.10.3.2 3fff94cf0000-3fff94d00000 rw-p 00090000 fc:05 5123699 /usr/lib64/libgmp.so.10.3.2 3fff94d00000-3fff94d80000 r-xp 00000000 fc:05 5123736 /usr/lib64/libmpfr.so.4.1.5 3fff94d80000-3fff94d90000 r--p 00070000 fc:05 5123736 /usr/lib64/libmpfr.so.4.1.5 3fff94d90000-3fff94da0000 rw-p 00000000 00:00 0 3fff94da0000-3fff94dc0000 r-xp 00000000 fc:05 5123805 /usr/lib64/libmpc.so.3.0.0 3fff94dc0000-3fff94dd0000 r--p 00010000 fc:05 5123805 /usr/lib64/libmpc.so.3.0.0 3fff94dd0000-3fff94de0000 rw-p 00000000 00:00 0 3fff94de0000-3fff94df0000 r-xp 00000000 fc:05 5123545 /usr/lib64/libdl-2.25.so 3fff94df0000-3fff94e00000 r--p 00000000 fc:05 5123545 /usr/lib64/libdl-2.25.so 3fff94e00000-3fff94e20000 rw-p 00000000 00:00 0 3fff94e20000-3fff94e40000 r-xp 00000000 00:00 0 [vdso] 3fff94e40000-3fff94e80000 r-xp 00000000 fc:05 5123530 /usr/lib64/ld-2.25.so 3fff94e80000-3fff94e90000 r--p 00030000 fc:05 5123530 /usr/lib64/ld-2.25.so 3fff94e90000-3fff94ea0000 rw-p 00040000 fc:05 5123530 /usr/lib64/ld-2.25.so 3fffc9510000-3fffc9540000 rw-p 00000000 00:00 0 [stack] ../../../../gcc-7.0.1-20170209/libgcc/libgcc2.c: In function '__ashrdi3': ../../../../gcc-7.0.1-20170209/libgcc/libgcc2.c:472:15: internal compiler error: Aborted w.s.low = uu.s.high >> -bm; ~~~~~~~~^~~~~~~~~~~~~~~~~~ 0x1071dba3 crash_signal ../../gcc-7.0.1-20170209/gcc/toplev.c:333 0x10b904c3 gen_cbranchdi4(rtx_def*, rtx_def*, rtx_def*, rtx_def*) ../../gcc-7.0.1-20170209/gcc/config/sh/sh.md:1333 0x105e4b6f insn_gen_fn::operator()(rtx_def*, rtx_def*, rtx_def*, rtx_def*) const ../../gcc-7.0.1-20170209/gcc/recog.h:303 0x105e4b6f emit_cmp_and_jump_insn_1 ../../gcc-7.0.1-20170209/gcc/optabs.c:3995 0x105e4b6f emit_cmp_and_jump_insns(rtx_def*, rtx_def*, rtx_code, rtx_def*, machine_mode, int, rtx_def*, int) ../../gcc-7.0.1-20170209/gcc/optabs.c:4052 0x102ff1a3 do_compare_rtx_and_jump(rtx_def*, rtx_def*, rtx_code, int, machine_mode, rtx_def*, rtx_code_label*, rtx_code_label*, int) ../../gcc-7.0.1-20170209/gcc/dojump.c:1144 0x105ed30b expand_doubleword_shift ../../gcc-7.0.1-20170209/gcc/optabs.c:695 0x105ec813 expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods) ../../gcc-7.0.1-20170209/gcc/optabs.c:1426 0x105eb077 expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods) ../../gcc-7.0.1-20170209/gcc/optabs.c:1293 0x1039e21f expand_shift_1 ../../gcc-7.0.1-20170209/gcc/expmed.c:2443 0x103ca267 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc-7.0.1-20170209/gcc/expr.c:9179 0x103b6d13 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc-7.0.1-20170209/gcc/expr.c:9730 0x103c5f7b expand_normal ../../gcc-7.0.1-20170209/gcc/expr.h:282 0x103c5f7b store_field ../../gcc-7.0.1-20170209/gcc/expr.c:6833 0x103c2e67 expand_assignment(tree_node*, tree_node*, bool) ../../gcc-7.0.1-20170209/gcc/expr.c:5169 0x102743df expand_gimple_stmt_1 ../../gcc-7.0.1-20170209/gcc/cfgexpand.c:3639 0x102743df expand_gimple_stmt ../../gcc-7.0.1-20170209/gcc/cfgexpand.c:3737 0x10276177 expand_gimple_basic_block ../../gcc-7.0.1-20170209/gcc/cfgexpand.c:5744 0x1027ca07 execute ../../gcc-7.0.1-20170209/gcc/cfgexpand.c:6357