Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3 |
|
#
ccd5664d |
| 08-Oct-2019 |
Sascha Wildner <saw@online.de> |
libc/tls: Remove some code that has been #if 0'd since 2005.
|
Revision tags: v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2 |
|
#
a32e3ba6 |
| 08-Apr-2019 |
Sascha Wildner <saw@online.de> |
libc: Add prototypes for various functions we use in __weak_reference().
|
#
dc676eae |
| 19-Feb-2019 |
Matthew Dillon <dillon@apollo.backplane.com> |
libc - Use sbrk() system call, remove brk() (2)
* Change the initial TLS allocation to use mmap() instead of sbrk() in order to maintain compatibility with older kernels.
* Using sbrk() will work
libc - Use sbrk() system call, remove brk() (2)
* Change the initial TLS allocation to use mmap() instead of sbrk() in order to maintain compatibility with older kernels.
* Using sbrk() will work with a fully updated system, but will not work with an old kernel because it returns an error and sets errno, but setting errno requires the TLS to already be installed. So even though we have back-off code in libc, it seg-faults before it gets to it.
* Only affects a few programs in base such as 'chflags' so not a disaster. But still, the intent was to maintain compatibility with older kernels.
show more ...
|
Revision tags: v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1 |
|
#
f8406b33 |
| 06-Oct-2016 |
zrj <rimvydas.jasinskas@gmail.com> |
<sys/cdefs.h>: Rework __weak_reference() macro.
My LTO build blew away weak symbols from slim LTO objects. Use __strong_reference() + weak attribute to allow the compiler to catch extern declaration
<sys/cdefs.h>: Rework __weak_reference() macro.
My LTO build blew away weak symbols from slim LTO objects. Use __strong_reference() + weak attribute to allow the compiler to catch extern declarations and not to fold weak symbols as local ones.
Keep previous version as __weak_reference_asm() in _pthread_stubs.c for now due to several issues (there is a need to do it in a cleaner way).
lib/libc/gen/ucontext.c: add missing __DECONST for ucp, shouldn't sigreturn take const ucontext_t?
lib/libc/inet/inet_ntoa.c: add missing #undef inet_ntoa_r
No symbol changes in libc and librt on normal compilation.
While there, add __weak_symbol attribute for future additions.
show more ...
|
Revision tags: v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3 |
|
#
965b839f |
| 04-Jul-2015 |
Sascha Wildner <saw@online.de> |
Use roundup2() from <sys/param.h> in a number of places.
|
Revision tags: v4.2.1, v4.2.0 |
|
#
f8695751 |
| 22-Jun-2015 |
Sascha Wildner <saw@online.de> |
i386 removal, part 4/x: Remove i386 specific code from libc.
|
Revision tags: v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3 |
|
#
6f93d55f |
| 14-Apr-2012 |
Sascha Wildner <saw@online.de> |
Remove some unnecessary inclusions of <sys/cdefs.h> across the tree.
|
Revision tags: v3.0.2 |
|
#
678e8cc6 |
| 05-Mar-2012 |
Sascha Wildner <saw@online.de> |
Sweep-fix comparing pointers with 0 (and assigning 0 to pointers).
For better readability, don't compare pointers with 0 or assign 0 to them. Use NULL instead.
The change was done with coccinelle.
|
Revision tags: v3.0.1, v3.1.0, v3.0.0 |
|
#
86d7f5d3 |
| 26-Nov-2011 |
John Marino <draco@marino.st> |
Initial import of binutils 2.22 on the new vendor branch
Future versions of binutils will also reside on this branch rather than continuing to create new binutils branches for each new version.
|
Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0, v2.3.2, v2.3.1 |
|
#
97c6bef2 |
| 28-Apr-2009 |
Matthew Dillon <dillon@apollo.backplane.com> |
Fix short allocation in libc RTLD for static-compiled programs.
libc's __libc_allocate_tls() (weakly bound to _rtld_allocate_tls()) was not allocating enough space for the TLS segments in statically
Fix short allocation in libc RTLD for static-compiled programs.
libc's __libc_allocate_tls() (weakly bound to _rtld_allocate_tls()) was not allocating enough space for the TLS segments in statically-compiled threaded applications.
The old malloc allocated lots of extra space and masked the bug. The new slab malloc doesn't and revealed the bug.
Reproduced-by: Sepherosa Ziehau <sepherosa@gmail.com>
show more ...
|
Revision tags: v2.2.1, v2.2.0, v2.3.0, v2.1.1, v2.0.1 |
|
#
b0e25abd |
| 19-Nov-2005 |
Sascha Wildner <swildner@dragonflybsd.org> |
- Document ttyname_r().
- Fix several compilation warnings.
- Perform some style(9) cleanup.
Submitted-by: Alexey Slynko <slynko@tronet.ru>
|
#
a1eee96a |
| 11-May-2005 |
Matthew Dillon <dillon@dragonflybsd.org> |
Major TLS cleanups.
* The RTLD no longer attempts to set up an initial TLS. The job has been moved to libc. The RTLD does not use TLS itself. The allocate_initial_tls() function has been remo
Major TLS cleanups.
* The RTLD no longer attempts to set up an initial TLS. The job has been moved to libc. The RTLD does not use TLS itself. The allocate_initial_tls() function has been removed.
* The _init_tls() call made by CRT1 is no mandatory.
* The RTLD no longer calls the library _init() functions early. Instead it sets up a callback that allows CRT1 to call the library _init() functions after it has called _init_tls().
* LIBC now has a _libc_init_tls() function which is weakly bound as _init_tls(). This function initializes the TLS for the program (generally by calling the _rtld_allocate_tls() and then doing any required post-allocation initialization). In the absence of a threading library this function is basically it.
Threading libraries may replace _init_tls() with their own version. This does not yet occur as of this commit. The threading library would then almost certainly call _libc_init_tls() and then make further modifications to the TCB as necessary (e.g. populate the tcb_pthread field).
* RTLD's allocate_tls() no longer does anything fancy. The 'old_tcb' argument and concept has been removed.
* We have a new tcb_errno_p field in the TCB, but as of this commit it is not yet being used.
Reviewed-by: Joerg Sonnenberger <joerg@britannica.bec.de>, David Xu <davidxu@crater.dragonflybsd.org>
show more ...
|
#
a378ce7d |
| 29-Apr-2005 |
Joerg Sonnenberger <joerg@dragonflybsd.org> |
Prepare for thread-local errno by implementing full TLS support for static binaries, which does not touch errno before the initial TLS space is created. This code path is *very* sensitive to changes.
|
#
7d6ff7ad |
| 28-Apr-2005 |
Joerg Sonnenberger <joerg@dragonflybsd.org> |
Always allocate static TLS space.
|
#
f20fd431 |
| 29-Mar-2005 |
Joerg Sonnenberger <joerg@dragonflybsd.org> |
Remove tcb_size and flag argument for _rtld_allocate_tls, remove tcb_size argument for _rtld_free_tls. The size is defined by the architecture's struct tls_tcb layout and the behaviour of RTLD_ALLOC_
Remove tcb_size and flag argument for _rtld_allocate_tls, remove tcb_size argument for _rtld_free_tls. The size is defined by the architecture's struct tls_tcb layout and the behaviour of RTLD_ALLOC_TLS_FREE_OLD is the only possible reaction for old_tcb != NULL which doesn't leak memory.
show more ...
|
#
9e2ee207 |
| 29-Mar-2005 |
Joerg Sonnenberger <joerg@dragonflybsd.org> |
Cleanup the TLS implementation: - Define the TCB layout in machine/tls.h, define wether tcb_self exists or not. - Define the layout of the DTV, not used yet. - Define the TLS variant - Define commo
Cleanup the TLS implementation: - Define the TCB layout in machine/tls.h, define wether tcb_self exists or not. - Define the layout of the DTV, not used yet. - Define the TLS variant - Define common access functions (tls_get_tcb, tls_get_curthread, tls_set_tcb) and the RTLD functions.
show more ...
|
#
bc633d63 |
| 28-Mar-2005 |
Matthew Dillon <dillon@dragonflybsd.org> |
Cleanup and retool portions of the TLS support and make sure that non-threaded binaries remain compatible with older kernels.
* Removes the tcb alignment argument. Instead an alignment #define is
Cleanup and retool portions of the TLS support and make sure that non-threaded binaries remain compatible with older kernels.
* Removes the tcb alignment argument. Instead an alignment #define is placed in sys/tls.h
* Gets rid of the Variant I code (we can add it in later, it just gets in the way).
* Retools the Variant II code to support %gs:OFFSET (negative offset) AND %gs:0 relative accesses, supporting both -mtls-direct-seg-refs and -mno-tls-direct-seg-refs.
* Changes the Elf_Addr array for the TCB into a real structure in sys/tls.h
* Retains the DTV methodology.
* Retains the TCB methodology, but note that the area 'after' the tcb is now available for future use (at least with Variant I removed). Frankly I'm not sure we would ever want to support having the 'data' area after the TCB instead of before the TCB, at least not for i386.
* Do not try to call sys_set_tls_area() if there is no TLS storage. i.e. so non-threaded binaries remain compatible with old kernels.
The TLS is only initialized if (a) There is thread local storage, aka gcc3's __thread keyword, or (b) The program is linked against a threading library. The threading library makes the appropriate calls to set up the TLS.
show more ...
|
#
9b074eef |
| 20-Mar-2005 |
Joerg Sonnenberger <joerg@dragonflybsd.org> |
Minor style changes.
|
#
92df6c3e |
| 09-Mar-2005 |
David Xu <davidxu@dragonflybsd.org> |
1. use __weak_reference to define weak symbol. 2. fix compiler warnings.
|
#
b00401f0 |
| 08-Mar-2005 |
David Xu <davidxu@dragonflybsd.org> |
Import tls support code for static binary from FreeBSD.
|