From 330b922f19394dccb7f3d00ed9dd0d4223787a28 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 25 Jul 2009 06:28:16 +0000 Subject: [PATCH] re PR bootstrap/40854 (Conflicting crc32 functions in libiberty and zlib) include/: PR bootstrap/40854 * libiberty.h (xcrc32): Rename from crc32. libiberty/: PR bootstrap/40854 * crc32.c (xcrc32): Rename from crc32. From-SVN: r150075 --- include/ChangeLog | 5 +++++ include/libiberty.h | 2 +- libiberty/ChangeLog | 5 +++++ libiberty/crc32.c | 15 ++++++++++++++- 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index 6aba7751e758..4bd5e81f66e9 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2009-07-24 Ian Lance Taylor + + PR bootstrap/40854 + * libiberty.h (xcrc32): Rename from crc32. + 2009-07-24 Ian Lance Taylor * libiberty.h (crc32): Declare. diff --git a/include/libiberty.h b/include/libiberty.h index e50ad64712ea..a7716e4a414f 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 516a90d58fcb..6033935edc30 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,8 @@ +2009-07-24 Ian Lance Taylor + + PR bootstrap/40854 + * crc32.c (xcrc32): Rename from crc32. + 2009-07-24 Ian Lance Taylor * crc32.c: New file. diff --git a/libiberty/crc32.c b/libiberty/crc32.c index 2171a3d1c7fb..c12916b5216a 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--) -- 2.43.5