glibc 2.36 - Slushy freeze (3 weeks to release)

Xi Ruoyao xry111@xry111.site
Tue Jul 12 13:00:52 GMT 2022


On Tue, 2022-07-12 at 20:48 +0800, caiyinyu wrote:

> I can add R_LARCH_NONE handling in boostraping, but there is another 
> problem:
> 
> binutils 2.38 generates R_LARCH_IRELATIVEs in .rela.plt and now glibc 
> loongarch ld.so has no R_LARCH_IRELATIVEs handling in elf_machine_lazy_rel, this will 
> cause ifunc tests to fail.
> 
> I did not find the way to disable ifunc tests by adding configure 
> options (if glibc community can accept loongarch port being tested without ifunc tests),
> so we have to wait until related patches are merged into binutils community.

"libc_cv_ld_gnu_indirect_function=no" (just append it into configure
command line, not "--libc_cv_...", nor "--disable-...") will do the job.

I'm not sure how much effort is needed to fix R_LARCH_IRELATIVE issue. 
If it's trivial I still suggests to get it reviewed and accepted by
binutils ASAP.  But if it's very tricky (like R_LARCH_NONE) we can
disable ifunc support for now by setting
libc_cv_ld_gnu_indirect_function=no in machine-specific configure.ac
(use commit 600c13b "hurd: disable ifunc for now" as a reference).

> Or maybe we can add the following patch back now, and remove it when 
> binutils fix R_LARCH_IRELATIVE's problems.

I don't think it's an option: if a shared object is loaded fine with
Glibc-2.36 but rejected by 2.37, we call it a "regression" or "bug".

-- 
Xi Ruoyao <xry111@xry111.site>
School of Aerospace Science and Technology, Xidian University


More information about the Libc-alpha mailing list