Curious why you are calling this a compiler bug. I am not a POSIX nerd, but it looks as if the old code was compiler independent, and now it is dependent on something.
Just one difference in od.c that shows a change in identifer conventions.
What is the origin of the _GL_* identifiers? "Unix" or "Not Unix"?
from diff -u ./coreutils-8.20/src/od.c ./coreutils-8.22/src/od.c
@@ -1050,8 +1056,8 @@
}
static void
-format_address_none (uintmax_t address ATTRIBUTE_UNUSED,
- char c ATTRIBUTE_UNUSED)
+format_address_none (uintmax_t address _GL_UNUSED,
+ char c _GL_UNUSED)
{
}
I also note that the identifiers involved go back to at least coreutils 8.9 in ./lib/ftoastr.h
So, this has been known, and managed, for a long time.
It is your code, so you can call it a bug if you wish - I am thinking, for now, that it is a dependency on something not found by default when using the xlc compilers. But I may be wrong :p@me