[PATCH v7 00/13] GLIBC LoongArch PATCHES
caiyinyu
caiyinyu@loongson.cn
Mon Jul 25 14:14:30 GMT 2022
> I guess a v8 is better because the 17th patch (NEWS) needs a rebase
> anyway. But let's wait for Adhemerval's suggestion...
It is up to your, if you are ok with my fixed branch I can install otherwise
you send a v8.
--------------------
I checked and I'm ok with the fixed branch.
Waiting for other suggestions.
Thanks.
在 2022/7/25 下午9:27, Adhemerval Zanella Netto 写道:
>
> On 24/07/22 06:49, WANG Xuerui wrote:
>> 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).
> The 'elf/tst-glibc-hwcaps-prepend-cache' and 'elf/tst-ldconfig-ld_so_conf-update',
> might worth to take a look, although they are not arch-specific and I think it is
> more related to the test environment.
>
> Also, once you add the loongarch entry on release wiki [2], please the configure
> options use to state ifunc needs to be explicit disabled.
>
>> 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.)
>>
> I agree that cosmetic issues should not interfere with loongarch64 addition, we
> can backport if required (although for such changes I also do not see much
> point).
>
> I have create a branch which I think it is suitable for inclusion [1], I
> have fixed the ABI issue due arc4random addition and some style issues
> (trailing lines) that were triggering our pre-commit hooks..
>
>> I guess a v8 is better because the 17th patch (NEWS) needs a rebase
>> anyway. But let's wait for Adhemerval's suggestion...
> It is up to your, if you are ok with my fixed branch I can install otherwise
> you send a v8.
>
> [1] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/loongarch64
> [2] https://sourceware.org/glibc/wiki/Release/2.36
More information about the Libc-alpha
mailing list