diff --git a/include/ChangeLog b/include/ChangeLog index 6aba7751e758c5befabb57308d2ba197951e1ec2..4bd5e81f66e9532e289e43cc540d6190a33f27a8 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2009-07-24 Ian Lance Taylor <iant@google.com> + + PR bootstrap/40854 + * libiberty.h (xcrc32): Rename from crc32. + 2009-07-24 Ian Lance Taylor <iant@google.com> * libiberty.h (crc32): Declare. diff --git a/include/libiberty.h b/include/libiberty.h index e50ad64712ea10f16dc5c1b6a893cc5c6e9a181e..a7716e4a414fb3856e76627ce7048ded7457a660 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -313,7 +313,7 @@ extern double physmem_total (void); extern double physmem_available (void); /* Compute the 32-bit CRC of a block of memory. */ -extern unsigned int crc32 (const unsigned char *, int, unsigned int); +extern unsigned int xcrc32 (const unsigned char *, int, unsigned int); /* These macros provide a K&R/C89/C++-friendly way of allocating structures with nice encapsulation. The XDELETE*() macros are technically diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 516a90d58fcb693485a2e24bc4d414390532f9a4..6033935edc3065d41e031fab3a7036344e173b0e 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,8 @@ +2009-07-24 Ian Lance Taylor <iant@google.com> + + PR bootstrap/40854 + * crc32.c (xcrc32): Rename from crc32. + 2009-07-24 Ian Lance Taylor <iant@google.com> * crc32.c: New file. diff --git a/libiberty/crc32.c b/libiberty/crc32.c index 2171a3d1c7fbe9e7611fafdc36310b1c57a7c569..c12916b5216a469d1b6a14e997aa72974783826f 100644 --- a/libiberty/crc32.c +++ b/libiberty/crc32.c @@ -150,12 +150,25 @@ protocol for the @samp{qCRC} command. In order to get the same results as gdb for a block of data, you must pass the first CRC parameter as @code{0xffffffff}. +This CRC can be specified as: + + Width : 32 + Poly : 0x04c11db7 + Init : parameter, typically 0xffffffff + RefIn : false + RefOut : false + XorOut : 0 + +This differs from the "standard" CRC-32 algorithm in that the values +are not reflected, and there is no final XOR value. These differences +make it easy to compose the values of multiple blocks. + @end deftypefn */ unsigned int -crc32 (const unsigned char *buf, int len, unsigned int init) +xcrc32 (const unsigned char *buf, int len, unsigned int init) { unsigned int crc = init; while (len--)