Keil Logo

ARMCC: Error: #869: could not set locale ""


Information in this knowledgebase article applies to:

  • ARMCC v5.x compiler toolchain

SYMPTOM

I could build my project using ARMCC v5.x compiler toolchain without issue. But after upgrading to Windows 10 version 1809, I got the following error when compiling every module in my project:

Error: #869: could not set locale "" to allow processing of multibyte characters

How can I resolve this error?

CAUSE

This issue is mainly caused by the new Windows "Regional format" option together with additional Windows language packs introduced in Windows 10 version 1809 update.

This compilation error occurs when

  • "none-standard" or "mixed" regional format is selected, e.g. English (Germany) or English (Danish) etc., as shown here: 
  • AND
  • meanwhile, a "none-standard" language pack is installed, e.g. English (Germany) or English (Danish) etc., as shown here: 

In this case ARMCC v5.x compiler cannot retrieve the system locale correctly, which will give the error above, no matter if source code contains multibyte characters or not.

RESOLUTION

Currently there are two solutions to resolve this issue:

  1. select a standard regional format and uninstall such a "none-standard" language pack and keep only the standard language packs in use in Windows, such as English (United Kingdom), English (United States), German (Germany) etc.
  2. use the compiler command line option --locale=... to manually set a default locale for ARMCC compiler. Note that if you also use armcc as preprocessor in your scatter file, you need to add this compiler option to the scatter file as well, such as:
     #! armcc -E --locale=UK
     ...
    

STATUS

ARMCC compiler might be updated in future to overcome this issue.

MORE INFORMATION

FORUM THREADS

The following Discussion Forum threads may provide information related to this topic.

Last Reviewed: Friday, February 1, 2019


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.