IANAL but it appears the source (paper, not code) for both implementations in coreutils is free, I'm happy to write from scratch based off the papers:
Slice-by-8: "Novel Table Lookup-Based Algorithms for High-Performance CRC Generation"
PCLMUL: "Fast CRC Computation for Numeric Polynomials Using PCLMULQDQ Instruction"
I'm happy to leave the licensing decision to other people.
The current coreutils implemention would need modifying as it has the polynomial constants hardcoded, and I'm not sure what impact endianness has on a bit-reversed polynomial. If we want gnulib to have a generic implementation with CRC32 and CRC32-C with both normal and bit-reversed polynomials with big/little endian support then we'd need a proper test suite. What would you like the gnulib implementation to offer? My primary goal is to improve the speed for gzip, so I would want to simply add the new algorithms with hard-coded gzip parameters and get that shipped, and then as a next step we could make gnulib the generic performant reference CRC32 implementation shipping with standard polynomials but also having the option to work with any given polynomial.
What are your thoughts? What would you want to see the gnulib implementation look like?