This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Solaris 8/SPARC bootstrap broken building 64-bit libgcc
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- Cc: Andrew Pinski <pinskia at physics dot uc dot edu>, gcc at gcc dot gnu dot org
- Date: Fri, 4 Jul 2003 08:58:49 -0400
- Subject: Re: Solaris 8/SPARC bootstrap broken building 64-bit libgcc
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