<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/libexec/rtld-elf/rtld.1, branch releng/10.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F10.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2012-07-15T10:53:48Z</updated>
<entry>
<title>Import the DragonFly BSD commit 4f0bc915b65fcf5a23214f6d221d65c80be68ad4</title>
<updated>2012-07-15T10:53:48Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2012-07-15T10:53:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bca2f6239d0633e0250d1cf0614a7d5b48d75855'/>
<id>urn:sha1:bca2f6239d0633e0250d1cf0614a7d5b48d75855</id>
<content type='text'>
by John Marino &lt;draco@marino.st&gt;, with the following (edited) commit
message
Date: Sat, 24 Mar 2012 06:40:50 +0100
Subject: [PATCH 1/1] rtld: Implement DT_RUNPATH and -z nodefaultlib

DT_RUNPATH is incorrectly being considered as an alias of DT_RPATH.  The
purpose of DT_RUNPATH is to have two different types of rpath: one that
can be overridden by the environment variable LD_LIBRARY_PATH and one that
can't.  With the currently implementation, LD_LIBRARY_PATH will always
trump any embedded rpath or runpath tags.

Current path search order by rtld:
==================================
LD_LIBRARY_PATH
DT_RPATH / DT_RUNPATH (always the same)
ldconfig hints file (default: /var/run/ld-elf.so.hints)
/usr/lib

New path search order by rtld:
==============================
DT_RPATH of the calling object if no DT_RUNPATH
DT_RPATH of the main binary if no DT_RUNPATH and binary isn't calling obj
LD_LIBRARY_PATH
DT_RUNPATH
ldconfig hints file
/usr/lib

The new path search matches how the linux runtime loader works.  The other
major added feature is support for linker flag "-z nodefaultlib".  When
this flag is passed to the linker, rtld will skip all references to the
standard library search path ("/usr/lib" in this case but it could handle
more color delimited paths) except in DT_RPATH and DT_RUNPATH.

New path search order by rtld with -z nodefaultlib flag set:
============================================================
DT_RPATH of the calling object if no DT_RUNPATH
DT_RPATH of the main binary if no DT_RUNPATH and binary isn't calling obj
LD_LIBRARY_PATH
DT_RUNPATH
ldconfig hints file (skips all references to /usr/lib)

FreeBSD notes:
- we fixed some bugs which were submitted to DragonFly and merged there
  as commit 1ff8a2bd3eb6e5587174c6a983303ea3a79e0002;
- we added LD_LIBRARY_PATH_RPATH environment variable to switch to
  the previous behaviour of considering DT_RPATH a synonym for DT_RUNPATH;
- the FreeBSD default search path is /lib:/usr/lib and not /usr/lib.

Reviewed by:   kan
MFC after:     1 month
MFC note:      flip the ld_library_path_rpath default value for stable/9
</content>
</entry>
<entry>
<title>Implement support for ELF filters in rtld. Both normal and auxillary</title>
<updated>2010-12-25T08:51:20Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2010-12-25T08:51:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8569deaf1cba0d732647f0dae7eb5af2ee5fae1b'/>
<id>urn:sha1:8569deaf1cba0d732647f0dae7eb5af2ee5fae1b</id>
<content type='text'>
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 &lt;i levsha me&gt;, nwhitehorn (powerpc)
</content>
</entry>
<entry>
<title>mdoc: drop redundant .Pp and .LP calls</title>
<updated>2010-10-08T12:40:16Z</updated>
<author>
<name>Ulrich Spörlein</name>
<email>uqs@FreeBSD.org</email>
</author>
<published>2010-10-08T12:40:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0d9deed52c5ed3b24d2da5ec3a0a172fe9092a96'/>
<id>urn:sha1:0d9deed52c5ed3b24d2da5ec3a0a172fe9092a96</id>
<content type='text'>
They have no effect when coming in pairs, or before .Bl/.Bd
</content>
</entry>
<entry>
<title>Document RTLD_NODELETE, -z nodelete and -z origin support.</title>
<updated>2009-04-01T14:38:20Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2009-04-01T14:38:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b2e4ce45d958731223ce1d47d197120c0c34df8e'/>
<id>urn:sha1:b2e4ce45d958731223ce1d47d197120c0c34df8e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support for a new environment variable, LD_ELF_HINTS_PATH for overriding</title>
<updated>2009-03-23T16:49:00Z</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2009-03-23T16:49:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=569e2ef6a975bb72fb9c139ddab433d25f0e77ab'/>
<id>urn:sha1:569e2ef6a975bb72fb9c139ddab433d25f0e77ab</id>
<content type='text'>
the rtld hints file.  This environment variable would be unset if the
process is considered as tainted with setuid/setgid.  This feature gives
a convenient way of using a custom set of shared library that is not
located in the default location and switch back.

Feature requested by:	iXsystems
Original patch by:	John Hixson
MFC after:		2 weeks
</content>
</entry>
<entry>
<title>Make the meaning of the %A format specifier, as passed to</title>
<updated>2008-05-15T10:47:14Z</updated>
<author>
<name>Bruce M Simpson</name>
<email>bms@FreeBSD.org</email>
</author>
<published>2008-05-15T10:47:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=523b17effe5f431849cad5e65d6369ca9fc4dee1'/>
<id>urn:sha1:523b17effe5f431849cad5e65d6369ca9fc4dee1</id>
<content type='text'>
LD_TRACE_LOADED_OBJECTS_FMT[12], more obvious for users like me.
</content>
</entry>
<entry>
<title>Update the man page to reflect that certain variables will be unset in</title>
<updated>2007-05-17T19:14:25Z</updated>
<author>
<name>Christian S.J. Peron</name>
<email>csjp@FreeBSD.org</email>
</author>
<published>2007-05-17T19:14:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b075897e99baba35199f2b2b23878a10b259dfc2'/>
<id>urn:sha1:b075897e99baba35199f2b2b23878a10b259dfc2</id>
<content type='text'>
the case that the program is set-user-ID or set-group-ID. Add missing
annotations for LIBMAP and LIBMAP_DISABLE.
</content>
</entry>
<entry>
<title>Remove %m formatter, it's ifdef 0'ed in the code from the very beginning</title>
<updated>2007-05-12T12:26:25Z</updated>
<author>
<name>Pav Lucistnik</name>
<email>pav@FreeBSD.org</email>
</author>
<published>2007-05-12T12:26:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=88922cf00e6814a616d4a93a868e0bd50e4fada8'/>
<id>urn:sha1:88922cf00e6814a616d4a93a868e0bd50e4fada8</id>
<content type='text'>
MFC after:	1 week
</content>
</entry>
<entry>
<title>Expand documentation for LD_TRACE_LOADED_OBJECTS_FMT? variables</title>
<updated>2007-05-12T12:24:49Z</updated>
<author>
<name>Pav Lucistnik</name>
<email>pav@FreeBSD.org</email>
</author>
<published>2007-05-12T12:24:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b9e1d83e61467ed96524d85e195bd585f7b469a4'/>
<id>urn:sha1:b9e1d83e61467ed96524d85e195bd585f7b469a4</id>
<content type='text'>
PR:		docs/66265 (inspired by)
Submitted by:	Michel Lavondes &lt;fox@vader.aacc.cc.md.us&gt;
MFC after:	1 week
</content>
</entry>
<entry>
<title>Document LD_UTRACE.</title>
<updated>2007-01-23T22:38:39Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2007-01-23T22:38:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f0ac0f92fb1a5b5b3b9c42081e65f4687c5606c8'/>
<id>urn:sha1:f0ac0f92fb1a5b5b3b9c42081e65f4687c5606c8</id>
<content type='text'>
MFC after:	3 days
</content>
</entry>
</feed>
