| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by: re(kensmith)
Notes:
svn path=/head/; revision=172491
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the threading libraries is built. This simplifies the
logic in makefiles that need to check if the pthreads
support is present. It also fixes a bug where we would
build a threading library that we shouldn't have built:
for example, building with WITHOUT_LIBTHR and the default
value of DEFAULT_THREADING_LIB (libthr) would mistakenly
build the libthr library, but not install it.
Approved by: re (kensmith)
Notes:
svn path=/head/; revision=172403
|
| |
|
|
|
|
|
| |
Ok'd by: kan
Notes:
svn path=/head/; revision=169807
|
| |
|
|
|
|
|
|
|
|
| |
that would cause the selected shared threading library to be
overwritten with its 32-bit version on amd64.
PR: amd64/112509
Notes:
svn path=/head/; revision=169669
|
| |
|
|
|
|
|
| |
Submitted by: ru
Notes:
svn path=/head/; revision=169648
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=169524
|
| |
|
|
| |
Notes:
svn path=/head/; revision=161526
|
| |
|
|
|
|
|
| |
/sbin programs.
Notes:
svn path=/head/; revision=157694
|
| |
|
|
|
|
|
| |
Reviewed by: deischen
Notes:
svn path=/head/; revision=157243
|
| |
|
|
|
|
|
| |
the link arguments.
Notes:
svn path=/head/; revision=156774
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=156611
|
| |
|
|
|
|
|
|
|
|
| |
been bumped since RELENG_5.
Reviewed by: ru
Approved by: re (not needed for commit check but in principle...)
Notes:
svn path=/head/; revision=148297
|
| |
|
|
|
|
|
| |
any fake value.
Notes:
svn path=/head/; revision=136910
|
| |
|
|
|
|
|
| |
2. Export symbols needed by debugger.
Notes:
svn path=/head/; revision=133801
|
| |
|
|
|
|
|
|
| |
compatibility link from libc_r to libpthread (previously a link
from libc_r to libkse).
Notes:
svn path=/head/; revision=125258
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
thread library for i386, amd64, and ia64. For alpha
and sparc64 the library is not changed and remains libkse,
and links are installed so that libpthread -> libc_r.
The gcc -pthread option will be changed in a separate
commit so that it links to -lpthread instead of -lc_r.
Approved by: re@
Notes:
svn path=/head/; revision=125230
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
On ia64, where there's no libc_r at all, libkse is now the default
thread library by virtue of these links.
The reasons for this change are:
1. libkse is slated to become the default thread library anyway,
2. active development and maintenance is only present for libkse,
3. GNOME and KDE, both in the process of being supported on ia64,
work better with KSE; even on ia64.
Notes:
svn path=/head/; revision=120533
|
| |
|
|
|
|
|
|
|
| |
only needed symbols from libc_pic is not working on sparc64.
Requested by: jake
Notes:
svn path=/head/; revision=119693
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is system bound thread and when it is blocked, no upcall is generated.
o Add ability to libkse to allow it run in pure 1:1 threading mode,
defining SYSTEM_SCOPE_ONLY in Makefile can turn on this option.
o Eliminate code for installing dummy signal handler for sigwait call.
o Add hash table to find thread.
Reviewed by: deischen
Notes:
svn path=/head/; revision=117706
|
| |
|
|
|
|
|
|
|
| |
Record the missing dependency of thr_libc.So on the libc_pic.a library.
OK'ed by: kan
Notes:
svn path=/head/; revision=117178
|
| |
|
|
| |
Notes:
svn path=/head/; revision=117125
|
| |
|
|
|
|
|
| |
Submitted by: bde
Notes:
svn path=/head/; revision=117120
|
| |
|
|
|
|
|
|
| |
in a machine specific makefile. While here, sort the sub-directories
in Makefile and remove _atomic_lock.S from all makefiles.
Notes:
svn path=/head/; revision=116705
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
Notes:
svn path=/head/; revision=115399
|
| |
|
|
|
|
|
|
|
|
| |
Don't install man pages.
Temporarily (again) rename the library to libkse. It will be put back
to libpthread after more wide-spread testing.
Notes:
svn path=/head/; revision=113996
|
| |
|
|
|
|
|
|
|
| |
to always set %gs when resuming a thread.
Install this library as libpthread instead of libkse.
Notes:
svn path=/head/; revision=113943
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to be instances where the kernel doesn't properly save and/or
restore it.
Use noupcall and nocompleted flags in the KSE mailbox. These
require kernel changes to work which will be committed sometime
later. Things still work without the changes.
Remove the general kse entry function and use two different
functions -- one for scope system threads and one for scope
process threads. The scope system function is not yet enabled
and we use the same function for all threads at the moment.
Keep a copy of the KSE stack for the case that a KSE runs
a scope system thread and uses the same stack as the thread
(no upcalls are generated, so a separate stack isn't needed).
This isn't enabled yet.
Use a separate field for the KSE waiting flag. It isn't
correct to use the mailbox flags field.
The following fixes were provided by David Xu:
o Initialize condition variable locks with thread versions
of the low-level locking functions instead of the kse versions.
o Enable threading before creating the first thread instead
of after.
o Don't enter critical regions when trying to malloc/free
or call functions that malloc/free.
o Take the scheduling lock when inheriting thread attributes.
o Check the attribute's stack pointer instead of the
attributes stack size for null when allocating a
thread's stack.
o Add a kseg reinit function so we don't have to destroy and
then recreate the same lock.
o Check the return value of kse_create() and return an
appropriate error if it fails.
o Don't forget to destroy a thread's locks when freeing it.
o Examine the correct flags word for checking to see if
a thread is in a synchronization queue.
Things should now work on an SMP kernel.
Notes:
svn path=/head/; revision=113786
|
| |
|
|
|
|
|
|
|
| |
on a couple of days ago. This should be the most recent changes.
Noticed by: davidxu
Notes:
svn path=/head/; revision=113661
|
| |
|
|
|
|
|
| |
my local version.
Notes:
svn path=/head/; revision=113659
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
environment. This includes support for multiple KSEs and KSEGs.
The ability to create more than 1 KSE via pthread_setconcurrency()
is in the works as well as support for PTHREAD_SCOPE_SYSTEM threads.
Those should come shortly.
There are still some known issues which davidxu and I are working
on, but it'll make it easier for us by committing what we have.
This library now passes all of the ACE tests that libc_r passes
with the exception of one. It also seems to work OK with KDE
including konqueror, kwrite, etc. I haven't been able to get
mozilla to run due to lack of java plugin, so I'd be interested
to see how it works with that.
Reviewed by: davidxu
Notes:
svn path=/head/; revision=113658
|
| |
|
|
|
|
|
|
|
|
| |
This will avoid any accidental use of an experimental library.
Suggested by: rwatson
Approved by: re (jhb)
Notes:
svn path=/head/; revision=107687
|
| |
|
|
| |
Notes:
svn path=/head/; revision=104073
|
| |
|
|
| |
Notes:
svn path=/head/; revision=103412
|
| |
|
|
|
|
|
|
|
|
|
| |
The new libpthread will provide POSIX threading support using KSE.
These files were previously repo-copied from src/lib/libc_r.
Reviewed by: deischen
Approved by: -arch
Notes:
svn path=/head/; revision=103388
|
| |
|
|
| |
Notes:
svn path=/head/; revision=94797
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_foo - wrapped system call
foo - weak definition to _foo
and for cancellation points:
_foo - wrapped system call
__foo - enter cancellation point, call _foo(), leave
cancellation point
foo - weak definition to __foo
Change use of global _thread_run to call a function to get the
currently running thread.
Make all pthread_foo functions weak definitions to _pthread_foo,
where _pthread_foo is the implementation. This allows an application
to provide its own pthread functions.
Provide slightly different versions of pthread_mutex_lock and
pthread_mutex_init so that we can tell the difference between
a libc mutex and an application mutex. Threads holding mutexes
internal to libc should never be allowed to exit, call signal
handlers, or cancel.
Approved by: -arch
Notes:
svn path=/head/; revision=71581
|
| |
|
|
|
|
|
|
| |
change committed to RELENG_4 where a bump there is now necessary.
We've got to go before RELENG_4 does.
Notes:
svn path=/head/; revision=68699
|
| |
|
|
|
|
|
| |
shaken out.
Notes:
svn path=/head/; revision=67099
|
| |
|
|
|
|
|
| |
Noted as missing by: nicolas.leonard@animaths.com
Notes:
svn path=/head/; revision=64346
|
| |
|
|
| |
Notes:
svn path=/head/; revision=62641
|
| |
|
|
|
|
|
| |
PR: bin/17366
Notes:
svn path=/head/; revision=59671
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
just use _foo() <-- foo(). In the case of a libpthread that doesn't do
call conversion (such as linuxthreads and our upcoming libpthread), this
is adequate. In the case of libc_r, we still need three names, which are
now _thread_sys_foo() <-- _foo() <-- foo().
Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(),
nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo().
Remove all internal libc usage of: creat(), pause(), sleep(), system(),
tcdrain(), wait(), and waitpid().
Make thread cancellation fully POSIX-compliant.
Suggested by: deischen
Notes:
svn path=/head/; revision=56698
|
| |
|
|
|
|
|
| |
PR: kern/11982
Notes:
svn path=/head/; revision=54757
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eischen (Daniel Eischen) added wrappers to protect against cancled
threads orphaning internal resources.
the cancelability code is still a bit fuzzy but works for test
programs of my own, OpenBSD's and some examples from ORA's books.
add readdir_r to both libc and libc_r
add some 'const' attributes to function parameters
Reviewed by: eischen, jasone
Notes:
svn path=/head/; revision=53812
|
| |
|
|
|
|
|
| |
Pointed out by: jdp
Notes:
svn path=/head/; revision=52233
|
| |
|
|
|
|
|
|
|
| |
_thread_sys_sisprocmask in libc_r. This solves the undefined symbol...
Reported by: Kenneth Wayne Culver
Notes:
svn path=/head/; revision=51818
|
| |
|
|
| |
Notes:
svn path=/head/; revision=50476
|
| |
|
|
|
|
|
|
| |
must be made default for the alpha before growable thread stacks are
enabled for the alpha.
Notes:
svn path=/head/; revision=48609
|
| |
|
|
| |
Notes:
svn path=/head/; revision=48570
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cache discarded default thread stacks for use in subsequent thread creations.
Create a red zone at the end of each stack (including the initial thread
stack), with the hope of causing a segfault if a stack overflows.
To activate these modifications, add -D_PTHREAD_GSTACK to CFLAGS in
src/lib/libc_r/Makefile. Since the modifications depend on the VM_STACK
kernel option, I'm not sure how to safely use growable stacks by default.
Testing, as well as algorithmic and stylistic comments are welcome.
Notes:
svn path=/head/; revision=48569
|