public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/alistair/rv32.next] (26 commits) Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5
@ 2020-04-26  2:24 Alistair Francis
  0 siblings, 0 replies; only message in thread
From: Alistair Francis @ 2020-04-26  2:24 UTC (permalink / raw)
  To: glibc-cvs

The branch 'alistair/rv32.next' was updated to point to:

 5b738d3df3... Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5

It previously pointed to:

 451786b99d... Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5

Diff:

!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------

  451786b... Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5
  24bf5aa... COVER: glibc port for 32-bit RISC-V (RV32)
  41f8a5b... Add RISC-V 32-bit target to build-many-glibcs.py
  f0a8751... Documentation for the RISC-V 32-bit port
  403d3b9... RISC-V: Add rv32 path to RTLDLIST in ldd
  4348f4d... riscv32: Specify the arch_minimum_kernel as 5.4
  aa5a064... RISC-V: Build Infastructure for 32-bit
  5c3d192... RISC-V: Fix llrint and llround missing exceptions on RV32
  8b0850a... RISC-V: Add the RV32 libm-test-ulps
  bd372f9... RISC-V: Add ABI lists
  0246f48... RISC-V: Hard float support for 32-bit
  6bcee67... RISC-V: The ABI implementation for 32-bit
  70e3d09... RISC-V: nptl: update default pthread-offsets.h
  afe9bc0... RISC-V: Add arch-syscall.h for RV32
  0e7813b... RISC-V: Add path of library directories for the 32-bit
  8e183a2... RISC-V: Support dynamic loader for the 32-bit
  57587db... RISC-V: Add support for 32-bit vDSO calls
  54b6e93... RISC-V: Define __NR_* as __NR_*_time64/64 for 32-bit
  6e0bc9c... RISC-V: Use 64-bit time_t and off_t for RV32 and RV64
  5e57479... generic/typesizes.h: Add support for 32-bit arches with 64-
  bd0a045... sysv: linux: Pass 64-bit version of semctl syscall
  cce07de... semctl: Remove the sem-pad.h file
  c863b5e... bits/sem.h: Split out struct semid_ds

commit 451786b99d6aa8b5e953ac8ddc1c10ff953cd376
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Wed Apr 8 14:43:47 2020 -0700

    Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5.6 to netinet/in.h."
    
    This reverts commit f9ac84f92f151e07586c55e14ed628d493a5929d.

commit 24bf5aaf8b2d2cef8a8a33c3783e7867a86fe278
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Mon Dec 30 13:33:07 2019 -0800

    COVER: glibc port for 32-bit RISC-V (RV32)
    
    This patch set contains the glibc port for 32-bit RISC-V.
    
    This is based on the original work from Zong Li [1] and has been
    updated to use a 64-bit time_t.
    
    This requires a 5.4+ kernel and all of the testing has been done using
    the 5.4 stable kernel.
    
    Nothing fails when running ./scripts/build-many-glibcs.py (for all
    targets) on my x86-64 machine.
    
    This is the current list of tests that fail when running inside QEMU RV32
    system emulation on the 5.4 kernel:
    
    FAIL: elf/tst-ldconfig-ld_so_conf-update
    FAIL: io/tst-lockf
    FAIL: misc/test-errno-linux
    FAIL: nss/tst-nss-files-hosts-long
    FAIL: resolv/tst-resolv-res_init-thread
    FAIL: stdio-common/bug22
    FAIL: stdlib/tst-strfrom
    FAIL: stdlib/tst-strfrom-locale
    FAIL: sysvipc/test-sysvmsg
    
    ---Links---
    1: https://sourceware.org/ml/libc-alpha/2018-07/msg00892.html
    
    The latest version of my work can be found here: https://github.com/alistair23/glibc/tree/alistair/rv32.next
    
    This specific version can be found here: https://github.com/alistair23/glibc/tree/alistair/rv32.1
    
    ---Changelog---
    v1:
     - Update based from feedback on RFCv6
     - Improve test passing
         - There are only 9 tests failing now
     - Rebase on Lukasz's work
     - Send only the RV32 specific patches (other patches are already merged
       or on the list)
    RFC v6:
     - Rebase on top of accetpted patches
     - Fix issues so that the tests actually run
    RFC v5:
     - Hopefully finally get the correct layout for the *64 syscalls
     - Sort out the Changelog
    RFC v4:
     - Continue to fix things that weren't working
     - Update the coding style to match glibc
     - Update the __ASSUME_TIME64_SYSCALLS work to better match Lukasz's
     work
    RFC v3:
     - Remove all "Hack" patches
     - Incorporate upstream comments
     - Ensure we don't break RV64
     - Lot's more testing and fixes
    RFC v2:
     - Add Lukasz's patches
     - Update the non HACK syscalls after feedback
     - define __ASSUME_TIME64_SYSCALLS and __ASSUME_RLIM64_SYSCALLS
     - Remove lockf64.c
     - Other smaller changes from RFC v1

commit 41f8a5b2ebc44586248a9ff1e1b700c21870f197
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:18:40 2018 +0800

    Add RISC-V 32-bit target to build-many-glibcs.py
    
    Support building three variant of 32 bit RISC-V glibc as follows:
    - riscv32-linux-gnu-rv32imac-ilp32
    - riscv32-linux-gnu-rv32imafdc-ilp32
    - riscv32-linux-gnu-rv32imafdc-ilp32d

commit f0a87519792c55a9b088e168d8e29beea3957af1
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:13:12 2018 +0800

    Documentation for the RISC-V 32-bit port
    
    There is already RISC-V 64-bit port information in the documentation.
    Let's add some documentation entries for the RISC-V 32-bit as well.

commit 403d3b9d25e315c8a0c930806df562831a11d806
Author: Zong Li <zong.li@sifive.com>
Date:   Mon Sep 9 21:35:50 2019 -0700

    RISC-V: Add rv32 path to RTLDLIST in ldd

commit 4348f4df88179ef554cc8cb78b2fdcb455988c59
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Dec 20 18:29:42 2019 -0800

    riscv32: Specify the arch_minimum_kernel as 5.4

commit aa5a0641c29743e19a9d7f7c5f20b98f5e71633c
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:18:00 2018 +0800

    RISC-V: Build Infastructure for 32-bit
    
    This patch lays out the top-level orginazition of the RISC-V 32-bit port. It
    contains all the Implies files as well as various other fragments of
    build infastructure for the RISC-V 32-bit port.

commit 5c3d1923735d4f425d3cb826819c23cb6d7ba569
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:18:20 2018 +0800

    RISC-V: Fix llrint and llround missing exceptions on RV32
    
    Similar to the fix for MIPS, ARM and S/390, RV32 is missing
    correct exception on overflow from llrint and llround functions because
    cast from floating-point types to long long do not result in correct
    exceptions on overflow.

commit 8b0850a29cd331aa43fc65f5157907aee2bcfff5
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Jan 3 17:56:50 2020 -0800

    RISC-V: Add the RV32 libm-test-ulps
    
    Add a libm-test-ulps for RV32, generated by running `make regen-ulps`.
    This is different to the RV64 one.

commit bd372f9d16a4c6f816e1492fc65d3d62b744af5d
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Nov 15 07:34:37 2019 -0800

    RISC-V: Add ABI lists
    
    Use the check-api and update-abi to generate the abilist for rv32.

commit 0246f486e77f25e9e029549d4ca2ffb8ce56e451
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:16:38 2018 +0800

    RISC-V: Hard float support for 32-bit
    
    This patch contains hardware floating-point support for the RV32IF and
    RV32IFD

commit 6bcee67ccdccb244515cefbb0d2f4835b1613da2
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:16:18 2018 +0800

    RISC-V: The ABI implementation for 32-bit
    
    This patch adds the ABI implementation about 32 bit version. It contains
    the Linux-specific and RISC-V architecture code, I've collected here.

commit 70e3d09f439b569ee0dabf7c5d336928897bdbe2
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Mon Feb 10 10:36:21 2020 -0800

    RISC-V: nptl: update default pthread-offsets.h
    
    Update the RISC-V pthread-offsets.h values to support RV32.

commit afe9bc0a7d26ec2039cd132e7cfbce0c5cd14885
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Thu Jan 2 11:38:27 2020 -0800

    RISC-V: Add arch-syscall.h for RV32

commit 0e7813b9fe1f9aa707b93615b03fe37514dce74e
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:15:44 2018 +0800

    RISC-V: Add path of library directories for the 32-bit
    
    For the recommand of 64 bit version, we add the libraries path of 32 bit
    in this patch.
    
    The status of RV32 binaries under RV64 kernels is that the ISA
    optionally supports having different XLEN for user and supervisor modes,
    but AFAIK there's no silicon that implements this feature, and the Linux
    kernel doesn't support it yet.
    
    For the recommand of 64 bit version, we add the libraries path of 32 bit
    in this patch. This includes a fix to avoid an out of bound array check
    when building with GCC 8.2.

commit 8e183a2eff885a888cdbc37b3cbb819cfa5f1229
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:14:35 2018 +0800

    RISC-V: Support dynamic loader for the 32-bit
    
    Add the LD_SO_ABI definition for RISC-V 32-bit.

commit 57587db0219854ce7bdebc339ee0ce341c9f9e37
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Wed Sep 18 08:41:59 2019 -0700

    RISC-V: Add support for 32-bit vDSO calls

commit 54b6e938efda733adbf7bf54f155c164657d3203
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Jun 25 16:32:38 2019 -0700

    RISC-V: Define __NR_* as __NR_*_time64/64 for 32-bit

commit 6e0bc9ca17aca659c6292dfb84cb41bc4cea671a
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Jun 21 11:31:56 2019 -0700

    RISC-V: Use 64-bit time_t and off_t for RV32 and RV64
    
    Using the original glibc headers under bits/ let's make small
    modifications to use 64-bit time_t and off_t for both RV32 and RV64.
    
    For the typesizes.h, here are justifications for the changes from the
    generic version (based on Arnd's very helpful feedback):
    -  All the !__USE_FILE_OFFSET64  types (__off_t, __ino_t, __rlim_t, ...) are
      changed to match the 64-bit replacements.
    
    - __time_t is defined to 64 bit, but no __time64_t is added. This makes sense
      as we don't have the time64 support for other 32-bit architectures yet, and
      it will be easy to change when that happens.
    
    - __suseconds_t is 64-bit. This matches what we use the kernel ABI for the
      few drivers that are relying on 'struct timeval' input arguments in
      ioctl, as well as the adjtimex system call. It means that timeval has to
      be defined without the   padding, unlike timespec, which needs padding.

commit 5e574792e950c6ebd9c8919ae55e65c6b4da984d
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Feb 14 11:02:29 2020 -0800

    generic/typesizes.h: Add support for 32-bit arches with 64-bit types
    
    Update the default typesizes.h to match the new kernel sizes for 32-bit
    architectures with a 64-bit time_t and friends. This follows the sizes
    used for RV32 which is a y2038 safe architecture added after Linux 5.1.
    
    Reviewed-by: Vineet Gupta <vgupta@synopsys.com>
    Tested-by: Vineet Gupta <vgupta@synopsys.com>

commit bd0a0459c0b69f7a811defd97c886492aa7b3a34
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Feb 25 15:11:23 2020 -0800

    sysv: linux: Pass 64-bit version of semctl syscall
    
    The semctl_syscall() function passes a union semun to the kernel. The
    union includes struct semid_ds as a member. On 32-bit architectures the
    Linux kernel provides a *_high version of the 32-bit sem_otime and
    sem_ctime values. These can be combined to get a 64-bit version of the
    time.
    
    This patch adjusts the struct semid_ds to support the *_high versions
    of sem_otime and sem_ctime. For 32-bit systems with a 64-bit time_t
    this can be used to get a 64-bit time from the two 32-bit values.
    
    Due to allignment differences between 64-bit and 32-bit variables we
    also need to set nsems to ensure it's correct.

commit cce07de62c79073d9b89640e9ee19412fc528540
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Feb 25 15:52:59 2020 -0800

    semctl: Remove the sem-pad.h file
    
    Remove the sem-pad.h file and instead have architectures override the
    struct semid_ds via the bits/types/struct_semid_ds.h file.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit c863b5ea1fc12d9ac39c8ebd41617ebbd9089d39
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Feb 25 14:52:27 2020 -0800

    bits/sem.h: Split out struct semid_ds
    
    Split out the struct semid_ds into it's own file. This will allow us to
    have architectures specify their own version.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>


Summary of changes (added commits):
-----------------------------------

  5b738d3... Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5
  858342b... COVER: glibc port for 32-bit RISC-V (RV32)
  09ce020... Add RISC-V 32-bit target to build-many-glibcs.py
  f1a49b3... Documentation for the RISC-V 32-bit port
  daecde0... RISC-V: Add rv32 path to RTLDLIST in ldd
  376aa9d... riscv32: Specify the arch_minimum_kernel as 5.4
  5bafcca... RISC-V: Build Infastructure for 32-bit
  bed534f... RISC-V: Fix llrint and llround missing exceptions on RV32
  0258a4f... RISC-V: Add the RV32 libm-test-ulps
  6ffd7a1... RISC-V: Add ABI lists
  fb57a29... RISC-V: Hard float support for 32-bit
  6035661... RISC-V: The ABI implementation for 32-bit
  270e33a... RISC-V: nptl: update default pthread-offsets.h
  270608d... RISC-V: Add arch-syscall.h for RV32
  08f88cc... RISC-V: Add path of library directories for the 32-bit
  83909c1... RISC-V: Support dynamic loader for the 32-bit
  85c5dc3... RISC-V: Add support for 32-bit vDSO calls
  10e80de... RISC-V: Define __NR_* as __NR_*_time64/64 for 32-bit
  a756d0c... RISC-V: Use 64-bit time_t and off_t for RV32 and RV64
  8439db9... generic/typesizes.h: Add support for 32-bit arches with 64-
  b196ef7... sysv: linux: Pass 64-bit version of semctl syscall
  621f295... semctl: Remove the sem-pad.h file
  1bf8f30... bits/sem.h: Split out struct semid_ds
  8d9ffbb... Remove most gmp-mparam.h headers.
  ec935de... elf: Implement __libc_early_init
  50a2d83... elf: Introduce <elf_machine_sym_no_match.h>

commit 5b738d3df30be3eb7dda1eb99edb02ce974f1031
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Wed Apr 8 14:43:47 2020 -0700

    Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5.6 to netinet/in.h."
    
    This reverts commit f9ac84f92f151e07586c55e14ed628d493a5929d.

commit 858342bd91eb1fa9dec42f1fdfb9973d1e2845cc
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Mon Dec 30 13:33:07 2019 -0800

    COVER: glibc port for 32-bit RISC-V (RV32)
    
    This patch set contains the glibc port for 32-bit RISC-V.
    
    This is based on the original work from Zong Li [1] and has been
    updated to use a 64-bit time_t.
    
    This requires a 5.4+ kernel and all of the testing has been done using
    the 5.4 stable kernel.
    
    Nothing fails when running ./scripts/build-many-glibcs.py (for all
    targets) on my x86-64 machine.
    
    This is the current list of tests that fail when running inside QEMU RV32
    system emulation on the 5.4 kernel:
    
    FAIL: elf/tst-ldconfig-ld_so_conf-update
    FAIL: io/tst-lockf
    FAIL: misc/test-errno-linux
    FAIL: nss/tst-nss-files-hosts-long
    FAIL: resolv/tst-resolv-res_init-thread
    FAIL: stdio-common/bug22
    FAIL: stdlib/tst-strfrom
    FAIL: stdlib/tst-strfrom-locale
    FAIL: sysvipc/test-sysvmsg
    
    ---Links---
    1: https://sourceware.org/ml/libc-alpha/2018-07/msg00892.html
    
    The latest version of my work can be found here: https://github.com/alistair23/glibc/tree/alistair/rv32.next
    
    This specific version can be found here: https://github.com/alistair23/glibc/tree/alistair/rv32.1
    
    ---Changelog---
    v1:
     - Update based from feedback on RFCv6
     - Improve test passing
         - There are only 9 tests failing now
     - Rebase on Lukasz's work
     - Send only the RV32 specific patches (other patches are already merged
       or on the list)
    RFC v6:
     - Rebase on top of accetpted patches
     - Fix issues so that the tests actually run
    RFC v5:
     - Hopefully finally get the correct layout for the *64 syscalls
     - Sort out the Changelog
    RFC v4:
     - Continue to fix things that weren't working
     - Update the coding style to match glibc
     - Update the __ASSUME_TIME64_SYSCALLS work to better match Lukasz's
     work
    RFC v3:
     - Remove all "Hack" patches
     - Incorporate upstream comments
     - Ensure we don't break RV64
     - Lot's more testing and fixes
    RFC v2:
     - Add Lukasz's patches
     - Update the non HACK syscalls after feedback
     - define __ASSUME_TIME64_SYSCALLS and __ASSUME_RLIM64_SYSCALLS
     - Remove lockf64.c
     - Other smaller changes from RFC v1

commit 09ce02006a41a0872fc8149832522dfa4506aa08
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:18:40 2018 +0800

    Add RISC-V 32-bit target to build-many-glibcs.py
    
    Support building three variant of 32 bit RISC-V glibc as follows:
    - riscv32-linux-gnu-rv32imac-ilp32
    - riscv32-linux-gnu-rv32imafdc-ilp32
    - riscv32-linux-gnu-rv32imafdc-ilp32d

commit f1a49b33afd40f61163a2064d9a0f2905cd50e51
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:13:12 2018 +0800

    Documentation for the RISC-V 32-bit port
    
    There is already RISC-V 64-bit port information in the documentation.
    Let's add some documentation entries for the RISC-V 32-bit as well.

commit daecde01f172754617e23fe399fc57e12c97c6a9
Author: Zong Li <zong.li@sifive.com>
Date:   Mon Sep 9 21:35:50 2019 -0700

    RISC-V: Add rv32 path to RTLDLIST in ldd

commit 376aa9d4274782a2aa99efb6282af93135abae8b
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Dec 20 18:29:42 2019 -0800

    riscv32: Specify the arch_minimum_kernel as 5.4

commit 5bafccaff6f145a5375d748ef36eb594c4930bdb
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:18:00 2018 +0800

    RISC-V: Build Infastructure for 32-bit
    
    This patch lays out the top-level orginazition of the RISC-V 32-bit port. It
    contains all the Implies files as well as various other fragments of
    build infastructure for the RISC-V 32-bit port.

commit bed534fb7b45578bc0a51a47103783ec255d339d
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:18:20 2018 +0800

    RISC-V: Fix llrint and llround missing exceptions on RV32
    
    Similar to the fix for MIPS, ARM and S/390, RV32 is missing
    correct exception on overflow from llrint and llround functions because
    cast from floating-point types to long long do not result in correct
    exceptions on overflow.

commit 0258a4fb827287f193cf75cd7290173e69d3c667
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Jan 3 17:56:50 2020 -0800

    RISC-V: Add the RV32 libm-test-ulps
    
    Add a libm-test-ulps for RV32, generated by running `make regen-ulps`.
    This is different to the RV64 one.

commit 6ffd7a18a1c6537812ce503ad5140aca699c06e6
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Nov 15 07:34:37 2019 -0800

    RISC-V: Add ABI lists
    
    Use the check-api and update-abi to generate the abilist for rv32.

commit fb57a299eca5ac10252618f2968500a54277ce8a
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:16:38 2018 +0800

    RISC-V: Hard float support for 32-bit
    
    This patch contains hardware floating-point support for the RV32IF and
    RV32IFD

commit 60356616a29a428e8071cfb3c1aa78f9cf72cfa0
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:16:18 2018 +0800

    RISC-V: The ABI implementation for 32-bit
    
    This patch adds the ABI implementation about 32 bit version. It contains
    the Linux-specific and RISC-V architecture code, I've collected here.

commit 270e33ab0b4bbdc849f03e360d0fd0def0cd460e
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Mon Feb 10 10:36:21 2020 -0800

    RISC-V: nptl: update default pthread-offsets.h
    
    Update the RISC-V pthread-offsets.h values to support RV32.

commit 270608db01f31381c323f59eb589be905c5974fb
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Thu Jan 2 11:38:27 2020 -0800

    RISC-V: Add arch-syscall.h for RV32

commit 08f88cc98ee77a7c7ad94107bc20bfaf3817a646
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:15:44 2018 +0800

    RISC-V: Add path of library directories for the 32-bit
    
    For the recommand of 64 bit version, we add the libraries path of 32 bit
    in this patch.
    
    The status of RV32 binaries under RV64 kernels is that the ISA
    optionally supports having different XLEN for user and supervisor modes,
    but AFAIK there's no silicon that implements this feature, and the Linux
    kernel doesn't support it yet.
    
    For the recommand of 64 bit version, we add the libraries path of 32 bit
    in this patch. This includes a fix to avoid an out of bound array check
    when building with GCC 8.2.

commit 83909c183785ba509bbfa3537ee4f0226c7e06bb
Author: Zong Li <zongbox@gmail.com>
Date:   Fri Nov 30 17:14:35 2018 +0800

    RISC-V: Support dynamic loader for the 32-bit
    
    Add the LD_SO_ABI definition for RISC-V 32-bit.

commit 85c5dc3d683952afbdf818ae33ff8d5e36cc6247
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Wed Sep 18 08:41:59 2019 -0700

    RISC-V: Add support for 32-bit vDSO calls

commit 10e80de0a49b57097eb02c8a98051617a82117f8
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Jun 25 16:32:38 2019 -0700

    RISC-V: Define __NR_* as __NR_*_time64/64 for 32-bit

commit a756d0ca693b1bbc24c87f6d58b87cfb6461efdc
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Jun 21 11:31:56 2019 -0700

    RISC-V: Use 64-bit time_t and off_t for RV32 and RV64
    
    Using the original glibc headers under bits/ let's make small
    modifications to use 64-bit time_t and off_t for both RV32 and RV64.
    
    For the typesizes.h, here are justifications for the changes from the
    generic version (based on Arnd's very helpful feedback):
    -  All the !__USE_FILE_OFFSET64  types (__off_t, __ino_t, __rlim_t, ...) are
      changed to match the 64-bit replacements.
    
    - __time_t is defined to 64 bit, but no __time64_t is added. This makes sense
      as we don't have the time64 support for other 32-bit architectures yet, and
      it will be easy to change when that happens.
    
    - __suseconds_t is 64-bit. This matches what we use the kernel ABI for the
      few drivers that are relying on 'struct timeval' input arguments in
      ioctl, as well as the adjtimex system call. It means that timeval has to
      be defined without the   padding, unlike timespec, which needs padding.

commit 8439db9276c677fbc11f46dbdf9b2388f5f1de03
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Fri Feb 14 11:02:29 2020 -0800

    generic/typesizes.h: Add support for 32-bit arches with 64-bit types
    
    Update the default typesizes.h to match the new kernel sizes for 32-bit
    architectures with a 64-bit time_t and friends. This follows the sizes
    used for RV32 which is a y2038 safe architecture added after Linux 5.1.
    
    Reviewed-by: Vineet Gupta <vgupta@synopsys.com>
    Tested-by: Vineet Gupta <vgupta@synopsys.com>

commit b196ef7d06c452fb3e58ec05efdb0002df28990a
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Feb 25 15:11:23 2020 -0800

    sysv: linux: Pass 64-bit version of semctl syscall
    
    The semctl_syscall() function passes a union semun to the kernel. The
    union includes struct semid_ds as a member. On 32-bit architectures the
    Linux kernel provides a *_high version of the 32-bit sem_otime and
    sem_ctime values. These can be combined to get a 64-bit version of the
    time.
    
    This patch adjusts the struct semid_ds to support the *_high versions
    of sem_otime and sem_ctime. For 32-bit systems with a 64-bit time_t
    this can be used to get a 64-bit time from the two 32-bit values.
    
    Due to alignment differences between 64-bit and 32-bit variables we
    also need to set nsems to ensure it's correct.

commit 621f295f92c99d1b8653a16b0ca21909f32be5b7
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Feb 25 15:52:59 2020 -0800

    semctl: Remove the sem-pad.h file
    
    Remove the sem-pad.h file and instead have architectures override the
    struct semid_ds via the bits/types/struct_semid_ds.h file.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 1bf8f30f627b7f2f392f81ec2df35d47e78b967a
Author: Alistair Francis <alistair.francis@wdc.com>
Date:   Tue Feb 25 14:52:27 2020 -0800

    bits/sem.h: Split out struct semid_ds
    
    Split out the struct semid_ds into it's own file. This will allow us to
    have architectures specify their own version.
    
    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

commit 8d9ffbb9d00669f62d5ddb4283b7c3d03955d942
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Apr 24 22:08:59 2020 +0000

    Remove most gmp-mparam.h headers.
    
    Most gmp-mparam.h headers in glibc define various macros to the same
    values they would be defined to by the generic version of that header,
    plus macros IEEE_DOUBLE_BIG_ENDIAN or IEEE_DOUBLE_MIXED_ENDIAN related
    to the representation of double.  The latter macros are in turn only
    used in gmp-impl.h to define union ieee_double_extract, which is not
    used in glibc.  Thus all of these headers, except for the generic one
    and those that define _LONG_LONG_LIMB for ILP32 configurations with
    64-bit registers, are redundant, and this patch removes them.
    
    Tested with build-many-glibcs.py that installed stripped shared
    libraries are unchanged by this patch.

commit ec935dea6332cb22f9881cd1162bad156173f4b0
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Apr 24 22:31:15 2020 +0200

    elf: Implement __libc_early_init
    
    This function is defined in libc.so, and the dynamic loader calls
    right after relocation has been finished, before any ELF constructors
    or the preinit function is invoked.  It is also used in the static
    build for initializing parts of the static libc.
    
    To locate __libc_early_init, a direct symbol lookup function is used,
    _dl_lookup_direct.  It does not search the entire symbol scope and
    consults merely a single link map.  This function could also be used
    to implement lookups in the vDSO (as an optimization).
    
    A per-namespace variable (libc_map) is added for locating libc.so,
    to avoid repeated traversals of the search scope.  It is similar to
    GL(dl_initfirst).  An alternative would have been to thread a context
    argument from _dl_open down to _dl_map_object_from_fd (where libc.so
    is identified).  This could have avoided the global variable, but
    the change would be larger as a result.  It would not have been
    possible to use this to replace GL(dl_initfirst) because that global
    variable is used to pass the function pointer past the stack switch
    from dl_main to the main program.  Replacing that requires adding
    a new argument to _dl_init, which in turn needs changes to the
    architecture-specific libc.so startup code written in assembler.
    
    __libc_early_init should not be used to replace _dl_var_init (as
    it exists today on some architectures).  Instead, _dl_lookup_direct
    should be used to look up a new variable symbol in libc.so, and
    that should then be initialized from the dynamic loader, immediately
    after the object has been loaded in _dl_map_object_from_fd (before
    relocation is run).  This way, more IFUNC resolvers which depend on
    these variables will work.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

commit 50a2d83c08a94a10f88a1fedeb7a6e3667a6b732
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Apr 24 22:13:03 2020 +0200

    elf: Introduce <elf_machine_sym_no_match.h>
    
    MIPS needs to ignore certain existing symbols during symbol lookup.
    The old scheme uses the ELF_MACHINE_SYM_NO_MATCH macro, with an
    inline function, within its own header, with a sysdeps override for
    MIPS.  This allows re-use of the function from another file (without
    having to include <dl-machine.h> or providing the default definition
    for ELF_MACHINE_SYM_NO_MATCH).
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-26  2:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-26  2:24 [glibc/alistair/rv32.next] (26 commits) Revert "Add IPPROTO_ETHERNET and IPPROTO_MPTCP from Linux 5 Alistair Francis

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).