summaryrefslogtreecommitdiff
path: root/libc/stdlib
AgeCommit message (Collapse)Author
2003-12-30Rework malloc. The new default implementation is based on dlmalloc from DougEric Andersen
Lea. It is about 2x faster than the old malloc-930716, and behave itself much better -- it will properly release memory back to the system, and it uses a combination of brk() for small allocations and mmap() for larger allocations. -Erik
2003-12-30Update and restore malloc-simple. Slow as molasses, but triviallyEric Andersen
simple and releases memory immediately when asked to do so. -Erik
2003-12-27Handle the app_fini stuff in exit without requiring atexit().Manuel Novoa III
This avoids pulling in all the malloc/free code for a simple true/false app.
2003-12-27Fix a long-standing bug with pthreads. A couple of linuxthreads filesManuel Novoa III
were including libc-lock.h which had a bunch of weak pragmas. Also, uClibc supplied a number of no-op weak thread functions even though many weren't needed. This combined result was that sometimes the functional versions of thread functions in pthread would not override the weaks in libc. While fixing this, I also prepended double-underscore to all necessary weak thread funcs in uClibc, and removed all unused weaks. I did a test build, but haven't tested this since these changes are a backport from my working tree. I did test the changes there and no longer need to explicitly add -lpthread in the perl build for perl to pass its thread self tests.
2003-11-02If realloc failed, we'd lose the pointer to the exit function table.Manuel Novoa III
2003-10-18Peter Kjellerstedt writes:Eric Andersen
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).
2003-10-17Doh!!!Eric Andersen
2003-10-16Do not set errno when they asked for size 0Eric Andersen
2003-10-16Code formatting cleanup.Miles Bader
2003-10-16Don't set errno if for zero SIZE returns.Miles Bader
Code formatting cleanup.
2003-09-22More fiddling with static free-areas: make sure both their size _and_Miles Bader
their alignment are correct.
2003-09-19Make sure we don't allocate too little space for static free-areasMiles Bader
because of our fiddling with alignment (because doing so is VERY BAD).
2003-09-19Add dependencies on header files.Miles Bader
2003-09-17Make sure static heaps are aligned correctly.Miles Bader
2003-09-06'extern inline' doesn't work... Use 'static inline'Eric Andersen
2003-09-06add missing prototypeEric Andersen
2003-09-06Fix errno values. Fix MALLOC_GLIBC_COMPAT handling in malloc/malloc.c,Eric Andersen
which was reversed. Provide more consistancy between implementations. Handle it when people do stupid things like malloc(-1);
2003-09-05mjn3 noticed we were missing seed48, which was odd since we hadEric Andersen
all the other *48 random functions.
2003-08-24Fix a few bugs in the new extended locale functions.Manuel Novoa III
Move stub gettext functions to a stub libintl to make switching in gnu gettext easier. Also add a few gnu-isms. Change to using hidden names with global weak aliases for the extended locale functions, as expected by libstd++. Slightly rework the locale data generation stuff to allow pregenerated locale data to be used with buildroot.
2003-08-08Add in a MALLOC_GLIBC_COMPAT option to let people decide if theyEric Andersen
want glibc style malloc(0) behavior
2003-08-01Add a new *scanf implementation, includeing the *wscanf functions.Manuel Novoa III
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.
2003-04-23Thierry De Corte notices that when UCLIBC_HAS_FLOAT is disabled, we must alsoEric Andersen
disable drand48, drand48_r, erand48, and erand48_r since they use floats.
2003-04-02(free_to_heap): Unlock the heap before returning in theMiles Bader
__UCLIBC_UCLINUX_BROKEN_MUNMAP__ case. Fix from YYang1@Winbond.com.tw.
2003-01-24Doh! Fix potential stack corruption caused by dynamic atexitEric Andersen
allocating size incorrectly.... -Erik
2003-01-23Kill the needless '#if 1'Eric Andersen
2003-01-23Update malloc behavior on malloc(0) to be consistant withEric Andersen
malloc-930716 behavior, i.e. return a NULL.
2002-11-22Ok... here's the summary:Manuel Novoa III
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.
2002-11-21Debugging tweaks.Miles Bader
2002-11-21Improve malloc debugging support.Miles Bader
2002-11-19Implement dynamic atexit handling. Adds a few bytes and a dependancyEric Andersen
on malloc (via realloc). -Erik
2002-11-07Remove atof from strtod.o...Manuel Novoa III
2002-11-07Okay, fix for atof _correctly_...Manuel Novoa III
2002-11-07Apparently I forgot to build atof...Manuel Novoa III
2002-10-31Ok, this commit is _huge_ and its gonna change the world. I'veEric Andersen
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
2002-10-29Fix a couple of 'restrict' bugs in mbstowcs and wcstombs.Manuel Novoa III
2002-10-22When UNIX98PTY_ONLY was false, but Unix 98 ptys were in fact working andEric Andersen
functional, everything would succeed but then we would return a failure due to a silly logic bug. This patch fixes it so things will work correctly regardless of the UNIX98PTY_ONLY setting. -Erik
2002-10-18Don't infinitely recurse when trying to grow __malloc_mmb_heap.Miles Bader
2002-10-17Fix malloc so it compiles and works when using pthreadsEric Andersen
-Erik
2002-10-15Use __heap_[un]lock instead of __malloc_[un]lock.Miles Bader
2002-10-15Get rid of old malloc lock stuff.Miles Bader
2002-10-15Fix locking to not deadlock when __UCLIBC_UCLINUX_BROKEN_MUNMAP__ is defined.Miles Bader
2002-10-09* Add support for uClinux's broken munmap, contingent onMiles Bader
__UCLIBC_UCLINUX_BROKEN_MUNMAP__ (which is currently not defined anywhere). This makes other cases a tiny bit less efficient too. * Move the malloc lock into the heap structure (locking is still done at the malloc level though, not by the heap functions). * Initialize the malloc heap to contain a tiny initial static free-area so that programs that only do a very little allocation won't ever call mmap.
2002-09-26A bug fix from Alexey V. Neyman:Eric Andersen
In case of vfork(), the parent was left with __exit_count of -1 and thus tried to find non-NULL value of __exit_function_table[-1].atexit, __exit_function_table[-2].atexit and call this function; of course, it leads to coredump.
2002-09-19Hide my personal #warning reminders. Add __wcschrnul, rename strchrnulManuel Novoa III
to __strchrnul, and add weak aliases for them.
2002-09-13(__heap_check_failure): New function.Miles Bader
(__heap_check): Add more checks. Use `__heap_check_failure'.
2002-09-09Remove malloc_simple from subdir list.Manuel Novoa III
2002-09-09(realloc): Record the correct size in the malloc header in the caseMiles Bader
where we extended the existing allocation, and got back more than we asked for from the heap.
2002-09-06Add #include <malloc.h> to silence warning.Manuel Novoa III
2002-09-06Initial checkin.Miles Bader
2002-09-06Update debugging hooks.Miles Bader