On 10-08-17 11:09, Eugene Yudin wrote:
The system library makefile handles option the following way (extra/locale/Makefile.in): $(locale_OUT)/wctables.h: $(locale_OUT)/gen_wctype @$(disp_gen) $(Q)for locale in $(call qstrip,$(UCLIBC_BUILD_MINIMAL_LOCALES)) en_US en_GB; do \ $< $(FLAG-locale-verbose) $$locale > $@ || \ $< $(FLAG-locale-verbose) $$locale.UTF-8 > $@ || \ $< $(FLAG-locale-verbose) $$locale.iso8859-1 > $@ && break; \ done
The program "gen_wctype" receives locale name as command line parameter. That application call the function setlocale() inside it. Some time ago that call was disabled to workaround bug with locales. That's the reason for the absence of problems in the past. Changes in the last release return this call.
So the problem really is that this command tries a number of locales, but not any of the locales actually present on the system?
I would propose to: - replace the "en_US en_GB" with "C C.UTF-8" since the latter is much more likely to be present on the host; - use '$(sort $(patsubst %.utf8,%,$(shell locale -a)))' as an ultimate fallback.
Does that sound reasonable? I didn't look at the history if this particular piece of code, I guess it must have gone through several detours already...
Regards, Arnout