I describe the current situation:
1) user enables locale support (BR2_TOOLCHAIN_BUILDROOT_LOCALE);
2) user optionally can set custom list of locales (BR2_GENERATE_LOCALE).

The option "BR2_GENERATE_LOCALE" is handled in "package/uclibc/uclibc.mk":
 UCLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))

 ifeq ($(UCLIBC_GENERATE_LOCALES),)
 # We need at least one locale
 UCLIBC_LOCALES = en_US
 else
 # Strip out the encoding part of locale names, if any 
 UCLIBC_LOCALES = \
         $(foreach locale,$(UCLIBC_GENERATE_LOCALES),\
         $(firstword $(subst .,$(space),$(locale))))
 endif
 ...
 define UCLIBC_LOCALE_CONFIG
         ...
         $(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_MINIMAL_LOCALE,$(@D)/.config)
         $(call KCONFIG_SET_OPT,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D)/.config)
         ...
 endef

We can see that with empty list buildroot passes "en_US" to uClibc-ng.

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.

On Wed, Aug 9, 2017 at 12:00 AM, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote:
Hello,

On Tue, 8 Aug 2017 18:52:14 +0200, André Hentschel wrote:

> > Please post output of the following commands:
> > $ locale
> > $ locale -a
> > $ cat /etc/os-release
> $ locale
> LANG=de_DE.utf8
> LANGUAGE=de_DE.utf8
> LC_CTYPE="de_DE.utf8"
> LC_NUMERIC="de_DE.utf8"
> LC_TIME="de_DE.utf8"
> LC_COLLATE="de_DE.utf8"
> LC_MONETARY="de_DE.utf8"
> LC_MESSAGES="de_DE.utf8"
> LC_PAPER="de_DE.utf8"
> LC_NAME="de_DE.utf8"
> LC_ADDRESS="de_DE.utf8"
> LC_TELEPHONE="de_DE.utf8"
> LC_MEASUREMENT="de_DE.utf8"
> LC_IDENTIFICATION="de_DE.utf8"
> LC_ALL=de_DE.utf8
>
> $ locale -a
> C
> C.UTF-8
> de_DE.utf8
> POSIX
>
> OS is Ubuntu 14.04.5 LTS
> Should I install the english locale?

As per the current Buildroot requirements, it shouldn't be needed. We
require one UTF-8 locale to be installed for uClibc to build its locale
data, but not specifically the en_US.UTF-8 locale or any other english
locale. If that has changed in uClibc, then we should adjust the
dependency in Buildroot accordingly, but it would be a bit annoying.

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com



--
Best regards,
Eugene