Age | Commit message (Collapse) | Author |
|
|
|
Should be standards compliant and with several optional features,
including support for hexadecimal float notation, locale awareness,
glibc-like locale-specific digit grouping with the `'' flag, and
positional arg support. I tested it pretty well (finding several
bugs in glibc's scanf in the process), but it is brand new so be
aware.
The *wprintf functions now support floating point output. Also, a
couple of bugs were squashed. Finally, %a/%A conversions are
now implemented.
Implement the glibc xlocale interface for thread-specific locale
support. Also add the various *_l(args, locale_t loc_arg) funcs.
NOTE!!! setlocale() is NOT threadsafe! NOTE!!!
The strto{floating point} conversion functions are now locale aware.
The also now support hexadecimal floating point notation.
Add the wcsto{floating point} conversion functions.
Fix a bug in mktime() related to dst. Note that unlike glibc's mktime,
uClibc's version always normalizes the struct tm before attempting
to determine the correct dst setting if tm_isdst == -1 on entry.
Add a stub version of the libintl functions. (untested)
Fixed a known memory leak in setlocale() related to the collation data.
Add lots of new config options (which Erik agreed to sort out :-),
including finally exposing some of the stripped down stdio configs.
Be careful with those though, as they haven't been tested in a
long time.
(temporary) GOTCHAs...
The ctype functions are currently incorrect for 8-bit locales. They
will be fixed shortly.
The ctype functions are now table-based, resulting in larger staticly
linked binaries. I'll be adding an option to use the old approach
in the stub locale configuration.
|
|
|
|
Add a few misc functions mentioned in time.h.
Revert davidm's change regarding using a define for the "/etc/TZ" path,
as this is eventually meant to be a configurable extension and not
unconditionally supported.
|
|
glob(...,pglob) used the GLOB_DOOFFS flag to reserve the first
pglob->gl_offs slots of pglob->gl_pathv, globfree(pglob) would attempt
to free the objects pointed to by those slots. If those objects were not
on the heap, the system would crash.
The attached patch fixes this.
Norm
|
|
It turns out that uClibc's syslog.c does not close sockets when
doing retries and when it exits due to errors. This patch fixes
it.
|
|
|
|
|
|
and so it actually works as intended allowing binaries on ARM to be
debugged.
-Erik
|
|
and did cause segfaults) by adjusting the working scandir.c to
the the 64 thing. Fix up potential for mismatches between the
libc and kernel dirent structures, which could also cause ugly
problems.
-Erik
|
|
staticly linked apps it entirely prevents destructors from running
unless atexit is called for some other reason. So if they enabled
ctor/dtor support we need to have a call to the real atexit for
dtors to work properly. If people don't want the extra 4k or so
of junk in their static apps, they should leave ctor/dtor support
disabled.
-Erik
|
|
a problem noticed by Jeff Mock. Sorry about that.
-Erik
|
|
-Erik
|
|
Also added outdigit support and (legacy) YESSTR/NOSTR support.
|
|
|
|
|
|
search.h in one directory.
|
|
Bug reported by Arne Bernin <arne@alamut.de> in regards to freeswan.
|
|
|
|
Hopefully locale support will build when cross compiling now. Collation is
still not supported, but that's what I'm currently working on. In the
next couple of days, I'll probably put up a couple of files for download
that will save people the trouble of generating all the glibc locales.
Added *wprintf functions, although they currently don't support floating
point. That will be fixed when I rewrite _dtostr... or possibly before.
Added the wcsto{inttype} functions.
Added iconv() and a mini iconv utility. The require locale support and
only provide for conversions involving the various unicode encodings
{ UCS-4*, UCS-2*, UTF-32*, UTF-16*, UTF-8 }, the 8-bit codesets built
with the locale data, and the internal WCHAR_T.
|
|
this change.
|
|
|
|
wide char support, even when the rest of uClibc was. This led
to anyone using regex segfaulting...
-Erik
|
|
Added some size/speed optimizations and integrated it into my locale
framework. Minimally tested at the moment, but the stub C-locale
version (which most people would probably be using) should be fine.
|
|
|
|
Require printf format strings to be valid multibyte strings beginning and
ending in their initial shift state, as per the stds.
Fixed a bug in _wchar_wcsntoutf8s(). Don't store wcs position if dst is NULL.
Also, introduce an awful hack into _wchar_wcsntoutf8s() and wcsrtombs() in
order to support %ls in printf. See comments below for details.
Change behaviour of wc<->mb functions when in the C locale. Now they do
a 1-1 map for the range 0x80-UCHAR_MAX. This is for backwards compatibility
and consistency with the stds requirements that a printf format string by
a valid multibyte string beginning and ending in it's initial shift state.
|
|
|
|
be more like glibc. Applications expecting to be able to
query locale settings should now work... at the cost of almost
doubling the size of the setlocale object code.
Fixed a bug in the internal fixed-size-string locale specifier code.
|
|
been working on a new config system on and off for about 6 months
now, but I've never been fully satisfied. Well, I'm finally am
happy with the new config system, so here it is. This completely
removes the old uClibc configuration system, and replaces it with
an entirely new system based on LinuxKernelConf, from
http://www.xs4all.nl/~zippel/lc/
As it turns out, Linus has just merged LinuxKernelConf into Linux
2.5.45, so it looks like I made the right choice.
I have thus far updated only x86. I'll be updating the other
architectures shortly.
-Erik
|
|
writing to STDERR_FILENO is insufficient, as the user could freopen
stderr. It is also insufficient to output to fileno(stderr) since
this would fail in the custom stream case. I didn't remove the
old code though, as it doesn't use stdio stream functionality
and is useful in debugging the stdio code.
|
|
default for now. From the comments...
* Defining __TIME_TZ_FILE causes tzset() to attempt to read the TZ value
* from the file /etc/TZ if the TZ env variable isn't set. The file contents
* must be the intended value of TZ, followed by a newline. No other chars,
* spacing, etc is allowed. As an example, an easy way for me to init
* /etc/TZ appropriately would be: echo CST6CDT > /etc/TZ
Also optimized timezone setting when the timezone string hasn't changed,
as well as fixed a minor buglet wrt SUSv3-allowed chars in TZ std and
dst fields.
|
|
|
|
work? Perhaps the wrapper bug miles fixed? Regardless this is very
much needed.
-Erik
|
|
how uClibc handles _init and _fini, allowing shared lib constructors and
destructors to initialize things in the correct sequence. Stefan ported the SH
architecture. I then ported x86, arm, and mips. x86 and arm are working fine,
but I don't think I quite got things correct for mips.
|
|
-Erik
|
|
and obstack_vprintf, but at least now the reiserfsprogs build.
|
|
to __strchrnul, and add weak aliases for them.
|
|
-Erik
|
|
using SOCK_STREAM if SOCK_DGRAM fails.
-Erik
|
|
need to be disabled when 'DOLFS' is disabled.
|
|
-Erik
|
|
when I accidentally changed them unconditionally into the 64 bit
versions... Oops.
-Erik
|
|
-Erik
|
|
-Erik
|
|
directly. Eliminate all the attendant baggage. Fix internal
types to match kernel types more closely.
-Erik
|
|
|
|
|
|
|
|
storage....
-Erik
|
|
needlessly. To do so increases the generated code size with bcc.
Eliminate duplicate define warnings in wstring.c.
Fix potentially broken preprocessor comparisons. The preprocessor
converts integers to maximal signed type, so inequality comparisons
involving UINTMAX_MAX, ULLONG_MAX, and (if no long long) ULONG_MAX
were potentially broken.
|