bunch (hundreds) of comparisons between signed and unsigned,

That's just the compiler being hyper or mingw setting hyper flags.  We build  with one warning (an explicit #warning that I added) on Mac with -Wall.

4821 gets the warning count down to about 10,  mostly in generated or third party code

That should help the forest to trees ratio.
It's total "zero value add" busywork to run through all the formats and add trailing NULLs and zeros to the declarations to avoid a warning

Which I (stupidly) started before changing my mind and just muzzling the dumb warnings.