Solaris 8/SPARC bootstrap broken building 64-bit libgcc
Andrew Pinski
pinskia@physics.uc.edu
Fri Jul 4 13:22:00 GMT 2003
On Friday, Jul 4, 2003, at 08:51 US/Eastern, Rainer Orth wrote:
> Current mainline fails to bootstrap on bi-arch sparc-sun-solaris2.8:
>
> /vol/gcc/obj/gcc-3.4-20030704/8-gcc/gcc/xgcc
> -B/vol/gcc/obj/gcc-3.4-20030704/8-gcc/gcc/
> -B/vol/gcc/share/sparc-sun-solaris2.8/bin/
> -B/vol/gcc/share/sparc-sun-solaris2.8/lib/ -isystem
> /vol/gcc/share/sparc-sun-solaris2.8/include -isystem
> /vol/gcc/share/sparc-sun-solaris2.8/sys-include -O2 -DIN_GCC -W
> -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
> -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
> -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I/vol/gnu/src/gcc/gcc-dist/gcc
> -I/vol/gnu/src/gcc/gcc-dist/gcc/.
> -I/vol/gnu/src/gcc/gcc-dist/gcc/config
> -I/vol/gnu/src/gcc/gcc-dist/gcc/../include -m64 -DL__gcc_bcmp -c
> /vol/gnu/src/gcc/gcc-dist/gcc/libgcc2.c -o libgcc/sparcv9/__gcc_bcmp.o
> /vol/gcc/obj/gcc-3.4-20030704/8-gcc/gcc/xgcc
> -B/vol/gcc/obj/gcc-3.4-20030704/8-gcc/gcc/
> -B/vol/gcc/share/sparc-sun-solaris2.8/bin/
> -B/vol/gcc/share/sparc-sun-solaris2.8/lib/ -isystem
> /vol/gcc/share/sparc-sun-solaris2.8/include -isystem
> /vol/gcc/share/sparc-sun-solaris2.8/sys-include -O2 -DIN_GCC -W
> -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
> -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
> -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I/vol/gnu/src/gcc/gcc-dist/gcc
> -I/vol/gnu/src/gcc/gcc-dist/gcc/.
> -I/vol/gnu/src/gcc/gcc-dist/gcc/config
> -I/vol/gnu/src/gcc/gcc-dist/gcc/../include -m64 -DL_gcov -c
> /vol/gnu/src/gcc/gcc-dist/gcc/libgcov.c -o libgcc/sparcv9/_gcov.o
> /vol/gnu/src/gcc/gcc-dist/gcc/libgcc2.c: In function `__gcc_bcmp':
> /vol/gnu/src/gcc/gcc-dist/gcc/libgcc2.c:1519: error: head insn 102 for
> block 0 not found in the insn stream
> /vol/gnu/src/gcc/gcc-dist/gcc/libgcc2.c:1519: internal compiler error:
> Segmentation Fault
>
> The current state of mainline gets increasingly annoying: it's almost
> impossible to get any work done when at any random time at least one of
> your platforms doesn't bootstrap at all, while more often than not
> most of
> them don't. I spend more time tracking down the culprit patches than
> anything else ;-(
Actually the patch which causes this error is causing most platforms to
die while bootstrapping,
those who do not die via bootstrapping have regression.
No need to track this one down I as tracked it down as soon as the
regression tester died:
The patch which causes this is:
+Thu Jul 3 20:36:47 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * basic-block.h (create_basic_block, merge_blocks_nomove): Kill.
+ * cfgcleanup.c (merge_blocks): Rename to merge_blocks_move.
+ (merge_blocks_move_predecessor_nojumps,
+ merge_blocks_move_successor_nojumps): Use merge_blocks.
+ (try_optimize_cfg): Use merge_blocks_move.
+ * cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block.
+ (merge_blocks_nomove): Rename to rtl_merge_blocks.
+ (cfg_layout_create_basic_block): New.
+ (rtl_can_merge_blocks): New.
+ (cfg_layout_split_block): Do not alloc aux by hand.
+ * cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p,
+ merge_blocks.
+ (create_basic_block, can_merge_blocks_p, merge_blocks): New macros.
+ * cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand.
+ * cfgloopmanip.c (loop_split_edge_with): Likewise.
+ * ifcvt.c (merge_if_block): Use merge_blocks_nomove.
+
+ * basic-block.h (basic_block_def): Add field 'rbi'.
+ * bb-reorder.c (find_traces, rotate_loop, mark_bb_visited,
+ find_traces_1_round, copy_bb, connect_traces): Update use of rbi.
+ * cfg.c (entry_exit_blocks): Add new field.
+ * cfglayout.c: Include alloc-pool.h;
+ (cfg_layout_pool): New.
+ (record_effective_endpoints, fixup_reorder_chain,
+ fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use
+ of rbi.
+ (cfg_layout_initialize_rbi): New function.
+ (cfg_layout_initialize): Use it.
+ (cfg_layout_finalize): Clear rbi fields.
+ * cfglayout.h (RBI): Kill.
+ (cfg_layout_initialize_rbi): Declare.
+ * cfgloopmanip.c (copy_bbs): Use rbi.
+ (record_exit_edges): Likewise.
+ (duplicate_loop_to_header_edge): Likewise.
+ * cfgrtl.c (cfg_layout_create_basic_block): Use
+ cfg_layout_initialize_rbi.
+ (cfg_layout_split_block): Use rbi.
+ (cfg_layout_delete_block): Likewise.
+ * loop-init.c (loop_optimizer_finalize): Likewise.
+ * loop-unswitch.c (unswitch_loop): Likewise.
+ * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
+
+ * cfgrtl.c: Update comments.
+ (try_redirect_by_replacing_jump): New argument.
+ (redirect_branch_edge): Break out from ...
+ (rtl_redirect_edge_and_branch): ... this one.
+ (update_cfg_after_block_merging): Break out from ...
+ (rtl_merge_blocks): ... this one.
+ (cfg_layout_split_edge): New.
+ (cfg_layout_merge_blocks): New.
+ (cfg_layout_can_merge_blocks_p): New.
+ (cfg_layout_redirect_edge_and_branch): Reorganize.
+ (cfg_layout_rtl_cfg_hooks): Fill in.
+ (cfg_layout_delete_block): Kill barriers.
+ * cfganal.c (can_fallthru): Deal with exit blocks
+ * cfglayout.c (cfg_layout_function_header): New function
+ (record_effective_endpoints): Record function header.
+ (fixup_reorder_chain): Fixup dead jumptables; place header
+
+ * basic-block.h (CLEANUP_CFGLAYOUT): New flag.
+ * bb-reorder.c (cfg_layout_initialize): Update call.
+ * cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru
+ edges in cfglayout mode.
+ * cfglayout.c (cleanup_unconditional_jumps): Kill.
+ (cfg_layout_initialize): Kill agrument loops; use cfgcleanup.
+ * cfglayout.h (cfg_layout_initialize): Update prototype.
+ * cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill.
+ * cfgloopmanip.c (loop_split_edge_with): Use split_edge.
+ * flow.c (propagate_block): Do not crash when basic block ends
+ by first insn in the chain.
+ * loop-init.c (loop_optimizer_init): First enter cfglayout mode;
later
+ do loop discovery.
+ * tracer.c (tracer): Update call of cfg_layout_initialize.
Thanks,
Andrew Pinski
More information about the Gcc
mailing list