diff options
| author | Joseph Mingrone <jrm@FreeBSD.org> | 2026-08-17 19:05:20 +0000 |
|---|---|---|
| committer | Joseph Mingrone <jrm@FreeBSD.org> | 2026-08-18 14:44:05 +0000 |
| commit | fafe12496ba6146c7155b5fc71642270a7b33926 (patch) | |
| tree | 02282cb20946e39a39011d4bd1f441b807520825 /net-im/purple-mattermost | |
| parent | cc12e004f460f636a99589565f9e3eaa42fb8554 (diff) | |
After the baselibs() fix in f0f863b1a2d6, readelf is executed for each
result from find(1). There are two concerns with this fix:
1. -exec readelf -d {} \; drops the filename from the error messages
readelf prints "File: <name>" headers only when it is supplied with two
or more files, and baselibs() uses ${file} from those headers. So, the
two err() messages in baselibs() will break.
This is moot for now, though, because nothing in the ports tree can
trigger these errors. Those base soname versions for libarchive and
libedit are long gone.
2. Performance hit with one readelf execution per staged file
The costs are high for ports that stage many files. For
emulators/linux_base-rl9, the find returns over 30k hits that the while
loop must iterate over. It took about 15s for baselibs() to process
these files on an i7-10710U build system.
To fix these issues, use a filter similar to the one used by
proxydeps(). This way, only ELF objects are fed to one instance of
readelf, and the timing for baselibs() to process
emulators/linux_base-rl9 drops to about 1.5s.
PR: 296889
Reviewed by: portmgr (bapt)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58900
Diffstat (limited to 'net-im/purple-mattermost')
0 files changed, 0 insertions, 0 deletions
