History log of /freebsd-12.1/libexec/rtld-elf/rtld.c (Results 1 – 25 of 331)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0
# 2a3873b3 12-Jun-2019 Konstantin Belousov <[email protected]>

MFC r347151,347181,347968,348421,348698,348701:
Switch to use shared vnode locks for text files during image activation.

For MFC, VOP_GET_WRITECOUNT was left in the slot for KBI stability, but it
is

MFC r347151,347181,347968,348421,348698,348701:
Switch to use shared vnode locks for text files during image activation.

For MFC, VOP_GET_WRITECOUNT was left in the slot for KBI stability, but it
is unused.

show more ...


# ca80d1f4 22-Apr-2019 Konstantin Belousov <[email protected]>

MFC r346225:
Fix order of destructors between main binary and libraries.


# 6bd1b82e 12-Apr-2019 Konstantin Belousov <[email protected]>

MFC r345703:
Fix initial exec TLS mode for dynamically loaded shared objects.


# 75114429 30-Mar-2019 Konstantin Belousov <[email protected]>

MFC r345620:
rtld: disable relro enforcement for irelative relocation processing.


# adbc4082 11-Feb-2019 Konstantin Belousov <[email protected]>

MFC r339877-r339879,r343564-r343566,r343580,r343754:
Untangle jemalloc and mutexes initialization.

The merge includes required warnings cleanup by arichardson, both to
avoid conflicts and to make rt

MFC r339877-r339879,r343564-r343566,r343580,r343754:
Untangle jemalloc and mutexes initialization.

The merge includes required warnings cleanup by arichardson, both to
avoid conflicts and to make rtld_malloc.c compilable with the libthr
WARNS settings.

show more ...


# ed63bb9d 03-Feb-2019 Konstantin Belousov <[email protected]>

MFC r343484:
Remove now redundand ifunc relocation code which should have been
removed as part of r341441.


# b6795683 07-Jan-2019 Michal Meloun <[email protected]>

MFC r342113:

Improve R_AARCH64_TLSDESC relocation. The original code did not support
dynamically loaded libraries and used suboptimal access to TLS variables.
New implementation removes lazy

MFC r342113:

Improve R_AARCH64_TLSDESC relocation. The original code did not support
dynamically loaded libraries and used suboptimal access to TLS variables.
New implementation removes lazy resolving of TLS relocation - due to flaw in
TLSDESC design is impossible to switch resolver function at runtime without
expensive locking.

show more ...


# a2093b45 10-Dec-2018 Konstantin Belousov <[email protected]>

MFC r341439:
Provide naive but self-contained implementations of memset(3) and
bzero(3) for rtld.


# e60db3bf 10-Dec-2018 Konstantin Belousov <[email protected]>

MFC r341441:
Some fixes for LD_BIND_NOW + ifuncs.


# fcc9b1b6 07-Dec-2018 Konstantin Belousov <[email protected]>

MFC r340858:
rtld: parse FreeBSD Feature Control note on the object load.


Revision tags: release/12.0.0
# 9d196240 27-Nov-2018 Konstantin Belousov <[email protected]>

MFC r340675:
rtld: when immediate bind mode is requested, process irelocs in PLT
immediately after other PLT relocs.


# 6b05d8ea 07-Nov-2018 Konstantin Belousov <[email protected]>

MFC r339896:
Initialize ifunc calling machinery earlier.

Approved by: re (gjb)


# 6b7a2785 07-Nov-2018 Ed Maste <[email protected]>

MFC r340137: rtld: move relro enforcement after ifunc processing

Previously the combination of relro (implicit), -z now and ifunc use
resulted in a segfault when applying ifuncs after relro (test bi

MFC r340137: rtld: move relro enforcement after ifunc processing

Previously the combination of relro (implicit), -z now and ifunc use
resulted in a segfault when applying ifuncs after relro (test binary
here just calls amd64_get_fsbase()):

| % env LD_DEBUG=1 libexec/rtld-elf/obj/ld-elf.so.1 a.out
| ...
| enforcing main obj relro
| ...
| resolving ifuncs
| reloc_jmpslot: *0x203198 = 0x189368ea4570
| zsh: bus error (core dumped) LD_DEBUG=1 obj/ld-elf.so.1 ~/a.out

Approved by: re (gjb)

show more ...


# d2f2e4c0 26-Sep-2018 Konstantin Belousov <[email protected]>

Provide refobj context when doing libmap substitution inside
search_library_path().

This corrects the scope of libmap matches.

Reported and tested by: Andreas Longwitz <[email protected]>
Sponsore

Provide refobj context when doing libmap substitution inside
search_library_path().

This corrects the scope of libmap matches.

Reported and tested by: Andreas Longwitz <[email protected]>
Sponsored by: The FreeBSD Foundation
Approved by: re (gjb)
MFC after: 1 week

show more ...


# 17fb2856 05-Sep-2018 Brooks Davis <[email protected]>

Rework rtld's TLS Variant I implementation to match r326794

The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation

Rework rtld's TLS Variant I implementation to match r326794

The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes. Thus,
port these changes to rtld.

This was previously commited as r337978 and reverted in r338149 due to
exposing a bug the ARM rtld. This bug was fixed in r338317 by mmel.

Submitted by: James Clarke
Approved by: re (kib)
Reviewed by: kbowling
Testing by: kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D16510

show more ...


# a5207d3e 21-Aug-2018 Brooks Davis <[email protected]>

Revert r337978: Rework rtld's TLS Variant I implementation to match r326794

Michal Meloun reports that it breaks ctype (isspace()..) related
functions on armv7 so back out while we diagnose the issu

Revert r337978: Rework rtld's TLS Variant I implementation to match r326794

Michal Meloun reports that it breaks ctype (isspace()..) related
functions on armv7 so back out while we diagnose the issue.

Reported by: Michal Meloun <[email protected]>

show more ...


# 9b50d816 17-Aug-2018 Brooks Davis <[email protected]>

Rework rtld's TLS Variant I implementation to match r326794

The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation

Rework rtld's TLS Variant I implementation to match r326794

The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes. Thus,
port these changes to rtld.

Submitted by: James Clarke
Reviewed by: kbowling
Testing byL kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D16510

show more ...


# 711a4538 02-Aug-2018 Edward Tomasz Napierala <[email protected]>

Make sure the rtld(1) error messages go to stderr, not stdout.
While here fix capitalization of a few nearby strings, add the
rtld's file name prefix so it's obvious where the message come
from, and

Make sure the rtld(1) error messages go to stderr, not stdout.
While here fix capitalization of a few nearby strings, add the
rtld's file name prefix so it's obvious where the message come
from, and return zero when "-h" is used.

Reviewed by: kib
MFC after: 2 weeks
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D16530

show more ...


Revision tags: release/11.2.0
# 0725fca5 09-May-2018 Konstantin Belousov <[email protected]>

Make rtld use libc_nossp_pic.a. Remove SSP shims.

Submitted by: Luis Pires
Reviewed by: brooks
Differential revision: https://reviews.freebsd.org/D15341


# 41fc6f68 03-Feb-2018 Marius Strobl <[email protected]>

o Let rtld(1) set up psABI user trap handlers prior to executing the
objects' init functions instead of doing the setup via a constructor
in libc as the init functions may already depend on these

o Let rtld(1) set up psABI user trap handlers prior to executing the
objects' init functions instead of doing the setup via a constructor
in libc as the init functions may already depend on these handlers
to be in place. This gets us rid of:
- the undefined order in which libc constructors as __guard_setup()
and jemalloc_constructor() are executed WRT __sparc_utrap_setup(),
- the requirement to link libc last so __sparc_utrap_setup() gets
called prior to constructors in other libraries (see r122883).
For static binaries, crt1.o still sets up the user trap handlers.
o Move misplaced prototypes for MD functions in to the MD prototype
section of rtld.h.
o Sprinkle nitems().

show more ...


# e6209940 27-Nov-2017 Pedro F. Giffuni <[email protected]>

libexec: adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone -

libexec: adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

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.

No functional change intended.

show more ...


# b4ed9a87 24-Oct-2017 Edward Tomasz Napierala <[email protected]>

Remove unneeded calls to access(2) from rtld(1); just call open(2) instead.
The result looks like this:

--- przed 2017-10-21 23:19:21.445034000 +0100
+++ po 2017-10-21 23:18:50.031865000 +010

Remove unneeded calls to access(2) from rtld(1); just call open(2) instead.
The result looks like this:

--- przed 2017-10-21 23:19:21.445034000 +0100
+++ po 2017-10-21 23:18:50.031865000 +0100
@@ -11,7 +11,6 @@ mmap(0x0,102,PROT_READ,MAP_PRIVATE,3,0x0) = 343665418
close(3) = 0 (0x0)
open("/usr/local/etc/libmap.d",O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC,0165) ERR#2 'No such file or directory'
munmap(0x80067d000,102) = 0 (0x0)
-access("/usr/local/lib/libintl.so.8",F_OK) = 0 (0x0)
openat(AT_FDCWD,"/usr/local/lib/libintl.so.8",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
fstat(3,{ mode=-rw-r--r-- ,inode=642560,size=55188,blksize=32768 }) = 0 (0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366541824 (0x80067d000)
@@ -20,14 +19,13 @@ mmap(0x800877000,40960,PROT_READ|PROT_EXEC,MAP_PRIVATE
mmap(0x800a81000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0xa000) = 34370752512 (0x800a81000)
munmap(0x80067d000,4096) = 0 (0x0)
close(3) = 0 (0x0)
-access("/usr/local/lib/libc.so.7",F_OK) ERR#2 'No such file or directory'
+openat(AT_FDCWD,"/usr/local/lib/libc.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) ERR#2 'No such file or directory'
openat(AT_FDCWD,"/var/run/ld-elf.so.hints",O_RDONLY|O_CLOEXEC,00) = 3 (0x3)
read(3,"Ehnt\^A\0\0\0\M^@\0\0\0\M-2\0\0"...,128) = 128 (0x80)
fstat(3,{ mode=-r--r--r-- ,inode=970684,size=306,blksize=32768 }) = 0 (0x0)
lseek(3,0x80,SEEK_SET) = 128 (0x80)
read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,178) = 178 (0xb2)
close(3) = 0 (0x0)
-access("/lib/libc.so.7",F_OK) = 0 (0x0)
openat(AT_FDCWD,"/lib/libc.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=1605239,size=1910320,blksize=32768 }) = 0 (0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34366541824 (0x80067d000)

Reviewed by: kib
MFC after: 2 weeks
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D12766

show more ...


# 2fe071d9 24-Oct-2017 Edward Tomasz Napierala <[email protected]>

Replace lseek(2)/read(2) pair with pread(2), removing yet another syscall
from the binary startup code.

MFC after: 2 weeks
Sponsored by: DARPA, AFRL


# 1689a3c4 24-Oct-2017 Edward Tomasz Napierala <[email protected]>

Make find_library() conform to style(9). No functional changes.

Suggested by: kib
MFC after: 2 weeks
Sponsored by: DARPA, AFRL


# e65ad973 24-Oct-2017 Edward Tomasz Napierala <[email protected]>

Reword the conditional; it was ugly, and adding another parameter,
which I'm going to do in a subsequent commit, would make it even uglier.
No functional changes.

MFC after: 2 weeks
Sponsored by: DA

Reword the conditional; it was ugly, and adding another parameter,
which I'm going to do in a subsequent commit, would make it even uglier.
No functional changes.

MFC after: 2 weeks
Sponsored by: DARPA, AFRL

show more ...


12345678910>>...14