Age | Commit message (Collapse) | Author |
|
|
|
Port the generic optimized string funcs from glibc, with some tweaks
to cut their size a little. The main change is making memmove
call memcpy for forward copying to trim redundant code.
Make use of both the generic and arch-specific speed-optimized string
funcs configurable. Arch-specific take precedence over generic,
and generic takes precedence over basic size-optimized uClibc funcs.
|
|
This patch introduces optimized versions of memcpy and memset for
frv.
|
|
Hi Erik
I have had some fun trying to optimize memcpy, memset and memmove for
PPC. There are only boot tested, but I don't expect any problems :)
Read the comments in powerpc/string.c for more info.
Patch is relative to libc/string
Jocke
|
|
The subject says it all.. optimized memset/memcpy/strcpy, lifted from SuperH's
glibc tree.
|
|
do seem to make noticable speed improvement...
-Erik
|
|
will always win
|
|
|
|
things like mmx/3dnow/etc. These are not inline, and will therefore not be as
fast as modifying the headers to use inlines (and cannot therefore do tricky
things when dealing with const memory). But they should (I hope!) be faster
than their generic equivalents....
More importantly, these should provide a good example for others to follow when
adding arch specific optimizations.
-Erik
|
|
rm.patch:
* Define $(RM) as rm -f in Rules.mak and test/Rules.mak
(this is the same definition as gmake uses by default).
* Change all occurrences of rm and rm -f into $(RM).
|
|
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.
|
|
|
|
Also added outdigit support and (legacy) YESSTR/NOSTR support.
|
|
strcoll is an alias for strcmp.
strxfrm is an alias for strlcpy.
wcscoll is an alias for wcscmp.
wcsxfrm is implemented as a wchar version of strlcpy.
Real locale-dependent implementations are coming soon.
|
|
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
|
|
'wcschrnul.o' appeares two times in MOBJW2
|
|
to __strchrnul, and add weak aliases for them.
|
|
In my opinion, this is a complete waste of good memory and is only
done to avoid the anticipated whining by people who think this libary
is named uCglibc. At some point this may become a configurable option.
And even then, it may not be available in all configs... for instance
when system error messages become locale-dependent.
|
|
supported platforms. Adjust _susv3_strerror_r function to deal with
this. Also fix an error in strerror() wrt invalid errnos.
NOTE: sys_errlist and sys_nerr are no longer supported!!!
|
|
|
|
|
|
strlcat and strlcpy.
|
|
Implemented unformatted wide i/o functions. (ungetwc still needs testing)
Fix a few bugs in wchar.c.
Modifications for bcc/elks support.
|
|
-Erik
|
|
before but unrolls the func calls and thereby eliminates some steps and some
bytes. Now adds just 40 bytes to .text.
-Erik
|
|
LC_TIME, LC_MONETARY, and LC_MESSAGES for the SUSv3 items. Also,
nl_langinfo() when real locale support is enabled.
New implementation of ctype.h.
New implementation of wctype.h.
New implementation of most of the string functions (smaller).
New implementation of the wcs/wmem functions. These are untested, but
they're also just preprocessor-modified versions ot the corresponding
str/mem functions.
Tweaked qsort and new bsearch.
Stuff still pending:
stdlib.h and wchar.h mb<->wc functions. I actually have working
versions of the stdlib ones, but the reentrant versions from
wchar.h require some reworking.
Basic replacement and translit support for wc->mb conversions.
(groundwork laid).
Simple-minded collate support such as was provided by the previous
locale implementation. (mostly done -- 8-bit codesets only)
Shared mmaping of the locale data and strerror message text.
|
|
|
|
|
|
-Erik
|
|
|
|
|
|
|
|
|
|
|
|
tree is less messy now (which helps), all libraries are placed into
uClibc/lib when compiling, all libraries now use a consistant mechanism
for being built, all libraries use a consistant naming scheme where the
lib name includes the uClibc version number, which makes ldconfig
happy and willing to work with us.
-Erik
|
|
|
|
there and already implemented as wrapper funcs. And so
just the header files were wrong. Anyway, axe the old
index and rindex.
-Erik
|
|
|
|
|
|
|
|
|
|
|
|
-Erik
|
|
|
|
|
|
|
|
|
|
.comment, saving a lot of space in the resultant binaries...
-Erik
|
|
|
|
|