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, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, 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, 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, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2 |
|
#
b9f3c495 |
| 30-Nov-2014 |
John Marino <draco@marino.st> |
rtld: Fix LD_LIBMAP under libmap override
Taken from: FreeBSD svn 266411 (18 May 2014)
|
Revision tags: v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2 |
|
#
e0b1d537 |
| 26-Jun-2014 |
Sascha Wildner <saw@online.de> |
Always check the limits of array index variables before using them.
|
Revision tags: v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1 |
|
#
73ff5bd2 |
| 30-Nov-2013 |
John Marino <draco@marino.st> |
rtld: Add directory mapping functionality
Partially taken from: FreeBSD SVN 255765 (21 SEP 2013)
|
Revision tags: v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3 |
|
#
042953d8 |
| 12-Jun-2013 |
John Marino <draco@marino.st> |
rtld: Sync 5/7 - Fix fd leak with parallel dlopen and fork
Rtld did not set FD_CLOEXEC on its internal file descriptors; therefore, such a file descriptor may be passed to a process created by anoth
rtld: Sync 5/7 - Fix fd leak with parallel dlopen and fork
Rtld did not set FD_CLOEXEC on its internal file descriptors; therefore, such a file descriptor may be passed to a process created by another thread running in parallel to dlopen() or fdlopen().
No other threads are expected to be running during parsing of the hints and libmap files but the file descriptors need not be passed to child processes so add O_CLOEXEC there as well.
As the F_DUPFD_CLOEXEC support was added in the kernel today, rtld will temporarily fall back to separate dup/cloexec commands if F_DUPFD_CLOEXEC fails. This fallback should be removed before 3.6 branches.
Taken from: FreeBSD SVN 242587 (04 NOV 2012)
show more ...
|
Revision tags: 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 |
|
#
96a1a5d8 |
| 05-May-2012 |
John Marino <draco@marino.st> |
rtld: Utilize malloc capability of recently updated realpath
Now that DragonFly's realpath works like the FreeBSD version, rtld can use the FreeBSD code without modification which is a little more e
rtld: Utilize malloc capability of recently updated realpath
Now that DragonFly's realpath works like the FreeBSD version, rtld can use the FreeBSD code without modification which is a little more efficient.
show more ...
|
#
51b1ba8e |
| 04-May-2012 |
John Marino <draco@marino.st> |
rtld: Add two special directives to libmap.conf
include <file>: Parse the contents of file before continuing with the current file.
includedir <dir>: Parse the contents of every file in dir
rtld: Add two special directives to libmap.conf
include <file>: Parse the contents of file before continuing with the current file.
includedir <dir>: Parse the contents of every file in dir that ends in .conf before continuing with the current file.
Any file or directory encountered while processing include or includedir directives will be parsed exactly once, even if it is encountered multiple times.
Taken from FreeBSD SVN 234851 (30 APR 2012) with modification:
1) DragonFly realpath works differently than FreeBSD's and doesn't accept a null value for the resolved_path argument. 2) FreeBSD's debug lines reflect the wrong function, lm_init, instead of lmc_parse_file. lmc_parse_dir also calls lmc_parse_file, so the debug message is definitely wrong and was corrected. 3) FreeBSD keeps using path even after determining realpath and putting the result in the rpath variable. It uses path for debug messages and opening a file descriptor. DragonFly doesn't use path again and only uses rpath after it is determined. 4) FreeBSD's lmc_parse_file code had a bug in the linked list used to track which conf files had already been parsed. Memory for the filename was allocated so it wouldn't get overwritten after multiple passes, which is standard for the includedir functionality.
show more ...
|
Revision tags: v3.0.2 |
|
#
b2cf2649 |
| 16-Mar-2012 |
John Marino <draco@marino.st> |
rtld: Shrink by eliminating stdio
Eliminate stdio for parsing libmap.conf, and instead parse it from direct mapping. Also stop using strerror(3) in rtld which sucks in msgcat and stdio. Instead di
rtld: Shrink by eliminating stdio
Eliminate stdio for parsing libmap.conf, and instead parse it from direct mapping. Also stop using strerror(3) in rtld which sucks in msgcat and stdio. Instead directly access sys_errlist array of error messages with private rtld_strerror() function.
Results on x86_64 (includes debug symbols):
> size /usr/libexec/ld-elf.so.2* text data bss dec hex filename 95294 1560 7680 104534 19856 /usr/libexec/ld-elf.so.2 108830 3128 18216 130174 1fc7e /usr/libexec/ld-elf.so.2.old
> ls -al /usr/libexec/ld-elf.so.2* -r-xr-xr-x 1 root wheel 305763 Mar 16 20:33 /usr/libexec/ld-elf.so.2 -r-xr-xr-x 1 root wheel 370392 Mar 14 00:02 /usr/libexec/ld-elf.so.2.old
Taken from: FreeBSD SVN 232862 (2012-03-12) FreeBSD SVN 232974 (2012-03-14)
show more ...
|
Revision tags: v3.0.1, v3.1.0, v3.0.0 |
|
#
f4f4bfd5 |
| 21-Jan-2012 |
John Marino <draco@marino.st> |
rtld: Compress FreeBSD CVSIDs
The FreeBSD repository is still handled by CVS, but its converted to Subversion and from that, git. Neither the svn nor git version feature expanded $FreeBSD$ tags. T
rtld: Compress FreeBSD CVSIDs
The FreeBSD repository is still handled by CVS, but its converted to Subversion and from that, git. Neither the svn nor git version feature expanded $FreeBSD$ tags. The only way to get this is to pull directly from CVS which isn't convenient.
In the case of a few files, the only difference between the DragonFly version and the FreeBSD version is the CVS tag. As the main development of rtld is happening on FreeBSD and since I've started collaborating with FreeBSD developers on new dynamic linker features, we want to actively keep our linkers synchronized. Compressing the FreeBSD CVSID tags makes that easier for me, the only person currently maintaining the dynamic linker. The usually-wrong expanded CVS tag wasn't providing any useful information to me either.
show more ...
|
#
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 |
|
#
fcf53d9b |
| 13-Apr-2011 |
John Marino <draco@marino.st> |
rtld-elf: Sync with FreeBSD
The DragonFly run-time linker receives its first upgrade since TLS was added. Highlights include improvements to dl functionality:
dlvsym dl_iterate_phdr _rtld_addr_phd
rtld-elf: Sync with FreeBSD
The DragonFly run-time linker receives its first upgrade since TLS was added. Highlights include improvements to dl functionality:
dlvsym dl_iterate_phdr _rtld_addr_phdr improved dlfunct
Improved security for dangerous LD environment variables were added. Several bugs were fixed. libmap.conf functionality was added. utrace/ktrace support added. Improved atexit and cxa_atexit finalization. ELF symbol versioning using gnu semantics. ldd and kdump improvments significant man page updates dynamic token expansion functionlity added. new locking mechanism Support for env var LD_ELF_HINTS_PATH Support for RTLD_NODELETE and RTLD_NOLOAD flags for dlopen dlfunc moved from libc to rtld
The next GCC upgrade will take advantage of this rtld upgrade in order to improve exception handling. DragonFly has never used the shared libgcc_s which has impeded (or broke?) C++ exception handling.
This commit syncs rtld-elf to the FreeBSD cerca 16 DEC 2010. However, bug fixes between then and 25 March 2011 have been included, but major functionality changes from the ELF Filter support on 25 DEC 2010 onwards has been excluded.
show more ...
|