Build fails with an error in setlocale.h

Matthew Wahab
Tue Aug 16 13:59:00 GMT 2016

On 16/08/16 14:27, Corinna Vinschen wrote:
> Hi Matthew,
> On Aug 16 12:57, Matthew Wahab wrote: > On 16/08/16 12:39, Matthew Wahab wrote:
>>> On 16/08/16 11:48, Corinna Vinschen wrote:
>>>> On Aug 16 11:37, Matthew Wahab wrote:
>>>>> I get a build failure when cross-compiling for aarch64-none-elf, the error
>>>>> message is
>>>>> ----
>>>>> newlib-cygwin/newlib/libc/stdlib/../locale/setlocale.h:206:38: error:
>>>>> unknown type name 'locale_t'; did you mean 'clockid_t'?
>>>>>            size_t, size_t, mbstate_t *, locale_t);
>>>>>                                         ^~~~~~~~
>>>>>                                         clockid_t
>>>> Can you test that the above patch works for you?  I'll check it in then.
>>> Thanks for the patch. It fixes that failure but there's another in localeconv.c:
>> I've also tried with the second patch and still get the build errors.
> I applied a couple of patches meant to fix the locale stuff on non-Cygwin
> targets.  Please give them a try.

Thanks for that. The patches worked but now there are failures to do with 
_C_monetary_locale, _C_numeric_locale, _C_time_locale and _C_messages_locale. e.g.
newlib-cygwin/newlib/libc/stdlib/../locale/setlocale.h: In function 
newlib-cygwin/newlib/libc/stdlib/../locale/setlocale.h:329:10: error: 
incompatible types when returning type 'const struct lc_monetary_T' but 'const 
struct lc_monetary_T *' was expected
    return _C_monetary_locale;
There are a number of these, it looks like they're all in setlocale.h.


More information about the Newlib mailing list