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