[PATCH v7 00/13] GLIBC LoongArch PATCHES
WANG Xuerui
i.swmail@xen0n.name
Sun Jul 24 09:49:11 GMT 2022
Hi,
On 7/19/22 09:20, caiyinyu wrote:
> <snip>
> 6. Test result: all passed (ifunc disable).
>
> Test with:
> Linux-5.19-rc4, Binutils-2.38, and GCC-12.1.
> glibc: https://github.com/loongson/glibc/tree/loongarch_2_36_upstream_v7
>
> Result (ifunc disable):
> XPASS: conform/UNIX98/ndbm.h/linknamespace
> XPASS: conform/XOPEN2K/ndbm.h/linknamespace
> XPASS: conform/XOPEN2K8/ndbm.h/linknamespace
> XPASS: conform/XPG42/ndbm.h/linknamespace
> UNSUPPORTED: crypt/cert
> UNSUPPORTED: elf/tst-env-setuid
> UNSUPPORTED: elf/tst-env-setuid-tunables
> XPASS: elf/tst-protected1a
> XPASS: elf/tst-protected1b
> UNSUPPORTED: elf/tst-valgrind-smoke
> UNSUPPORTED: misc/tst-adjtimex
> UNSUPPORTED: misc/tst-clock_adjtime
> UNSUPPORTED: misc/tst-ntp_adjtime
> UNSUPPORTED: misc/tst-pkey
> UNSUPPORTED: misc/tst-rseq
> UNSUPPORTED: misc/tst-rseq-disable
> UNSUPPORTED: nptl/test-cond-printers
> UNSUPPORTED: nptl/test-condattr-printers
> UNSUPPORTED: nptl/test-mutex-printers
> UNSUPPORTED: nptl/test-mutexattr-printers
> UNSUPPORTED: nptl/test-rwlock-printers
> UNSUPPORTED: nptl/test-rwlockattr-printers
> UNSUPPORTED: nptl/tst-pthread-gdb-attach
> UNSUPPORTED: nptl/tst-pthread-gdb-attach-static
> UNSUPPORTED: nptl/tst-rseq-nptl
> UNSUPPORTED: stdlib/tst-secure-getenv
> UNSUPPORTED: time/tst-clock_settime
> UNSUPPORTED: time/tst-settimeofday
> Summary of test results:
> 4535 PASS
> 22 UNSUPPORTED
> 12 XFAIL
> 6 XPASS
Thanks for your effort these days. I ran the test on Gentoo and this is
what I have found out:
UNSUPPORTED: crypt/cert
FAIL: elf/check-abi-libc
FAIL: elf/ifuncmain1
FAIL: elf/ifuncmain1pic
FAIL: elf/ifuncmain1pie
FAIL: elf/ifuncmain1staticpic
FAIL: elf/ifuncmain1staticpie
FAIL: elf/ifuncmain1vis
FAIL: elf/ifuncmain1vispic
FAIL: elf/ifuncmain1vispie
FAIL: elf/ifuncmain2
FAIL: elf/ifuncmain2pic
FAIL: elf/ifuncmain3
FAIL: elf/ifuncmain4
FAIL: elf/ifuncmain5staticpic
FAIL: elf/ifuncmain6pie
FAIL: elf/ifuncmain7
FAIL: elf/ifuncmain7pic
FAIL: elf/ifuncmain7pie
FAIL: elf/ifuncmain9
FAIL: elf/ifuncmain9pic
FAIL: elf/ifuncmain9pie
UNSUPPORTED: elf/tst-env-setuid
UNSUPPORTED: elf/tst-env-setuid-tunables
FAIL: elf/tst-glibc-hwcaps-prepend-cache
FAIL: elf/tst-ifunc-textrel
FAIL: elf/tst-ldconfig-ld_so_conf-update
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: elf/tst-valgrind-smoke
FAIL: malloc/tst-free-errno-malloc-hugetlb1
UNSUPPORTED: misc/tst-adjtimex
UNSUPPORTED: misc/tst-clock_adjtime
UNSUPPORTED: misc/tst-ntp_adjtime
UNSUPPORTED: misc/tst-pkey
UNSUPPORTED: misc/tst-rseq
UNSUPPORTED: misc/tst-rseq-disable
FAIL: nptl/tst-pthread-gdb-attach
FAIL: nptl/tst-pthread-gdb-attach-static
UNSUPPORTED: nptl/tst-rseq-nptl
FAIL: nss/tst-nss-files-hosts-long
UNSUPPORTED: resolv/tst-resolv-ai_idn
UNSUPPORTED: resolv/tst-resolv-ai_idn-latin1
UNSUPPORTED: stdlib/tst-secure-getenv
UNSUPPORTED: time/tst-clock_settime
UNSUPPORTED: time/tst-settimeofday
Of these, the ifunc failures are "expected" by you, the
elf/check-abi-libc diff is trivial (maybe you just didn't rebase as
frequently):
--- ../sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist 2022-07-23
14:45:57.490029442 +0800
+++ /home/xenon/src/glibc/build/libc.symlist 2022-07-24
13:44:10.416642655 +0800
@@ -496 +496 @@ GLIBC_2.36 _mcount F
-GLIBC_2.36 _nl_default_dirname D 0x12
+GLIBC_2.36 _nl_default_dirname D 0x17
@@ -541,0 +542,3 @@ GLIBC_2.36 alphasort64 F
+GLIBC_2.36 arc4random F
+GLIBC_2.36 arc4random_buf F
+GLIBC_2.36 arc4random_uniform F
The others may need some love. Of course they're possibly because of my
particular environment (Gentoo is a little bit different than "ordinary"
distros like Debian/Fedora, and I already have to symlink the
libgcc_s.so and libstdc++.so to pass the nptl tests at all).
Coming to code quality, there are obviously warts present, like the
lingering uses of the name "x" for $r21 and apparent lack of assembly
pseudo-insn sugar usages (e.g. no "move a, b" but always "or a, b,
zero"; the code must be directly descended from an extremely early time
when the assembler didn't have such support), but at this point these
cosmetic concerns are better fixed after 2.36 to minimize churn prior to
release. At a quick glance the ABI is looking good. (There is a certain
"__x" in bits/setjmp.h meant to refer to r21, but __jmp_buf is not
public API so I think we're safe here.)
More information about the Libc-alpha
mailing list