Bug 27414 - IA64 bootstrap comparison failure, stage 2 -> 3
Summary: IA64 bootstrap comparison failure, stage 2 -> 3
Status: RESOLVED INVALID
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: build, wrong-code
Depends on:
Blocks:
 
Reported: 2006-05-04 06:48 UTC by ianw
Modified: 2006-05-05 03:36 UTC (History)
2 users (show)

See Also:
Host: ia64-linux-gnu
Target: ia64-linux-gnu
Build: ia64-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ianw 2006-05-04 06:48:56 UTC
Hi,

I just pulled from SVN and tried to build for IA64, and it fails with

Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
Bootstrap comparison failure!
./varasm.o differs
./gcc.o differs

--- /tmp/gcc-stage2.dump        2006-05-04 16:39:19.000000000 +1000
+++ /tmp/gcc-stage3.dump        2006-05-04 16:39:25.000000000 +1000
@@ -1,5 +1,5 @@

-./stage2-gcc/gcc.o:     file format elf64-ia64-little
+./stage3-gcc/gcc.o:     file format elf64-ia64-little

 Disassembly of section .text:

@@ -20178,19 +20178,19 @@
    1a1c6:      00 00 00 02 00 00                   nop.m 0x0
    1a1cc:      88 d3 fe 58                         br.call.sptk.many b0=7540 <process_command>;;
    1a1d0:      11 08 00 74 00 21       [MIB]       mov r1=r58
-   1a1d6:      d0 03 03 20 48 00                   mov r61=2144
+   1a1d6:      d0 03 00 16 48 00                   mov r61=1408
    1a1dc:      08 00 00 50                         br.call.sptk.many b0=1a1d0 <main+0xd50>;;
    1a1e0:      08 00 20 64 98 11       [MMI]       st8 [r50]=r8
    1a1e6:      00 00 00 02 00 20                   nop.m 0x0
    1a1ec:      00 d0 01 84                         mov r1=r58
-   1a1f0:      03 f8 81 01 10 24       [MII]       mov r63=2144
+   1a1f0:      03 f8 01 00 0b 24       [MII]       mov r63=1408
    1a1f6:      d0 03 20 00 42 c0                   mov r61=r8;;
    1a1fc:      07 08 00 90                         addl r62=0,r1;;
    1a200:      11 f0 01 7c 18 10       [MIB]       ld8 r62=[r62]
    1a206:      00 00 00 02 00 00                   nop.i 0x0
    1a20c:      08 00 00 50                         br.call.sptk.many b0=1a200 <main+0xd80>;;
    1a210:      08 08 00 74 00 21       [MMI]       mov r1=r58
-   1a216:      f0 10 02 00 48 00                   mov r15=66
+   1a216:      f0 58 01 00 48 00                   mov r15=43
    1a21c:      00 00 04 00                         nop.i 0x0
    1a220:      0b 08 02 00 00 21       [MMI]       mov r65=r0;;
    1a226:      e0 00 04 00 48 c0                   addl r14=0,r1

and the diff for varasm.o is really quite big

ianw@lime:/usr/src/gcc-svn-build$ diffstat /tmp/varasm.diff
  |42265 +++++++++++++++++++++++++++++++++++------------------------------------
 1 file changed, 21143 insertions(+), 21122 deletions(-)

I'm building on with gcc version 4.0.3 (Debian 4.0.3-1).

Thanks

-i
Comment 1 Andrew Pinski 2006-05-04 06:52:15 UTC
As I see it, some part of ia64.c (or the stack displacement code) is being miscompiling giving the different answers in the stack misplacement.
Comment 2 Steve Ellcey 2006-05-04 16:05:01 UTC
My nightly build based on SVN version 113509 bootstrapped fine.  What source/SVN version were you building?  I built using a GCC 4.0.2.
Comment 3 Pawel Sikora 2006-05-04 16:18:54 UTC
(In reply to comment #0)
> Hi,
> 
> I just pulled from SVN and tried to build for IA64, and it fails with
> 
> Comparing stages 2 and 3
> warning: ./cc1-checksum.o differs
> Bootstrap comparison failure!
> ./varasm.o differs
> ./gcc.o differs
> 

looks similiar to PR20586
Comment 4 ianw 2006-05-04 23:43:46 UTC
The SVN version was

ianw@lime:/usr/src/gcc-svn$ svn info
Path: .
URL: svn://gcc.gnu.org/svn/gcc/trunk
Repository Root: svn://gcc.gnu.org/svn/gcc
Repository UUID: 138bc75d-0d04-0410-961f-82ee72b054a4
Revision: 113504
Node Kind: directory
Schedule: normal
Last Changed Author: kargl
Last Changed Rev: 113502
Last Changed Date: 2006-05-04 07:24:11 +1000 (Thu, 04 May 2006)
Properties Last Updated: 2006-01-31 08:52:35 +1100 (Tue, 31 Jan 2006)

Unlike PR20586 I didn't do anything tricky with flags, etc.

My understanding was the system gcc built stage 1, which then built 2 which builds stage 3, so I would have thought the system gcc had less to do with a stage 2 -> 3 problem, though I could be wildly off base.

I'm trying to re-build it now a few different ways, and I'll see what happens.
Comment 5 ianw 2006-05-05 03:36:41 UTC
Ok, I rebuilt and it seems OK.

Thinking about it, in the failed tree I did stop it after about two minutes, because I forgot to do only --enable-languages=c.  So did make clean and reconfigured, which obviously got something messed up.

So if you see this problem, try building in a completely fresh tree first.