This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]