On Tue, 15 Oct 2013, Martin Pelikan wrote:
> my laptop now has libcxx working (most of the tests pass, but I haven't
> checked what is missing from the C++ runtime). The steps required are:
>
> - port xlocale(3) from FreeBSD -- this is what this patch does
Interesting: this goes beyond POSIX.2008 in many places. strtold_l()?
This stuff required for the implementation of the C++11 standard library?
Or just general random programs? Should be in the implementation
namespace either way, with weak aliases in the latter case.
> - use ld(1) from binutils-2.17 to avoid linker errors (for some reason it
> links symbols between first two object files and discards them for the
> rest of the command line)
Can you describe the specific case where this happens? Part of linking
something against libcxxrt/libcxx?
> Obviously, our locale support still sucks, this patch is mostly
> providing the API for filling the blanks later.
How much did the ramdisks grow by when you built release with this?
Having just freed up a bunch of space on the ramdisks, I'll be pissed if
we squander it all immediately.
> @@ -106,14 +108,14 @@ strtod
> #endif
> #ifdef USE_LOCALE /*{{*/
> #ifdef NO_LOCALE_CACHE
> - char *decimalpoint = localeconv()->decimal_point;
> + char *decimalpoint = localeconv_l(loc)->decimal_point;
> int dplen = strlen(decimalpoint);
> #else
> char *decimalpoint;
> static char *decimalpoint_cache;
> static int dplen;
With threads supported, NO_LOCALE_CACHE has to be defined, no?
> Index: locale/___runetype_mb.c
> ===================================================================
> RCS file: /cvs/src/lib/libc/locale/___runetype_mb.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 ___runetype_mb.c
> --- locale/___runetype_mb.c 5 Dec 2012 23:20:00 -0000 1.2
> +++ locale/___runetype_mb.c 15 Oct 2013 12:42:22 -0000
> @@ -66,3 +66,4 @@ ___runetype_mb(wint_t c)
>
> return (0U);
> }
> +
Heh.
Philip Guenther