HomeFreeBSD

rtld: ignore load_filtees() calls if we already loading filtees for the obj

Description

rtld: ignore load_filtees() calls if we already loading filtees for the obj

in addition to avoiding it for already loaded filtees. Issue is that
during load, rtld needs to resolve some special ABI symbols, like
executable stack fixer and static TLS initializer, which might trigger
recursion.

Example is libthr which is filter for libsys, and which exports
__pthread_distribute_static_tls.

Tested by: kevans, krion
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43858

Details

Provenance
kibAuthored on Feb 13 2024, 1:09 AM
Reviewer
markj
Differential Revision
D43858: More avoidance of the filtees loading recursion
Parents
rG30b5f6b33b35: rtld load_filtees(): reindent and reduce block nesting
Branches
Unknown
Tags
Unknown