<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/libexec/rtld-elf/rtld_printf.c, branch releng/13.5</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F13.5</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F13.5'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2024-05-03T00:26:26Z</updated>
<entry>
<title>rtld snprintf: do not erronously skip a char at the buffer boundary</title>
<updated>2024-05-03T00:26:26Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2024-04-28T06:37:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d9ec850bde3c8695bebfdfeea72deb1d060cd183'/>
<id>urn:sha1:d9ec850bde3c8695bebfdfeea72deb1d060cd183</id>
<content type='text'>
(cherry picked from commit 56ee5fc43c40479e2651b21862e299bcf73017ae)
</content>
</entry>
<entry>
<title>Remove $FreeBSD$: two-line .h pattern</title>
<updated>2023-08-23T17:43:21Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-22T01:31:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=17da660ad5b3b9cd90e164dd4dbb9beaa7203054'/>
<id>urn:sha1:17da660ad5b3b9cd90e164dd4dbb9beaa7203054</id>
<content type='text'>
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/

Similar commit in main:
(cherry picked from commit b3e7694832e8)
</content>
</entry>
<entry>
<title>rtld: add rtld_fdprintfx()</title>
<updated>2021-11-19T04:25:27Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2021-11-13T01:49:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ec3bd288b6e96b6008377cafd87de71a7f84b884'/>
<id>urn:sha1:ec3bd288b6e96b6008377cafd87de71a7f84b884</id>
<content type='text'>
(cherry picked from commit 77c088ab2109a376b71decce80e89d4f20ef8223)
</content>
</entry>
<entry>
<title>Reduce size of rtld by 22% by pulling in less code from libc</title>
<updated>2019-06-30T11:49:58Z</updated>
<author>
<name>Alex Richardson</name>
<email>arichardson@FreeBSD.org</email>
</author>
<published>2019-06-30T11:49:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b54a59f3ba244b76a34488090653df687527e53c'/>
<id>urn:sha1:b54a59f3ba244b76a34488090653df687527e53c</id>
<content type='text'>
Currently RTLD is linked against libc_nossp_pic which means that any libc
symbol used in rtld can pull in a lot of depedencies. This was causing
symbol such as __libc_interposing and all the pthread stubs to be included
in RTLD even though they are not required. It turns out most of these
dependencies can easily be avoided by providing overrides inside of rtld.

This change is motivated by CHERI, where we have an experimental ABI that
requires additional relocation processing to allow the use of function
pointers inside of rtld. Instead of adding this self-relocation code to
RTLD I attempted to remove most function pointers from RTLD and discovered
that most of them came from the libc dependencies instead of being actually
used inside rtld.

A nice side-effect of this change is that rtld is now 22% smaller on amd64.

   text	   data	    bss	    dec	    hex	filename
0x21eb6	  0xce0	  0xe60	 145910	  239f6	/home/alr48/ld-elf-x86.before.so.1
0x1a6ed	  0x728	  0xdd8	 113645	  1bbed	/home/alr48/ld-elf-x86.after.so.1

The number of R_X86_64_RELATIVE relocations that need to be processed on
startup has also gone down from 368 to 187 (almost 50% less).

Reviewed By:	kib
Differential Revision: https://reviews.freebsd.org/D20663
</content>
</entry>
<entry>
<title>rtld-elf: fix more warnings to allow compiling with WARNS=6</title>
<updated>2018-10-29T21:08:28Z</updated>
<author>
<name>Alex Richardson</name>
<email>arichardson@FreeBSD.org</email>
</author>
<published>2018-10-29T21:08:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3ab5b6bd979c53e17056ed91f6fe6f0358ed72c9'/>
<id>urn:sha1:3ab5b6bd979c53e17056ed91f6fe6f0358ed72c9</id>
<content type='text'>
Reviewed By:	kib
Approved By:	brooks (mentor)
Differential Revision: https://reviews.freebsd.org/D17154
</content>
</entry>
<entry>
<title>General further adoption of SPDX licensing ID tags.</title>
<updated>2017-11-20T19:49:47Z</updated>
<author>
<name>Pedro F. Giffuni</name>
<email>pfg@FreeBSD.org</email>
</author>
<published>2017-11-20T19:49:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8a16b7a18f5d0b031f09832fd7752fba717e2a97'/>
<id>urn:sha1:8a16b7a18f5d0b031f09832fd7752fba717e2a97</id>
<content type='text'>
Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.
</content>
</entry>
<entry>
<title>Renumber copyright clause 4</title>
<updated>2017-02-28T23:42:47Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2017-02-28T23:42:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=fbbd9655e5107c68e4e0146ff22b73d7350475bc'/>
<id>urn:sha1:fbbd9655e5107c68e4e0146ff22b73d7350475bc</id>
<content type='text'>
Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by:	Jan Schaumann &lt;jschauma@stevens.edu&gt;
Pull Request:	https://github.com/freebsd/freebsd/pull/96
</content>
</entry>
<entry>
<title>Add the LD_LIBRARY_PATH_FDS environmental variable.</title>
<updated>2014-06-20T17:08:32Z</updated>
<author>
<name>Jonathan Anderson</name>
<email>jonathan@FreeBSD.org</email>
</author>
<published>2014-06-20T17:08:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=02d3b38e0a766bde374de052a2c65a095282f302'/>
<id>urn:sha1:02d3b38e0a766bde374de052a2c65a095282f302</id>
<content type='text'>
This variable allows the loading of shared libraries via directory descriptors
rather than via library paths.  If LD_LIBRARY_PATH_FDS=3:4:12, the directories
represented by file descriptors 3, 4 and 12 will searched for shared libraries
before the normal path-based mechanisms are used.  This allows us to execute
unprivileged binaries from within a Capsicum sandbox even if they require
shared libraries.

Approved by:	rwatson (mentor)
Reviewed by:	kib
MFC after:	3 weeks
Sponsored by:	DARPA/AFRL
</content>
</entry>
<entry>
<title>Remove the use of toupper() from rtld_printf.c.  Use of the libc function</title>
<updated>2012-03-09T16:21:40Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2012-03-09T16:21:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5983b87199bb61cab7978c8af191653739ff53f5'/>
<id>urn:sha1:5983b87199bb61cab7978c8af191653739ff53f5</id>
<content type='text'>
relies on working TLS, which is particulary not true for LD_DEBUG uses.

MFC after:	1 week
</content>
</entry>
<entry>
<title>Do not use the function pointers for the internal operation of rtld_printf()</title>
<updated>2011-09-06T10:21:33Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-09-06T10:21:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b236731716168a130e176bbd18d4790a6d3940d6'/>
<id>urn:sha1:b236731716168a130e176bbd18d4790a6d3940d6</id>
<content type='text'>
functions. The _rtld_error() function might be called early during the rtld
bootstrap, in which case function pointers are not yet functional on ia64
due to required relocations not yet performed.

Reported, reviewed and tested by:	marcel
Approved by:	re (bz)
</content>
</entry>
</feed>
