#
0c4f9ecd |
| 29-Mar-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Change compiler setting to make default visibility of the symbols for rtld on x86 to be hidden. This is a micro-optimization, which allows intrinsic references inside rtld to be handled without indi
Change compiler setting to make default visibility of the symbols for rtld on x86 to be hidden. This is a micro-optimization, which allows intrinsic references inside rtld to be handled without indirection through PLT. The visibility of rtld symbols for other objects in the symbol namespace is controlled by a version script.
Reviewed by: kan, jilles Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
show more ...
|
Revision tags: release/10.1.0 |
|
#
ee7b0571 |
| 19-Aug-2014 |
Simon J. Gerraty <sjg@FreeBSD.org> |
Merge head from 7/28
|
Revision tags: release/9.3.0 |
|
#
6cec9cad |
| 03-Jun-2014 |
Peter Grehan <grehan@FreeBSD.org> |
MFC @ r266724
An SVM update will follow this.
|
#
1c70d007 |
| 24-May-2014 |
Konstantin Belousov <kib@FreeBSD.org> |
Right now, the rtld prefork hook locks the rtld bind lock in the read mode. This allows the binder to be functional in the child after the fork (assuming no lazy loading of a filter is needed), but
Right now, the rtld prefork hook locks the rtld bind lock in the read mode. This allows the binder to be functional in the child after the fork (assuming no lazy loading of a filter is needed), but other rtld services which require write lock on rtld_bind_lock cause deadlock, if called by child.
Change the _rtld_atfork() to lock the bind lock in write mode, making the rtld fully functional after the fork.
Pre-resolve the symbols which are called by the libthr' fork() interposer, since dynamic resolution causes deadlock due to the rtld_bind_lock already owned in the write mode.
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
show more ...
|
Revision tags: release/10.0.0, release/9.2.0, release/8.4.0, release/9.1.0, release/8.3.0_cvs, release/8.3.0, release/9.0.0 |
|
#
fab4c373 |
| 16-Sep-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r225592
sys/dev/bvm/bvm_console.c - move up to the new alt-break order.
|
#
4ff9eb89 |
| 01-Sep-2011 |
Alexander Motin <mav@FreeBSD.org> |
Integrate from head at r225316.
|
#
0e9a2605 |
| 24-Aug-2011 |
Konstantin Belousov <kib@FreeBSD.org> |
Rtld links with the specially built pic static libc library to get some C runtime services, like printf(). Unfortunately, the multithread-safeness measures in the libc do not work in rtld environment
Rtld links with the specially built pic static libc library to get some C runtime services, like printf(). Unfortunately, the multithread-safeness measures in the libc do not work in rtld environment.
Rip the kernel printf() implementation and use it in the rtld instead of libc version. This printf does not require any shared global data and thus is mt-safe. Systematically use rtld_printf() and related functions, remove the calls to err(3).
Note that stdio is still pulled from libc due to libmap implementaion using fopen(). This is safe but unoptimal, and can be changed later.
Reported and tested by: pgj Diagnosed and reviewed by: kan (previous version) Approved by: re (bz)
show more ...
|
Revision tags: release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0 |
|
#
a7bc470a |
| 09-Feb-2011 |
Konstantin Belousov <kib@FreeBSD.org> |
Use sigsetjmp/siglongjmp with disabled signal mask access for lock upgrade in rtld. There is no need to care about the mask, which causes a lot of unneeded sigprocmask(2) calls during each symbol loo
Use sigsetjmp/siglongjmp with disabled signal mask access for lock upgrade in rtld. There is no need to care about the mask, which causes a lot of unneeded sigprocmask(2) calls during each symbol lookup.
show more ...
|
#
8569deaf |
| 25-Dec-2010 |
Konstantin Belousov <kib@FreeBSD.org> |
Implement support for ELF filters in rtld. Both normal and auxillary filters are implemented.
Filtees are loaded on demand, unless LD_LOADFLTR environment variable is set or -z loadfltr was specifie
Implement support for ELF filters in rtld. Both normal and auxillary filters are implemented.
Filtees are loaded on demand, unless LD_LOADFLTR environment variable is set or -z loadfltr was specified during the linking. This forces rtld to upgrade read-locked rtld_bind_lock to write lock when it encounters an object with filter during symbol lookup.
Consolidate common arguments of the symbol lookup functions in the SymLook structure. Track the state of the rtld locks in the RtldLockState structure. Pass local RtldLockState through the rtld symbol lookup calls to allow lock upgrades.
Reviewed by: kan Tested by: Mykola Dzham <i levsha me>, nwhitehorn (powerpc)
show more ...
|
Revision tags: release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0 |
|
#
10b3b545 |
| 17-Sep-2009 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Merge from head
|
#
e7153b25 |
| 07-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
3f2f85a6 |
| 20-Apr-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Prefer <sys/param.h> to <machine/param.h> for the definition of CACHE_LINE_SIZE.
Submitted by: bde MFC after: 2 weeks
|
#
d9d845a9 |
| 20-Apr-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Explicitly include machine/param.h for CACHE_LINE_SIZE.
MFC after: 2 weeks
|
Revision tags: release/7.1.0_cvs, release/7.1.0 |
|
#
e57c2b13 |
| 04-Dec-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
integrate from head@185615
|
#
cb5c4b10 |
| 27-Nov-2008 |
Konstantin Belousov <kib@FreeBSD.org> |
Add two rtld exported symbols, _rtld_atfork_pre and _rtld_atfork_post. Threading library calls _pre before the fork, allowing the rtld to lock itself to ensure that other threads of the process are o
Add two rtld exported symbols, _rtld_atfork_pre and _rtld_atfork_post. Threading library calls _pre before the fork, allowing the rtld to lock itself to ensure that other threads of the process are out of dynamic linker. _post releases the locks.
This allows the rtld to have consistent state in the child. Although child may legitimately call only async-safe functions, the call may need plt relocation resolution, and this requires working rtld.
Reported and debugging help by: rink Reviewed by: kan, davidxu MFC after: 1 month (anyway, not before 7.1 is out)
show more ...
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
d8b04dc0 |
| 16-Sep-2008 |
David Xu <davidxu@FreeBSD.org> |
Allow multiple locks to be acquired by detecting corresponding bit flag, otherwise if a thread acquired a lock, another thread or the current thread itself can no longer acquire another lock because
Allow multiple locks to be acquired by detecting corresponding bit flag, otherwise if a thread acquired a lock, another thread or the current thread itself can no longer acquire another lock because thread_mask_set() return whole flag word, this results bit leaking in the word and misbehavior in later locking and unlocking.
show more ...
|
#
e91ff25c |
| 06-May-2008 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix the problem with the C++ exception handling for the multithreaded programs.
From the PR description: The gcc runtime's _Unwind_Find_FDE function, invoked during exception handling's stack unwind
Fix the problem with the C++ exception handling for the multithreaded programs.
From the PR description: The gcc runtime's _Unwind_Find_FDE function, invoked during exception handling's stack unwinding, is not safe to execute from within multiple threads. FreeBSD' s dl_iterate_phdr() however permits multiple threads to pass through it though. The result is surprisingly reliable infinite looping of one or more threads if they just happen to be unwinding at the same time.
Introduce the new lock that is write locked around the dl_iterate_pdr, thus providing required exclusion for the stack unwinders.
PR: threads/123062 Submitted by: Andy Newman <an at atrn org> Reviewed by: kan MFC after: 2 weeks
show more ...
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
fb6395da |
| 03-Apr-2007 |
Alexander Kabaev <kan@FreeBSD.org> |
Use u_int for variable manipulated by atomic ops to match atomic ops function prototypes.
|
Revision tags: release/6.2.0_cvs, release/6.2.0, release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0, release/4.11.0_cvs, release/4.11.0 |
|
#
165204a7 |
| 16-Nov-2004 |
John Baldwin <jhb@FreeBSD.org> |
Remove 80386 support from the ELF run time linker.
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
5908d366 |
| 04-Jul-2004 |
Stefan Farfeleder <stefanf@FreeBSD.org> |
Consistently use __inline instead of __inline__ as the former is an empty macro in <sys/cdefs.h> for compilers without support for inline.
|
Revision tags: release/4.10.0_cvs, release/4.10.0, release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0, release/4.9.0_cvs, release/4.9.0, release/5.1.0_cvs, release/5.1.0 |
|
#
6d5d786f |
| 30-May-2003 |
Alexander Kabaev <kan@FreeBSD.org> |
Allow threading libraries to register their own locking implementation in case default one provided by rtld is not suitable.
Consolidate various identical MD lock implementation into a single file u
Allow threading libraries to register their own locking implementation in case default one provided by rtld is not suitable.
Consolidate various identical MD lock implementation into a single file using appropriate machine/atomic.h.
Approved by: re (scottl)
show more ...
|
#
e7153b25 |
| 07-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
3f2f85a6 |
| 20-Apr-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Prefer <sys/param.h> to <machine/param.h> for the definition of CACHE_LINE_SIZE.
Submitted by: bde MFC after: 2 weeks
|
#
d9d845a9 |
| 20-Apr-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Explicitly include machine/param.h for CACHE_LINE_SIZE.
MFC after: 2 weeks
|
#
cb5c4b10 |
| 27-Nov-2008 |
Konstantin Belousov <kib@FreeBSD.org> |
Add two rtld exported symbols, _rtld_atfork_pre and _rtld_atfork_post. Threading library calls _pre before the fork, allowing the rtld to lock itself to ensure that other threads of the process are o
Add two rtld exported symbols, _rtld_atfork_pre and _rtld_atfork_post. Threading library calls _pre before the fork, allowing the rtld to lock itself to ensure that other threads of the process are out of dynamic linker. _post releases the locks.
This allows the rtld to have consistent state in the child. Although child may legitimately call only async-safe functions, the call may need plt relocation resolution, and this requires working rtld.
Reported and debugging help by: rink Reviewed by: kan, davidxu MFC after: 1 month (anyway, not before 7.1 is out)
show more ...
|