compile time assertions need more uniqueness
At present, we do compile time assertions like this:
#define CTASSERT(x) _CTASSERT(x, __LINE__) #define _CTASSERT(x, y) __CTASSERT(x, y) #define __CTASSERT(x, y) \ typedef char __compile_time_assertion__ ## y [(x) ? 1 : -1] __unused
Which appeared with the OpenZFS crypto checksum support.
Unfortunately, this means that only the source line is used to provide uniqueness. One cannot have two assertions at the same line number in the same compilation unit, which includes any headers.