Hi. The bootstrap problems I've been having on the x86 Solaris machine, plus the reply from maintainer Rainer Orth that his builds have been succeeding were the impetus to investigate how 'git bisect' works. After a bit of fumbling around, including a rebuild of an apparently miscompiled 'git' binary, I was able to bisect the build problems to this commit:
4899856f3f2fdefaffa0d5355d8dae034da9ec26 is the first bad commit commit 4899856f3f2fdefaffa0d5355d8dae034da9ec26 Author: bernds <ber...@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Sep 23 10:04:33 2010 +0000 PR rtl-optimization/44374 * basic-block.h (enum bb_flags): Add BB_MODIFIED. * df-core.c (df_set_bb_dirty): Set it. * ifcvt.c (find_memory): Remove function. (dead_or_predicable): Use can_move_insns_across. * df.h (can_move_insns_across): Declare function. * cfgcleanup.c (block_was_dirty): New static variable. (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather than df_get_bb_dirty. (try_head_merge_bb): New static function. (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty is set. * df-problems.c: Include "target.h" (df_simulate_find_uses): New static function. (MEMREF_NORMAL, MEMREF_VOLATILE): New macros. (find_memory, find_memory_store): New static functions. (can_move_insns_across): New function. * Makefile.in (df-problems.o): Update dependencies. testsuite/ PR rtl-optimization/44374 * gcc.target/arm/headmerge-1.c: New test. * gcc.target/arm/headmerge-2.c: New test. * gcc.target/i386/headmerge-1.c: New test. * gcc.target/i386/headmerge-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tr...@164552 138bc75d-0d04-0410-961f-82ee72b054a4 :040000 040000 8eba3de7802f571601cb7092cfd546609f24086f c8b21579e48331ae0fa528fb89a228ea94211691 M gcc As my last successful build was on Sep. 22, date-wise this commit seems reasonable. Why this revision seems to trip the gcc_assert() on line 1881 of gcc/dwarf2out.c I don't know ... gcc_assert (REGNO (XEXP (src, 0)) == cfa.reg) Also, I've been using my own builds of the GNU Binutils 2.20.1 release assembler and linker for my GCC builds, and they've always worked well. Yesterday I tried a build using GNU 'as' and the Solaris 'ld' linker but my build failed with the same assertion. Here's my GCC configuration from the last successful build: $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/export/home/arth/local/libexec/gcc/i386-pc-solaris2.10/4.6.0/lto-wrapper Target: i386-pc-solaris2.10 Configured with: /home/ahaas/gnu/gcc.git/configure --prefix=/export/home/arth/local --enable-languages=c,c++,objc,fortran --disable-nls --with-gmp=/export/home/arth/local --with-mpfr=/export/home/arth/local --enable-checking=release --enable-threads=posix --with-gnu-as --with-as=/export/home/arth/local/bin/as --with-gnu-ld --with-ld=/export/home/arth/local/bin/ld --enable-libstdcxx-pch=no --enable-objc-gc --build=i386-pc-solaris2.10 Thread model: posix gcc version 4.6.0 20100922 (experimental) (GCC) The build issues on the sparc box were resolved once the patch to the 'gmon-sol2.c' file made it here. Today's builds worked without any problem. I'd be glad to test any patch(es) that may help identify and resolve the problem I'm seeing. As always, thanks to all the GCC developers. Art Haas