summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/pthread.map
Commit message (Collapse)AuthorAgeFilesLines
* Repo copy libpthreads to libkse.obrien2007-10-091-370/+0
| | | | | | This introduces the WITHOUT_LIBKSE nob, and changes WITHOUT_LIBPTHREADS to mean with neither threading libs. Approved by: re(kensmith)
* Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.deischen2007-05-131-368/+0
| | | | | | | | | | Warning, after symbol versioning is enabled, going back is not easy (use WITHOUT_SYMVER at your own risk). Change the default thread library to libthr. There most likely still needs to be a version bump for at least the thread libraries. If necessary, this will happen later.
* Use C comments since we now preprocess these files with CPP.deischen2007-04-291-20/+21
|
* Export offsets of thread signal pending set and signal mask for debugger.davidxu2006-05-171-0/+2
|
* Add compatibility symbol maps. libpthread (.so.1 and .so.2)deischen2006-03-131-14/+380
| | | | | | | | | | | used LIBTHREAD_1_0 as its version definition, but now needs to define its symbols in the same namespace used by libc. The compatibility hooks allows you to use libraries and binaries built and linked to libpthread before libc was built with symbol versioning. The shims can be removed if libpthread is given a version bump. Reviewed by: davidxu
* Export following functions:davidxu2005-10-241-0/+8
| | | | | | | | | | | _pthread_condattr_getpshared _pthread_condattr_setpshared _pthread_mutexattr_getpshared _pthread_mutexattr_setpshared pthread_condattr_getpshared pthread_condattr_setpshared pthread_mutexattr_getpshared pthread_mutexattr_setpshared
* Add usleep to the map files.deischen2005-08-031-0/+2
| | | | Noticed by: davidxu
* Use a generic way to back threads out of wait queues when handlingdeischen2004-12-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | signals instead of having more intricate knowledge of thread state within signal handling. Simplify signal code because of above (by David Xu). Use macros for libpthread usage of pthread_cleanup_push() and pthread_cleanup_pop(). This removes some instances of malloc() and free() from the semaphore and pthread_once() implementations. When single threaded and forking(), make sure that the current thread's signal mask is inherited by the forked thread. Use private mutexes for libc and libpthread. Signals are deferred while threads hold private mutexes. This fix also breaks www/linuxpluginwrapper; a patch that fixes it is at http://people.freebsd.org/~deischen/kse/linuxpluginwrapper.diff Fix race condition in condition variables where handling a signal (pthread_kill() or kill()) may not see a wakeup (pthread_cond_signal() or pthread_cond_broadcast()). In collaboration with: davidxu
* Add a wrapper for execve(). The exec'd process must be started withdeischen2004-09-261-0/+2
| | | | | | | | | | | | | | the signal mask and pending signals of the calling thread. These are stored in userland in libpthread. There is a small race condition in this patch which could cause problems if a signal arrives after setting the (kernel) signal mask and before exec'ing. The thread's set of pending signals also are not yet installed in the exec'd process. Both of these will be corrected with the addition of a special syscall. Reported & Tested by: Joost Bekkers <joost at jodocus dot org> Reviewed by: julian, davidxu
* 1. Add macro DTV_OFFSET to calculate dtv offset in tcb.davidxu2004-08-161-3/+19
| | | | 2. Export symbols needed by debugger.
* Export necessary symbols to debugger.davidxu2004-07-131-7/+4
|
* Add sem_timedwait to the symbol map, otherwise the libc version willdeischen2004-02-101-0/+2
| | | | get used.
* Implement sigaltstack() as per-threaded. Current only scope process threaddavidxu2003-12-291-0/+2
| | | | | | | | is supported, for scope system process, kernel signal bits need to be changed. Reviewed by: deischen Tested on : i386 amd64 ia64
* Add cancellation points for accept() and connect().deischen2003-12-091-0/+4
|
* Add an implementation for pthread_atfork().deischen2003-11-041-0/+2
| | | | | | | | Aside from the POSIX requirements for pthread_atfork(), when fork()ing, take the malloc lock to keep malloc state consistent in the child. Reviewed by: davidxu
* Add code to support pthread spin lock.davidxu2003-09-091-0/+10
| | | | Reviewed by: deischen
* Add small piece of code to support pthread_rwlock_timedrdlock anddavidxu2003-09-061-0/+4
| | | | pthread_rwlock_timedrwlock.
* Add code to support barrier synchronous object and implementdavidxu2003-09-041-0/+17
| | | | | | pthread_mutex_timedlock(). Reviewed by: deischen
* Override libc function raise(), in threading mode, raise() willdavidxu2003-07-191-0/+2
| | | | | | send signal to current thread. Reviewed by: deischen
* o Use a daemon thread to monitor signal events in kernel, if pendingdavidxu2003-06-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | signals were changed in kernel, it will retrieve the pending set and try to find a thread to dispatch the signal. The dispatching process can be rolled back if the signal is no longer in kernel. o Create two functions _thr_signal_init() and _thr_signal_deinit(), all signal action settings are retrieved from kernel when threading mode is turned on, after a fork(), child process will reset them to user settings by calling _thr_signal_deinit(). when threading mode is not turned on, all signal operations are direct past to kernel. o When a thread generated a synchoronous signals and its context returned from completed list, UTS will retrieve the signal from its mailbox and try to deliver the signal to thread. o Context signal mask is now only used when delivering signals, thread's current signal mask is always the one in pthread structure. o Remove have_signals field in pthread structure, replace it with psf_valid in pthread_signal_frame. when psf_valid is true, in context switch time, thread will backout itself from some mutex/condition internal queues, then begin to process signals. when a thread is not at blocked state and running, check_pending indicates there are signals for the thread, after preempted and then resumed time, UTS will try to deliver signals to the thread. o At signal delivering time, not only pending signals in thread will be scanned, process's pending signals will be scanned too. o Change sigwait code a bit, remove field sigwait in pthread_wait_data, replace it with oldsigmask in pthread structure, when a thread calls sigwait(), its current signal mask is backuped to oldsigmask, and waitset is copied to its signal mask and when the thread gets a signal in the waitset range, its current signal mask is restored from oldsigmask, these are done in atomic fashion. o Two additional POSIX APIs are implemented, sigwaitinfo() and sigtimedwait(). o Signal code locking is better than previous, there is fewer race conditions. o Temporary disable most of code in _kse_single_thread as it is not safe after fork().
* Attempt to eliminate PLT relocations from rwlock aquire/releasekan2003-05-301-0/+296
path, making them suitable for direct use by the dynamic loader. Register libpthread-specific locking API with rtld on startup. This still has some rough edges with signals which should be addresses later. Approved by: re (scottl)
OpenPOWER on IntegriCloud