Christian Joensson wrote

> I haven't bootstrapped gcc on cygwin for a while now... but, using gcc
> cvs trunk LAST_UPDATED: Fri Aug 5 09:05:37 UTC 2005, I get comparison
> warnings...:

> warning: ./cc1-checksum.o differs
> warning: ./cc1obj-checksum.o differs
> warning: ./cc1plus-checksum.o differs

ld inserts an 4 byte timestamp into the "Image File Header" (offset 4
bytes) of pe-coff executables. I believe that genchecksum.c takes that
into account at line 46:

 /* Some executable formats have timestamps in the first 16 bytes, yuck.  */
  if (fseek (f, 16, SEEK_SET) != 0)

But ld also inserts a 4-byte checksum of its own further down, (offset
64 bytes into the Image Optional Header).  Changes in timestamps between
stages will cause changes in the Optional Header checksums. GCC's
genchecksum doesn't take that into account.

I'd  guess that the checksum diff for libgcc/_chkstk.o is due to
differences in the name of the preprocessor-generated temp *.s
assembly file in .stabstr section

Danny

Send instant messages to your online friends http://au.messenger.yahoo.com 

Reply via email to