From: Alejandro Colomar <alx@kernel.org>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Cc: linux-man@vger.kernel.org
Subject: Re: [PATCH v2 2/2] ld.so.8: Describe glibc Hardware capabilities
Date: Thu, 19 Oct 2023 15:03:17 +0200 [thread overview]
Message-ID: <ZTEpFReLAM-VhwKA@debian> (raw)
In-Reply-To: <20231019123139.1808532-3-adhemerval.zanella@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 3588 bytes --]
Hi Adhemerval,
On Thu, Oct 19, 2023 at 09:31:39AM -0300, Adhemerval Zanella wrote:
> It was added on glibc 2.33 as a way to improve path search, since
> legacy hardware capabilities combination scheme do not scale
> properly with new hardware support. The legacy support was removed
> on glibc 2.37, so it is the only scheme currently supported.
>
> Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> man8/ld.so.8 | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 47 insertions(+), 1 deletion(-)
>
> diff --git a/man8/ld.so.8 b/man8/ld.so.8
> index cf03cb85e..3025da861 100644
> --- a/man8/ld.so.8
> +++ b/man8/ld.so.8
> @@ -208,6 +208,14 @@ The objects in
> .I list
> are delimited by colons.
> .TP
> +.BI \-\-glibc-hwcaps-mask " list"
> +only search built-in subdirectories if in
> +.IR list .
> +.TP
> +.BI \-\-glibc-hwcaps-prepend " list"
> +Search glibc-hwcaps subdirectories in
> +.IR list .
> +.TP
> .B \-\-inhibit\-cache
> Do not use
> .IR /etc/ld.so.cache .
> @@ -808,7 +816,7 @@ as a temporary workaround to a library misconfiguration issue.)
> .I lib*.so*
> shared objects
> .SH NOTES
> -.SS Hardware capabilities
> +.SS Legacy Hardware capabilities (from glibc 2.5 to glibc 2.37)
> Some shared objects are compiled using hardware-specific instructions which do
> not exist on every CPU.
> Such objects should be installed in directories whose names define the
> @@ -843,6 +851,44 @@ z900, z990, z9-109, z10, zarch
> .B x86 (32-bit only)
> acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, mmx,
> mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm
> +.SS glibc Hardware capabilities (from glibc 2.33)
> +The legacy hardware capabilities combinations has the drawback where each
> +feature name incur in cascading extra paths added on the search path list,
Use semantic newlines:
The legacy hardware capabilities combinations has the drawback where
each feature name incur in
cascading extra paths added on the search path list
> +adding a lot of overhead on
> +.B ld.so
> +during library resolution.
> +For instance, on x86 32-bit, if the hardware
> +supports
> +.B i686
> +and
> +.B sse2
.BR sse2 ,
Otherwise, you'll see a space after the comma. BR alternates bold and
roman for its arguments, and puts them together without spaces.
> +, the resulting search path will be
> +.B
> +i686/sse2:i686:sse2:. .
.BR i686/sse2:i686:sse2:. .
> +A new capability
> +.B newcap
> +will set the search path to
> +.B
> +newcap/i686/sse2:newcap/i686:newcap/sse2:newcap:i686/sse2:i686:sse2: .
.BR newcap/i686/sse2:newcap/i686:newcap/sse2:newcap:i686/sse2:i686:sse2: .
> +
.PP
> +glibc 2.33 added a new hardware capability scheme, where each ABI can define
s/, /,\n/
> +a set of paths based on expected hardware support.
> +Each path is added depending of the hardware of the machine, and they are not
s/, /,\n/
> +combined together.
> +They also have priority over the legacy hardware capabilities. The following
s/\. /\.\n/
Cheers,
Alex
> +paths are currently supported.
> +.TP
> +.B PowerPC (64-bit little-endian only)
> +power9, power10
> +.TP
> +.B s390 (64-bit only)
> +z13, z14, z15, z16
> +.TP
> +.B x86 (64-bit only)
> +x86-64-v2, x86-64-v3, x86-64-v4
> +.PP
> +The glibc 2.37 removed support for the legacy hardware capabilities.
> +.
> .SH SEE ALSO
> .BR ld (1),
> .BR ldd (1),
> --
> 2.34.1
>
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2023-10-19 13:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 12:31 [PATCH v2 0/2] Some ld.so updates Adhemerval Zanella
2023-10-19 12:31 ` [PATCH v2 1/2] ld.so.8: Clarify LD_PROFILE in secure-execution mode Adhemerval Zanella
2023-10-19 12:56 ` Alejandro Colomar
2023-10-19 12:31 ` [PATCH v2 2/2] ld.so.8: Describe glibc Hardware capabilities Adhemerval Zanella
2023-10-19 13:03 ` Alejandro Colomar [this message]
2023-10-19 14:19 ` Adhemerval Zanella Netto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZTEpFReLAM-VhwKA@debian \
--to=alx@kernel.org \
--cc=adhemerval.zanella@linaro.org \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.