Page MenuHomeFreeBSD

rtld-elf: Pass parsed aux_info to ifunc_init
ClosedPublic

Authored by jrtc27 on Aug 13 2024, 4:22 AM.
Tags
None
Referenced Files
F132228008: D46276.id142358.diff
Wed, Oct 15, 12:02 AM
F132228001: D46276.id142029.diff
Wed, Oct 15, 12:02 AM
F132227985: D46276.id.diff
Wed, Oct 15, 12:02 AM
F132190164: D46276.diff
Tue, Oct 14, 3:14 PM
Unknown Object (File)
Wed, Oct 8, 8:16 PM
Unknown Object (File)
Sun, Oct 5, 7:01 AM
Unknown Object (File)
Thu, Sep 18, 9:19 AM
Unknown Object (File)
Tue, Sep 16, 12:43 PM
Subscribers

Details

Summary

Currently we pass the raw pointer to the on-stack auxargs. This can
legitimately have fewer than AT_COUNT entries, so the use of
__min_size(AT_COUNT), i.e. static AT_COUNT, is inaccurate, and also
needlessly forces the callee to iterate over the elements to find the
entry for a given type. Instead we can just pass aux_info like we use
for everything else.

Note that the argument has been left unused by every callee since its
introduction in 4352999e0e6c ("Pass CPUID[1] %edx (cpu_feature), %ecx
(cpu_feature2) and CPUID[7].%ebx (cpu_stdext_feature), %ecx
(cpu_stdext_feature2) to the ifunc resolvers on x86.")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable