https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81317
Alex Potapenko <opotapenko at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |opotapenko at gmail dot com --- Comment #27 from Alex Potapenko <opotapenko at gmail dot com> --- I'd like to chime in to do two things: first suggest a (simple) way to reproduce this using buildroot (GCC 7.2.0), and then post a gdb backtrace in case there's something useful there (not sure how much different from Randy's log it is). 1. Reproducing. 1.1) Download and unpack https://buildroot.org/downloads/buildroot-2017.08.tar.bz2 1.2) Save https://raw.githubusercontent.com/Optware/Optware-ng/5b3cbfeb2bb2444d47ea15bcce3081ffbaea8046/sources/buildroot-ppc-603e/config as ".config" in buildroot root 1.3) Patch buildroot to make gcc debuggable: diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk index 213f3d7..4364e2a 100644 --- a/package/gcc/gcc-final/gcc-final.mk +++ b/package/gcc/gcc-final/gcc-final.mk @@ -41,6 +41,7 @@ define HOST_GCC_FINAL_CONFIGURE_CMDS (cd $(HOST_GCC_FINAL_SRCDIR) && rm -rf config.cache; \ $(HOST_CONFIGURE_OPTS) \ CFLAGS="$(HOST_CFLAGS)" \ + CXXFLAGS="-ggdb -O0" \ LDFLAGS="$(HOST_LDFLAGS)" \ $(HOST_GCC_FINAL_CONF_ENV) \ ./configure \ @@ -107,6 +108,8 @@ HOST_GCC_FINAL_CONF_ENV = \ HOST_GCC_FINAL_MAKE_OPTS += $(HOST_GCC_COMMON_MAKE_OPTS) +HOST_GCC_FINAL_MAKE_OPTS += STAGE_CFLAGS="-ggdb -O0" + # Make sure we have 'cc' define HOST_GCC_FINAL_CREATE_CC_SYMLINKS if [ ! -e $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-cc ]; then \ 1.4) Build the toolchain with `make`. You'll have the toolchain in "buildroot-2017.08/output/host" after build is done 2. Now, gdb log from built toolchain (note that test.c is the "smaller reproducer with manual work-around" uploaded by Randy): jenkins@u0:~/buildroot-2017.08$ gdb /home/jenkins/buildroot-2017.08/output/host/libexec/gcc/powerpc-buildroot-linux-gnu/7.2.0/cc1 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /home/jenkins/buildroot-2017.08/output/host/libexec/gcc/powerpc-buildroot-linux-gnu/7.2.0/cc1...done. (gdb) run -quiet -v -imultilib . -imultiarch powerpc-linux-gnu -isysroot /home/jenkins/buildroot-2017.08/output/host/powerpc-buildroot-linux-gnu/sysroot -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix test.c -quiet -dumpbase test.c -maltivec -mcpu=603e -auxbase test -version -o - Starting program: /home/jenkins/buildroot-2017.08/output/host/libexec/gcc/powerpc-buildroot-linux-gnu/7.2.0/cc1 -quiet -v -imultilib . -imultiarch powerpc-linux-gnu -isysroot /home/jenkins/buildroot-2017.08/output/host/powerpc-buildroot-linux-gnu/sysroot -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix test.c -quiet -dumpbase test.c -maltivec -mcpu=603e -auxbase test -version -o - GNU C11 (Buildroot 2017.08-g9362d96-dirty) version 7.2.0 (powerpc-buildroot-linux-gnu) compiled by GNU C version 5.4.0 20160609, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/home/jenkins/buildroot-2017.08/output/host/powerpc-buildroot-linux-gnu/sysroot/usr/local/include/powerpc-linux-gnu" ignoring nonexistent directory "/home/jenkins/buildroot-2017.08/output/host/powerpc-buildroot-linux-gnu/sysroot/usr/local/include" ignoring nonexistent directory "/home/jenkins/buildroot-2017.08/output/host/powerpc-buildroot-linux-gnu/sysroot/usr/include/powerpc-linux-gnu" #include "..." search starts here: #include <...> search starts here: /home/jenkins/buildroot-2017.08/output/host/lib/gcc/powerpc-buildroot-linux-gnu/7.2.0/include /home/jenkins/buildroot-2017.08/output/host/lib/gcc/powerpc-buildroot-linux-gnu/7.2.0/include-fixed /home/jenkins/buildroot-2017.08/output/host/lib/gcc/powerpc-buildroot-linux-gnu/7.2.0/../../../../powerpc-buildroot-linux-gnu/include /home/jenkins/buildroot-2017.08/output/host/powerpc-buildroot-linux-gnu/sysroot/usr/include End of search list. GNU C11 (Buildroot 2017.08-g9362d96-dirty) version 7.2.0 (powerpc-buildroot-linux-gnu) compiled by GNU C version 5.4.0 20160609, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 79638d26791d2fd1f2ddd744e299fa65 .file "test.c" test.c:52:3: warning: unnamed struct/union that defines no instances }; ^ test.c:55:11: warning: ‘struct random_data’ declared inside parameter list will not be visible outside of this definition or declaration struct random_data *__restrict __buf) ^~~~~~~~~~~ Program received signal SIGSEGV, Segmentation fault. 0x00000000009df5fb in store_expr_with_bounds (exp=0x7ffff6943740, target=0x7ffff6ac8fc0, call_param_p=0, nontemporal=false, reverse=false, btarget=0x7ffff6942630) at ../../gcc/expr.c:5575 5575 if (CONSTANT_P (temp) && GET_MODE (temp) == VOIDmode (gdb) bt full #0 0x00000000009df5fb in store_expr_with_bounds (exp=0x7ffff6943740, target=0x7ffff6ac8fc0, call_param_p=0, nontemporal=false, reverse=false, btarget=0x7ffff6942630) at ../../gcc/expr.c:5575 temp = 0x0 alt_rtl = 0x0 loc = 2147483665 __FUNCTION__ = "store_expr_with_bounds" #1 0x00000000009de7ee in expand_assignment (to=0x7ffff6942630, from=0x7ffff6943740, nontemporal=false) at ../../gcc/expr.c:5321 to_rtx = 0x7ffff6ac8fc0 result = 0x0 mode = V16QImode align = 4137801472 icode = 4294957840 __FUNCTION__ = "expand_assignment" #2 0x00000000008a1b1b in expand_call_stmt (stmt=0x7ffff6ad45a0) at ../../gcc/cfgexpand.c:2656 exp = 0x7ffff6943740 decl = 0x7ffff6a1d700 lhs = 0x7ffff6942630 builtin_p = true i = 2 __FUNCTION__ = "expand_call_stmt" #3 0x00000000008a4645 in expand_gimple_stmt_1 (stmt=0x7ffff6ad45a0) at ../../gcc/cfgexpand.c:3571 op0 = 0x7fffffffdcb0 __FUNCTION__ = "expand_gimple_stmt_1" #4 0x00000000008a4bfa in expand_gimple_stmt (stmt=0x7ffff6ad45a0) at ../../gcc/cfgexpand.c:3737 saved_location = 566396 last = 0x7ffff6ad8658 lp_nr = 0 __FUNCTION__ = "expand_gimple_stmt" #5 0x00000000008aae3b in expand_gimple_basic_block (bb=0x7ffff6a9b270, disable_tail_calls=false) at ../../gcc/cfgexpand.c:5744 def_p = 0x7ffff6ad4608 call_stmt = 0x7ffff6ad45a0 new_bb = 0x0 gsi = {ptr = 0x7ffff6ad45a0, seq = 0x7fffffffdd78, bb = 0x7ffff6a9b270} stmts = 0x7ffff6ad45a0 stmt = 0x7ffff6ad45a0 note = 0x7ffff6ad8658 last = 0x7ffff6942e58 e = 0x0 ei = {index = 2, container = 0x7ffff6a9b210} __FUNCTION__ = "expand_gimple_basic_block" elt = 0x0 #6 0x00000000008ac3d5 in (anonymous namespace)::pass_expand::execute (this=0x21fbba0, fun=0x7ffff6acd000) at ../../gcc/cfgexpand.c:6357 bb = 0x7ffff6a9b270 init_block = 0x7ffff6a9b548 ei = {index = 1, container = 0x7ffff6a9b070} e = 0x0 var_seq = 0x0 var_ret_seq = 0x0 i = 26 name = 0x0 __FUNCTION__ = "execute" blocks = {m_bitmap = 0x7fffffffdfb0} #7 0x0000000000ca27e4 in execute_one_pass (pass=0x21fbba0) at ../../gcc/passes.c:2465 todo_after = 0 gate_status = true __FUNCTION__ = "execute_one_pass" #8 0x0000000000ca2b47 in execute_pass_list_1 (pass=0x21fbba0) at ../../gcc/passes.c:2554 __FUNCTION__ = "execute_pass_list_1" #9 0x0000000000ca2bd0 in execute_pass_list (fn=0x7ffff6acd000, pass=0x21f8090) at ../../gcc/passes.c:2565 __FUNCTION__ = "execute_pass_list" #10 0x00000000008ef168 in cgraph_node::expand (this=0x7ffff6ad7000) at ../../gcc/cgraphunit.c:2042 saved_loc = 664512 __FUNCTION__ = "expand" #11 0x00000000008efa4f in output_in_order (no_reorder=false) at ../../gcc/cgraphunit.c:2285 max = 2 nodes = 0x21e8890 i = 0 pf = 0x0 pv = 0x0 pa = 0x0 __FUNCTION__ = "output_in_order" #12 0x00000000008f00ca in symbol_table::compile (this=0x7ffff693b000) at ../../gcc/cgraphunit.c:2529 No locals. #13 0x00000000008f031b in symbol_table::finalize_compilation_unit (this=0x7ffff693b000) at ../../gcc/cgraphunit.c:2625 No locals. #14 0x0000000000dbd01c in compile_file () at ../../gcc/toplev.c:492 No locals. #15 0x0000000000dbf670 in do_compile () at ../../gcc/toplev.c:2003 i = 1 #16 0x0000000000dbf947 in toplev::main (this=0x7fffffffe230, argc=30, argv=0x7fffffffe338) at ../../gcc/toplev.c:2137 __FUNCTION__ = "main" #17 0x0000000001611e37 in main (argc=30, argv=0x7fffffffe338) at ../../gcc/main.c:39 toplev = {m_use_TV_TOTAL = true, m_init_signals = true} Thanks. Hope this is useful, Alex