p.s. to everyone following along... this change is a precursor of things
to come. It's a BIG deal. Make sure you have an up-to-date kernel
due to the recent TLS bug fix.
The big deal here is that we are now using TLS (thread locale storage)
in all binaries, even unthreaded ones. That is, we are starting to use
__thread for per-thread declarations like errno, whether the program
is threaded or not.
This will allow us to normalize libc and *GREATLY* reduce the complexity
of the thread libraries. e.g. things like 'strtok' won't have to be
avoided and won't have to be overridden by the thread library. The libc
version will 'just work'.
-Matt
Matthew Dillon
<dillon@xxxxxxxxxxxxx>
:joerg 2005/05/03 00:29:04 PDT
:
:DragonFly src repository
:
: Modified files:
: lib/libc/gen Makefile.inc errlst.c
: lib/libc/i386/sys cerror.S ptrace.S
: lib/libc/sys Makefile.inc
: lib/libc_r/sys Makefile.inc
: lib/libc_r/uthread Makefile.inc pthread_private.h
: uthread_init.c uthread_mutex.c
: lib/libthread_xu Makefile pthread.map
: lib/libthread_xu/thread Makefile.inc thr_mutex.c
: sys/sys errno.h
: Removed files:
: lib/libc/sys __error.c
: lib/libc_r/sys uthread_error.c
: lib/libc_r/uthread uthread_seterrno.c
: lib/libthread_xu/sys Makefile.inc thr_error.c
: lib/libthread_xu/thread thr_seterrno.c
: Log:
: Make errno a thread-local variable and remove the __error function.
: The handling of ceiling violations on mutexes can be improved, it
: currently needs two syscalls.
:...