Age | Commit message (Collapse) | Author |
|
report from Jeunder Yu
|
|
thrkill(2), rolling the kill(2) syscall number with the ABI change to
avoid breaking binaries during during the transition. thrkill(2) includes
a 'tcb' argument that eliminates the need for locking in pthread_kill()
and simplifies pthread_cancel(). Switch __stack_smash_handler() to use
thrkill(2) and explicitly unblock SIGABRT.
Minor bump to both libc and libpthread: make sure you install a new kernel!
ok semarie@
|
|
|
|
into libc, and move pthread_sigmask() as well (just a trivial wrapper).
This provides consistent handling of SIGTHR between single- and multi-threaded
programs and is a step in the merge of all the libpthread overloads, providing
some ASM and Makefile bits that the other wrappers will need.
ok deraadt@ millert@
|
|
eliminates a chunk of complexity from the libpthread init and the fork
wrapper, as it was the bind lock that needed prebinding before use.
|
|
ok guenther
|
|
with ld.so locking whenever building NOPIC
pointless use of __ELF__ noted by brad@
ok miod@
|
|
the sake of libpthread. Probably missed during the a.out->ELF switch, I
can't believe this went unnoticed for so long.
|
|
may have been grabbed by another thread in the parent before the fork
problem report from dcoppa@, ok kettenis@
|
|
pthread and instead use the values from the embedded struct pthread_attr.
For bonus points, pay attention to the sched_inherit attribute and possibly
set the values from the parent thread.
Problem noted by natano of bitrig.
|
|
unregistering callbacks if the DSO is unloaded. Move the callback
handling from libpthread to libc, though libpthread still overrides the
inner call to handle locking and thread-library reinitialization.
Major version bump for both libc and libpthread.
verification that this fixes various ports ajacoutot@
asm assistance miod@; ok millert@ deraadt@
|
|
ok millert@, tobiasu@
|
|
review by millert, binary checking process with doug, concept with guenther
|
|
|
|
unroll to the cancellation check
ok tedu@
|
|
cancellation properly when a handled (but not waited for) signal occurs
ok tedu@
|
|
Update the list in the pthread_testcancel(3) manpage: several were missing.
noted by miod@
|
|
indirectly prodded by krw@
|
|
|
|
|
|
ok deraadt@
|
|
don't need to be married.
ok guenther miod beck jsing kettenis
|
|
allocated by the kernel's execve bits.
ok matthew@
|
|
MAP_FILE and MAP_HASSEMAPHORE flags.
Discussed with deraadt, tedu, and kettenis
|
|
|
|
range. okay kettenis@, guenther@, deraadt@
|
|
|
|
this hardware alive is becoming increasingly difficult, and I should heed the
message sent by the three disks which have died on me over the last few days.
Noone sane will mourn these ports anyway. So long, and thanks for the fish.
|
|
(namespace pollution!) or talking about its opinion on code.
ok krw@
|
|
ensure the frames are aligned correctly. Discussed at length with guenther
and kettenis
ok kettenis, this is the right first step
|
|
defined and we don't think ld.so has already done the TCB setup.
ok and much discussion miod@
|
|
reported by zhuk
|
|
following what is recommended for mkstemp. This reduces the number of calls
to sched_yield considerably.
tedu@ ok.
|
|
thread's existing handle must continue to be valid and it didn't
fully 'change' the thread handle anyway. For pthread_main_np(),
use a new flag, THREAD_ORIGINAL, to indicate that the flagged thread
is the original thread for *this* process.
Fixes some ConsoleKit failures according to aja@
|
|
NULL semaphore in sem_close(). Minor cosmetic changes.
tedu@ zhuk@ ok
|
|
if he wants, but let us get the tree building.
|
|
|
|
ok zhuk and presumably fgsch who just sent me a similar diff
|
|
it's not needed (mindless holdover from earlier prototype). everything is
simpler and sem_init shared semaphores even work now (confirmed by sthen).
correct the einval checks to not deref a pointer before the null check.
in sem_open, if we created the semaphore, we need to initialize the spinlock.
|
|
|
|
|
|
of shm_open. with some additions and fixes from zhuk.
|
|
long discussions with guenther, kurt, kettenis etc etc etc
|
|
original report and fix provided by John Carr. ok guenther kettenis
|
|
lock across the kill, so that it can't exit (and its tid be reused!)
before the kill()
discussed with tedu@ marc@
|
|
|
|
barriers. Therefore it is required to add a memory berrier, so that
it is ensured that all observers observed the change.
ok rapha@
|
|
in libpthread to be optimized away.
While there, follow DG/UX's example of using more than one register for thread
purposes (after all, the ABI reserves four of them), and also use %r26 to store
a pointer to the current thread's errno.
Since it is not possible to initialize %r26 at thread creation without
intrusive and potentially race-prone changes, have __tfork() reset %r26 to
zero, and libpthread's __cerror lazy initialize it. As soon as %r26 is nonzero,
it will be used instead of calling __errno().
This means that binaries linked against HEAD libpthread need to run on HEAD
kernels, and we are belatedly jumping on the 64-bit time_t bump (since there
are no 64-bit time_t m88k snapshots yet).
Joint work with guenther@; "Your love of asm is sick and wrong, and yet
beautiful." and ok guenther@
|
|
members to 64bit types. Assign new syscall numbers for (almost
all) the syscalls that involve the affected types, including anything
with time_t, timeval, itimerval, timespec, rusage, dirent, stat,
or kevent arguments. Add a d_off member to struct dirent and replace
getdirentries() with getdents(), thus immensely simplifying and
accelerating telldir/seekdir. Build perl with -DBIG_TIME.
Bump the major on every single base library: the compat bits included
here are only good enough to make the transition; the T32 compat
option will be burned as soon as we've reached the new world are
are happy with the snapshots for all architectures.
DANGER: ABI incompatibility. Updating to this kernel requires extra
work or you won't be able to login: install a snapshot instead.
Much assistance in fixing userland issues from deraadt@ and tedu@
and build assistance from todd@ and otto@
|
|
Change the logic depending upon COMPILER_VERSION everywhere, to assume gcc4
is the norm and to explicitely test for gcc3 when a different behaviour
is required.
No functional change intended. Be sure to `make install' in share/mk before
attempting to do anything.
|