This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: SH: Bootstrap failure
- From: Ian Lance Taylor <ian at airs dot com>
- To: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: 31 Mar 2005 13:49:44 -0500
- Subject: Re: SH: Bootstrap failure
- References: <20050331.220356.130626408.kkojima@rr.iij4u.or.jp>
Kaz Kojima <kkojima@rr.iij4u.or.jp> writes:
> Current mainline fails for sh4-unknown-linux-gnu when building
> libstdc++v3 with duplicate labels:
>
> /exp/ldroot/dodes/xsh-gcc-orig/./gcc/xgcc -shared-libgcc -B/exp/ldroot/dodes/xsh-gcc-orig/./gcc/ -nostdinc++ -L/exp/ldroot/dodes/xsh-gcc-orig/sh4-unknown-linux-gnu/libstdc++-v3/src -L/exp/ldroot/dodes/xsh-gcc-orig/sh4-unknown-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/sh4-unknown-linux-gnu/bin/ -B/usr/local/sh4-unknown-linux-gnu/lib/ -isystem /usr/local/sh4-unknown-linux-gnu/include -isystem /usr/local/sh4-unknown-linux-gnu/sys-include -I/exp/ldroot/dodes/xsh-gcc-orig/sh4-unknown-linux-gnu/libstdc++-v3/include/sh4-unknown-linux-gnu -I/exp/ldroot/dodes/xsh-gcc-orig/sh4-unknown-linux-gnu/libstdc++-v3/include -I/exp/ldroot/dodes/ORIG/gcc/libstdc++-v3/libsupc++ -g -O2 -D_GNU_SOURCE -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -c ../../../../ORIG/gcc/libstdc++-v3/src/codecvt.cc -fPIC -DPIC -o .libs/codecvt.o
> /tmp/cc6YpO8d.s: Assembler messages:
> /tmp/cc6YpO8d.s:219: Error: symbol `.LBE14' is already defined
> /tmp/cc6YpO8d.s:220: Error: symbol `.LBE13' is already defined
>
> I've found that it started after an Ian's patch:
>
> 2005-03-30 Ian Lance Taylor <ian@airs.com>
>
> * final.c (final): Remove prescan parameter. Change all callers.
> (final_scan_insn): Remove prescan parameter. Change all callers.
>
> (http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02561.html)
>
> and it goes away if I revert a hunk of the patch:
>
> @@ -2383,21 +2357,11 @@ final_scan_insn (rtx insn, FILE *file, i
> emit them before the peephole. */
> if (next != 0 && next != NEXT_INSN (insn))
> {
> - rtx note, prev = PREV_INSN (insn);
> + rtx note;
>
> for (note = NEXT_INSN (insn); note != next;
> note = NEXT_INSN (note))
> - final_scan_insn (note, file, optimize, prescan, nopeepholes, seen);
> -
> - /* In case this is prescan, put the notes
> - in proper position for later rescan. */
> - note = NEXT_INSN (insn);
> - PREV_INSN (note) = prev;
> - NEXT_INSN (prev) = note;
> - NEXT_INSN (PREV_INSN (next)) = insn;
> - PREV_INSN (insn) = PREV_INSN (next);
> - NEXT_INSN (insn) = next;
> - PREV_INSN (next) = insn;
> + final_scan_insn (note, file, optimize, nopeepholes, seen);
> }
>
> /* PEEPHOLE might have changed this. */
>
> Perhaps the comment is out-dated but the code is still needed, isn't it?
Apparently it is, somehow. I think it would be OK for you to go ahead
and restore that part of the patch, or I can do it if you prefer.
Ian