Age | Commit message (Collapse) | Author |
|
debug versions of uClibc with -O0, but libpthread/linuxthreads/spinlock.c
will not compile without at least -O1 optimization...
|
|
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.
|
|
do -O0 by default anyways, so leave this disabled for now.
|
|
|
|
a local override changing -O0 to -O1 only for that directory.
|
|
|
|
-Erik
|
|
from converting "PIC" to "__PIC__"
|
|
should instead have been testing for '#ifdef __PIC__'. This resulted in
NON-PIC code getting mixed into the shared library. Oops!!!
-Erik
|
|
|
|
-Erik
|
|
|
|
for different things.
|
|
from glibc 2.3 that is needed for pthreads to compile for SuperH.
|
|
|
|
front.
|
|
from dlopen()'ing glibc's libthread_db library...
|
|
|
|
|
|
from glibc 2.3. This should make threads much more efficient.
-Erik
|
|
|
|
I found a problem in uClibc in libpthread/linuxthres/condvar.c:
pthread_cond_timedwait never uses rt singals
uClibc has two implementations of pthread_cond_timewait -
pthread_cond_timedwait_relative_old using the "normal" signals and
pthread_cond_timedwait_relative_new usign the rt signals
(for kernels >= 2.2).
The function pointer pthread_cond_tw_rel is initialised with the old
function. In "__pthread_init_condvar(int)" this pointer is set to the new
function using rt signals, but "__pthread_init_condvar" is never called in
the uClibc.
The following patch solves this issue, so that __pthread_init_condvars
is called and the function pointer is always initialised with the correct
function.
regards,
christian
|
|
|
|
and in the files where variables live.
|
|
function. Without this fix, pthread_mutex_lock/pthread_mutex_unlock don't work
on mips.
|
|
locks before calling clone when under a debugger, and unlocks on success or
failure of clone when under a debugger.
|
|
needed to make gdb happy when debugging threadded apps.
|
|
LINUXTHREADS_PTHREAD_THREADS_MAX to properly point to "__pthread_threads_max".
|
|
and run. Seems to be working...
-Erik
|
|
|
|
configurable, so people who do not need or want ctor/dtor support
can disable it and make their binaries a little bit smaller.
-Erik
|
|
|
|
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
|
|
Attached are the changes we think is necessary in order to use user
defined stacksizes for each thread. When testing I forgot to lower the
PTHREAD_STACK_MIN to the lowest value used for the stacks, this caused
stranged reboots.
As said before, we are using uClinux 2.0.38 on a ARM7TDMI.
|
|
uClibc's libpthread to run on linux 2.0.x kernels which lack
poll() and therefore must use select() instead.
|
|
a few spots in our header files. In this change I do a
s/__thread/__thread_id/
so we no longer conflict with newer CVS versions of gcc (such as the
patched up gcc 3.2 included with RedHat 3.0).
-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.
|
|
|
|
|
|
we hose our code... hose our code... hose our code... this is the way we hose
our code... all thanks to glibc"
-Erik
|
|
things to happen. This makes it explicit, so pthread using apps are no longer
broken...
-Erik
|
|
|
|
-Erik
|
|
pthread stuff. Also, don't bother building libthread_db unless we
are debugging.
-Erik
|
|
if this is serious enough to warrent 0.9.14?
-Erik
|
|
In linuxthreads/errno.h the functions __errno_location and
__h_errno_location wasn't safe against calling before the
library is initialized.
|
|
-Erik
|
|
|
|
related to thread local storage.
-Erik
|
|
|