Age | Commit message (Collapse) | Author |
|
gcc 3 as the compiler. The way constructors are built triggers this warning,
which is fatal because of -Werror. ok espie@ guenther@
|
|
|
|
Makes "make build" build with WARNINGS=Yes on amd64.
ok espie
|
|
we should actually check for _DYNAMIC at run-time rather than checking
for __PIC__ at compile time, since the two are actually independent.
Problem and solution identified by guenther; minor tweaks by me.
ok guenther
|
|
from bsd.lib.mk for C source files.
ok deraadt, pascal
|
|
invocations. This allows us to use the compiler builtin define __PIC__ to check
for PIC/PIEness rather than passing -DPIC. Simplifies PIE work a lot.
ok matthew@, conceptually ok kurt@
|
|
- Link libpthread.so with -znodlopen. Because libpthread overrides
the weak symbols in libc, we can't allow it to be dynamically
loaded or else libc's weak symbols might have already been
resolved by ld.so. (Also, major bump because this is technically
a backwards incompat change in behavior, although dlopen()ing
libpthread never really worked.)
- Link libc.so with -nodefaultlibs -lgcc. This ensures that libc
doesn't try to link against itself (which ld.so wouldn't like).
- Change GCC 4 to link shared objects with -lpthread and -lc as
appropriate, now that there's no issues with doing so. This means
that it's no longer necessary to patch software to use -pthread
instead of -lpthread. (Ports tree rejoice!)
Also, to preemptively answer this question: No, this does not
eliminate the need for LD_PRELOAD=libpthread.so. That's a separate
issue that won't be resolved until we eliminate libc's weak symbols.
Discussed extensively on email and icb over the past few months.
ok deraadt
|
|
accordingly so vax can build again.
ok deraadt
|
|
overrides provided by libpthread.a. This ensures that statically
linked threaded programs use (e.g.) __cerror() from libpthread.a
instead of libc.a. (Same idea previously used by libuthread.)
Thanks to fgsch@ for pointing out libuthread's solution to the static
linking problem.
ok guenther@, tedu@;
|
|
based on a diff from Christian Schulte (cs at schulte.it)
|
|
ok guenther@
|
|
|
|
so that it can't get a signal while still running on the parent thread's
stack. Also, pass in sizeof(struct __tfork) to provide forward compat
when more members are added. This is an ABI change, so switch syscall
numbers and bump lib majors this time.
ok deraadt@ matthew@
|
|
|
|
Implementation, documentation and naive regression tests for:
- pthread_spin_init()
- pthread_spin_destroy()
- pthread_spin_lock()
- pthread_spin_trylock()
- pthread_spin_unlock()
Implementation okay guenther@, documentation okay jmc@.
|
|
`Visual inspection looks ok' kurt@.
>From Brad
|
|
The latter contains "#define _POSIX_THREADS 1" which makes gcc 2.95 complain.
|
|
errors similar to PTHREAD_MUTEX_ERRORCHECK, however upon error it aborts.
The rational is that many applications don't check the return values on
pthread functions and will miss the errors that ERRORCHECK returns.
PTHREAD_MUTEX_STRICT_NP will be our default mutex type for awhile
okay guenther@ dcoppa@
|
|
|
|
default mutex type changes to NORMAL, when there is an uninitialized
mutex provided to unlock, allow it to succeed similar to an unlocked
mutex. For other cases abort instead of segfault. okay guenther@
|
|
certain conditions. In the case of unlocking an unlocked mutex we will
allow that to succeed, all other undefined behaviors will result in an
immediate abort(). okay guenther@
|
|
support is needed before they can be usefully enabled but I don't want
to misplace this diff yet again
|
|
|
|
|
|
Implementation and documentation for:
- pthread_barrier_init()
- pthread_barrier_destroy()
- pthread_barrier_wait()
- pthread_barrierattr_init()
- pthread_barrierattr_destroy()
- pthread_barrierattr_getpshared()
- pthread_barrierattr_setpshared()
Currently only private barriers are supported.
Okay guenther@.
|
|
ok kurt@
|
|
|
|
rthreads major library bump from last night. okay kettenis@
|
|
of __tfork_thread from rthreads to libc
|
|
|
|
|
|
it can be used for not-strictly-threading purposes
ok matthew@ kurt@
|
|
|
|
may need to call dlclose().
problem observed by Antti Harri (iku at openbsd.fi), ok kurt@
|
|
a function that can call sched_yield(), to avoid recursion
ok kurt@ kettenis@
|
|
|
|
|
|
|
|
|
|
that it resumes waiting unless the thread was canceled. As part
of this, change the internal _sem_wait() function to return zero
on success and an errno value on failure instead of 1 on success
and zero on failure.
|
|
guenther@ ok.
|
|
|
|
sem_init() can't assume that calloc will leave the embedded spinlock
in the unlocked state
ok miod@ otto@
|
|
to unlock an uninitialized mutex is required to return EPERM, so add
the necessary checks.
For recursive mutexes, return an error from pthread_mutex_lock()
if the count would overflow.
problem observed in glib testing by aja@
|
|
|
|
|
|
|
|
|
|
non-standard alias, so prefer the former
|
|
That deadlock can be exited via a timeout for pthread_mutex_timedlock().
Unwind all the state when pthread_mutex_timedlock() times out
|