public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
To: Xi Ruoyao <xry111@xry111.site>,
	libc-alpha@sourceware.org, caiyinyu <caiyinyu@loongson.cn>,
	Carlos O'Donell <carlos@redhat.com>
Cc: joseph_myers@mentor.com
Subject: Re: [PATCH v6 00/13] GLIBC LoongArch PATCHES
Date: Thu, 14 Jul 2022 09:11:17 -0300	[thread overview]
Message-ID: <bf66d1bc-b93f-13ec-26e8-35b3f5704bf3@linaro.org> (raw)
In-Reply-To: <23a3fdf115790373979ad819b0d6e8cd3f0d4b69.camel@xry111.site>



On 14/07/22 08:33, Xi Ruoyao wrote:
> On Wed, 2022-07-13 at 16:55 -0300, Adhemerval Zanella Netto wrote:
> 
>> I finished my review for the port and it looks ok in general, however there
>> some pieces that would require a v7:
>>
>>   1. Add R_LARCH_NONE handling on bootstrap, binutils 2.38 does generated it 
>>      and from previous discussion it should be considered a missed 
>>      optimizations instead of a linker error.
>>
>>   2. Remove the __loongarch_soft_float parts, since there is no support for
>>      soft floating-point.
>>
>>   3. Remove sysdeps/unix/sysv/linux/loongarch/ldconfig.h, this file is not
>>      required.
>>
>>   4. Some minor style issues.
>>
>>   5. Either remove HAVE_GETTIMEOFDAY_VSYSCALL or add a gettimeofday ifunc
>>      optimization.
>>
>> The only part really prevent port inclusion is 1.  I am also assuming ifunc 
>> is support (at least you have added support on the Linux ABI part) with
>> binutils 2.38.  If not, you will need to remove support until you fix it on
>> binutils.
>>
>> And also, you need to check and report the test results using the expected
>> defined release branches, using out-of-tree branches are not acceptable for
>> inclusion.
> 
> The series tested with Linux-5.19-rc4, Binutils-2.38, and GCC-12.1. 
> Some kernel patches used but they are only boot protocols and hardware
> drivers, not related to userspace ABI so Glibc should be unaffected. 
> Some Binutils and GCC patches used but they are all already committed to
> upstream.

Thanks.

> 
> To work around binutils issues, I added R_LARCH_NONE back to
> RTLD_BOOTSTRAP, and disabled IFUNC (by adding
> libc_cv_ld_gnu_indirect_function=no into preconfigure).

I do not think this is blocker, but if you need to explicit add 
libc_cv_ld_gnu_indirect_function=no it means your toolchain can potentially
generate invalid binaries:

$ cat test.c
#include <stdio.h>

static int impl (void) { return 42; }
static void * resolver (void) { return impl; }
int ifunc (void) __attribute__((ifunc ("resolver")));

int main (int argc, char *argv[])
{
  printf ("%d\n", (int) ifunc ());
  return 0;
}
$ loongarch64-linux-gnu-hard/bin/loongarch64-glibc-linux-gnu-gcc test.c -o test
$ qemu-loongarch64 elf/ld.so --library-path . ./test
./test: error while loading shared libraries: unexpected PLT reloc type 0x0c

It would be better if you just disable ifunc support on static linker for now.

> 
> Result:
> 
> 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:
>    4536 PASS
>      22 UNSUPPORTED
>      12 XFAIL
>       6 XPASS

  reply	other threads:[~2022-07-14 12:11 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-08  6:52 caiyinyu
2022-07-08  6:52 ` [PATCH v6 01/13] LoongArch: Update NEWS and README for the LoongArch port caiyinyu
2022-07-12 11:06   ` Adhemerval Zanella Netto
2022-07-08  6:52 ` [PATCH v6 02/13] LoongArch: Add LoongArch entries to config.h.in caiyinyu
2022-07-12 18:51   ` Adhemerval Zanella Netto
2022-07-08  6:52 ` [PATCH v6 03/13] LoongArch: Add relocations and ELF flags to elf.h and scripts/glibcelf.py caiyinyu
2022-07-12 19:27   ` Adhemerval Zanella Netto
2022-07-08  6:52 ` [PATCH v6 04/13] LoongArch: ABI Implementation caiyinyu
2022-07-12 20:39   ` Adhemerval Zanella Netto
2022-07-15  1:46     ` caiyinyu
2022-07-08  6:52 ` [PATCH v6 05/13] LoongArch: Thread-Local Storage Support caiyinyu
2022-07-13 13:10   ` Adhemerval Zanella Netto
2022-07-08  6:52 ` [PATCH v6 06/13] LoongArch: Generic <math.h> and soft-fp Routines caiyinyu
2022-07-13 13:25   ` Adhemerval Zanella Netto
2022-07-08  6:52 ` [PATCH v6 07/13] LoongArch: Atomic and Locking Routines caiyinyu
2022-07-13 13:53   ` Adhemerval Zanella Netto
2022-07-15  1:46     ` caiyinyu
2022-07-08  6:52 ` [PATCH v6 08/13] LoongArch: Linux Syscall Interface caiyinyu
2022-07-13 16:19   ` Adhemerval Zanella Netto
2023-09-13 11:05     ` caiyinyu
2022-07-08  6:52 ` [PATCH v6 09/13] LoongArch: Linux ABI caiyinyu
2022-07-13 16:35   ` Adhemerval Zanella Netto
2022-07-15  1:48     ` caiyinyu
2022-07-08  6:52 ` [PATCH v6 10/13] LoongArch: Add ABI Lists caiyinyu
2022-07-13 17:12   ` Adhemerval Zanella Netto
2022-07-08  6:52 ` [PATCH v6 11/13] LoongArch: Build Infastructure caiyinyu
2022-07-13  3:07   ` Xi Ruoyao
2022-07-13  3:43     ` WANG Xuerui
2022-07-13  7:51       ` caiyinyu
2022-07-13 17:48   ` Adhemerval Zanella Netto
2022-07-15  1:49     ` caiyinyu
2022-07-08  6:52 ` [PATCH v6 12/13] LoongArch: Hard Float Support caiyinyu
2022-07-13 19:22   ` Adhemerval Zanella Netto
2022-07-14 13:00     ` caiyinyu
2022-07-08  7:13 ` [PATCH v6 00/13] GLIBC LoongArch PATCHES Xi Ruoyao
2022-07-08  7:15   ` Xi Ruoyao
2022-07-13 19:55   ` Adhemerval Zanella Netto
2022-07-14 11:33     ` Xi Ruoyao
2022-07-14 12:11       ` Adhemerval Zanella Netto [this message]
2022-07-18 13:54 ` Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bf66d1bc-b93f-13ec-26e8-35b3f5704bf3@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --cc=caiyinyu@loongson.cn \
    --cc=carlos@redhat.com \
    --cc=joseph_myers@mentor.com \
    --cc=libc-alpha@sourceware.org \
    --cc=xry111@xry111.site \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).