merge from gcc
authorDJ Delorie <dj@redhat.com>
Sat, 25 Jul 2009 11:28:20 +0000 (11:28 +0000)
committerDJ Delorie <dj@redhat.com>
Sat, 25 Jul 2009 11:28:20 +0000 (11:28 +0000)
include/libiberty.h
libiberty/ChangeLog
libiberty/crc32.c

index e50ad64..a7716e4 100644 (file)
@@ -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
index 516a90d..6033935 100644 (file)
@@ -1,5 +1,10 @@
 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.
        * Makefile.in: Rebuild dependencies.
        (CFILES): Add crc32.c.
index 2171a3d..c12916b 100644 (file)
@@ -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--)