This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH glibc 2/2] aarch64: handle STO_AARCH64_VARIANT_PCS
- From: Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: nd <nd at arm dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, Rich Felker <dalias at libc dot org>, Peter Smith <peter dot smith at linaro dot org>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Richard Sandiford <Richard dot Sandiford at arm dot com>, Tejas Belagod <Tejas dot Belagod at arm dot com>
- Date: Fri, 7 Jun 2019 11:54:45 +0000
- Subject: Re: [PATCH glibc 2/2] aarch64: handle STO_AARCH64_VARIANT_PCS
- References: <3c35b5f5-b13b-5e75-f0ed-2cbf788d83cf@arm.com> <35229f84-57b4-5ca3-badb-82926bb6bb74@arm.com> <87o93txv23.fsf@oldenburg2.str.redhat.com> <1330a818-213a-13a9-3a33-48933cc22c6a@arm.com> <2d825839-e919-9b4c-dab7-8882bf8ff54e@arm.com> <5e1bcf22-157d-111b-474c-e4ebbd9ed86f@arm.com> <73a97661-f5ba-86d6-ee35-24775e79fff7@arm.com> <0c0a345c-6861-0180-7a24-d4a64233f062@arm.com>
Florian: please explain if you still prefer a new dynamic reloc.
alternatives:
(1) stick to proposed abi text and the posted patches.
(check st_other flag and force bind now if necessary)
(2) use a new dynamic relocation type for variant pcs
symbols with PLT entries. (and always force that
to bind now)
(3) keep the abi text but in static linkers for linux
reorder PLTs such that variant pcs PLTs come at the
end and associated relocations and GOT entries are
moved out of the .rela.plt and .got.plt area.
(this is backward compatible with existing libcs)
i have a prototype implementation for (3): it is nasty
because of ifunc PLT handling (many corner cases) and
it adds an ABI requirement: PLT relocs outside of the
DT_JMPREL area must not be lazy resolved. (some tools
may assume all PLT relocs are in the DT_JMPREL area,
e.g. objdump will not display @plt labels correctly,
but i don't think anything would be broken by this)
currently my preference is (1) and i'd like to hear some
feedback if that is still considered problematic.