https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69438
Bug ID: 69438 Summary: ICE while trying to cross-compile V8 for AArch64 Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: abe_skolnik at yahoo dot com Target Milestone: --- Created attachment 37441 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37441&action=edit V8 AArch64 ICE reduced test case preprocessed on Ubuntu 14 host The essence of this bug is: try to: compile V8 using bleeding-edge GCC for trunk cross-compiled on an AMD64-ISA PC to AArch64 expected result is: either good compilation or an error message actual result is: compiler ICEs while trying to compile AArch64-specific part of V8 Details: using GCC 5.3.0 vanilla for host compilers, only using bleeding-edge for cross-compilation GCC trunk as of 2015-Oct.-01, with Git hash 2438858: still good GCC trunk as of 2015-Nov.-11, with Git hash 3f12088: bad GCC trunk as of 2015-Dec.-03, with Git hash 2438858: still bad V8 version: 4.9.274 Re-tested with GCC from 2016-Jan.-12 with Git hash "e1a390d" and V8 version 4.9.354, as well as with GCC from 2016-Jan.-22 with Git hash "a44dd069" and V8 version 4.9.354; the result is still the same ICE for both. GREPable string for the ICE: "src/arm64/frames-arm64.cc:.* internal compiler error: in assign_temp, at function.c:961" Attaching a reduced test case that was reduced automatically by the "multidelta" program from <http://delta.tigris.org/>. The essence of the V8 build invocation is: GCC_V8_KLUDGE_FLAGS="-Wno-error -fno-delete-null-pointer-checks" # kludges for badness in V8 source code export CFLAGS="$GCC_V8_KLUDGE_FLAGS" export CXXFLAGS="$GCC_V8_KLUDGE_FLAGS" export CC_host=< ... as needed as per your installation ...> export CXX_host=< ... as needed as per your installation ...> export CC_target=< ... as needed as per your installation ...> export CXX_target=<... as needed as per your installation ...> make V=1 GYPFLAGS='-Dclang=0 -Dhost_clang=0' arm64.release URLs ---- https://github.com/v8/v8/releases/tag/4.9.354 https://github.com/v8/v8/blob/4.9.354/src/arm64/frames-arm64.cc#L20 Full ICE result --------------- ../src/arm64/frames-arm64.cc: In static member function 'static v8::internal::Register v8::internal::JavaScriptFrame::constant_pool_pointer_register()': ../src/arm64/frames-arm64.cc:20:10: internal compiler error: in assign_temp, at function.c:961 Register JavaScriptFrame::constant_pool_pointer_register() { ^~~~~~~~~~~~~~~ 0xa2215c assign_temp(tree_node*, int, int) ../../gcc/function.c:961 0x8b2611 expand_call(tree_node*, rtx_def*, int) ../../gcc/calls.c:2559 0x9b72d2 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10575 0x8c350c expand_expr ../../gcc/expr.h:256 0x8c350c expand_call_stmt ../../gcc/cfgexpand.c:2648 0x8c350c expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3536 0x8c350c expand_gimple_stmt ../../gcc/cfgexpand.c:3702 0x8c5801 expand_gimple_tailcall ../../gcc/cfgexpand.c:3749 0x8c5801 expand_gimple_basic_block ../../gcc/cfgexpand.c:5685 0x8cac06 execute ../../gcc/cfgexpand.c:6323 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report.