From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by sourceware.org (Postfix) with ESMTPS id 890503858428 for ; Sun, 24 Jul 2022 09:49:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 890503858428 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=xen0n.name Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xen0n.name DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1658656152; bh=4ahg8/EnOOJ3AQbKTvCPFvS6PVLOEXzez5PhWime22A=; h=Date:Subject:To:References:From:In-Reply-To:From; b=XNzla0eKJXHoG5K6XLEC0Ugd+FK5TInxQSojQVcYi6G8Yo05ncaBsmBKNHWY9Fj1n iFW253GhgaUwtSEjn+EGokyWf3koK474Ofsj5wXAYtoKMSXtwhIwRXEeezmcTs8dDs h1Tmm4MI7LCtzxgxdeS+PIlFHhDQ9ZmG9CK/EZ8A= Received: from [192.168.9.172] (unknown [101.228.137.40]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id EF6D060104; Sun, 24 Jul 2022 17:49:11 +0800 (CST) Message-ID: Date: Sun, 24 Jul 2022 17:49:11 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:104.0) Gecko/20100101 Thunderbird/104.0a1 Subject: Re: [PATCH v7 00/13] GLIBC LoongArch PATCHES To: caiyinyu , adhemerval.zanella@linaro.org, libc-alpha@sourceware.org, joseph_myers@mentor.com, carlos@redhat.com, i.swmail@xen0n.name References: <20220719012056.1461897-1-caiyinyu@loongson.cn> Content-Language: en-US From: WANG Xuerui In-Reply-To: <20220719012056.1461897-1-caiyinyu@loongson.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jul 2022 09:49:24 -0000 Hi, On 7/19/22 09:20, caiyinyu wrote: > > 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.)