glibc 2.36 - Slushy freeze (3 weeks to release)
WANG Xuerui
i.swmail@xen0n.name
Tue Jul 12 06:42:23 GMT 2022
On 2022/7/12 12:24, Fangrui Song wrote:
> On Mon, Jul 11, 2022 at 7:32 PM Alan Modra <amodra@gmail.com> wrote:
>> On Tue, Jul 12, 2022 at 08:48:18AM +0800, Xi Ruoyao via Binutils wrote:
>>>> The R_LARCH_NONE issue should only affect performance,
>>>> since it should be ignored by loader although I am not sure without
>>>> understanding better the issue.
>> R_*_NONE relocs are harmless in an executable or shared library, if
>> their presence is due to overallocating space for relocations. Of
>> course, if ld should actually be emitting some other dynamic reloc
>> type then that is a more serious problem.
>>
>>> Fangrui suggested [2] we should assume R_LARCH_NONE does not exist to
>>> simplify the code and catch ld bugs earlier.
>> Yes that will annoy your user base into reporting bugs. How much do
>> you want to annoy them? You might like to consider why other major
>> architectures with mature linkers process and ignore R_*_NONE relocs
>> in the loader..
> If a linker port has a high confidence level, removing dynamic
> R_*_NONE support from the loader shall be the right thing.
> I can understand that there may not be the case in GNU ld as I've seen
> such bugs in riscv (e.g.
> https://sourceware.org/bugzilla/show_bug.cgi?id=24673), too (I think
> gold, lld, and mold make it difficult to make such bugs).
> But I did wish that a fresh port of a new arch in binutils had fixed
> all such bugs. I realized it might be the case for LoongArch, so
> keeping R_LARCH_NONE support in glibc ld.so may be fine.
It's generally nice to be able to remove dubious/superfluous/unused
code, but doing so must not negatively affect users. I'm personally in
support of removing such code, but as others have pointed out, it's
unfortunate that the LoongArch port turns out to have "inherited" the
wart from elsewhere, so the removal should not be done lightly (and
break users' systems).
All is not lost, though, as the LoongArch "new world" (the fully
community-driven openly developed ABI we're currently all working on, as
opposed to the stopgap MIPS-esque ABI Loongson initially shipped in
commercial products) is nowhere near popular, at least in the 1~1.5
years to come; and we as distribution packages already educate the
current "seed" users of new-world LoongArch to expect to update or
re-install as often as possible to stay on the bleeding edge. So IMO
fixing the linker and sunsetting R_LARCH_NONE support in glibc loader
could be feasible after all, just it won't be a quick process.
More information about the Binutils
mailing list