History log of /dragonfly/libexec/rtld-elf/libmap.c (Results 1 – 10 of 10)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...