In ./locale/programs/ld-monetary.c we have copied some text that appears in monetary_finish() which is taken from other categories, but which does not apply from a standards perspective. ISO C's localeconf function requires that various members that can be returned are allowed to be empty strings "", and so we should not issue warnings for those cases (7.11.2.3). This was discovered while harmonizing the C.UTF-8 locale: https://sourceware.org/pipermail/libc-alpha/2022-February/135955.html
*** Bug 28861 has been marked as a duplicate of this bug. ***
localedef -i C -f UTF-8 C.UTF-8 now fails with: [error] LC_MONETARY: value for field `mon_decimal_point' must not be an empty string [error] no output file produced because errors were issued It turns out we ignore errors during the glibc build (--quiet -c).
(In reply to Florian Weimer from comment #2) > localedef -i C -f UTF-8 C.UTF-8 > > now fails with: > > [error] LC_MONETARY: value for field `mon_decimal_point' must not be an > empty string > [error] no output file produced because errors were issued > > It turns out we ignore errors during the glibc build (--quiet -c). I have a patch in hand for this.
(In reply to Carlos O'Donell from comment #3) > (In reply to Florian Weimer from comment #2) > > localedef -i C -f UTF-8 C.UTF-8 > > > > now fails with: > > > > [error] LC_MONETARY: value for field `mon_decimal_point' must not be an > > empty string > > [error] no output file produced because errors were issued > > > > It turns out we ignore errors during the glibc build (--quiet -c). > > I have a patch in hand for this. Posted: https://sourceware.org/pipermail/libc-alpha/2022-February/136161.html
This is now fixed for glibc 2.36.