glibc:alistair/rv32.wip

Last commit made on 2020-01-17
Get this branch:
git clone -b alistair/rv32.wip https://git.launchpad.net/glibc

Branch merges

Branch information

Name:
alistair/rv32.wip
Repository:
lp:glibc

Recent commits

db7aefb... by Alistair Francis <email address hidden>

WIP

Signed-off-by: Alistair Francis <email address hidden>

78dcaf2... by Alistair Francis <email address hidden>

COVER: RISC-V glibc port for the 32-bit

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.

This is a list of the tests that are currently failing when running make
check:

FAIL: elf/tst-ldconfig-ld_so_conf-update
FAIL: iconvdata/tst-tables
FAIL: io/tst-lockf
FAIL: math/atest-exp
FAIL: math/atest-exp2
FAIL: math/atest-sincos
FAIL: math/test-float64-cacos
FAIL: math/test-ifloat32x-atan2
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: sunrpc/tst-udp-nonblocking
FAIL: sunrpc/tst-udp-timeout
FAIL: sysvipc/test-sysvmsg
FAIL: sysvipc/test-sysvsem

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

---Changelog---
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

6729f9c... by Zong Li <email address hidden>

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

edc1501... by Zong Li <email address hidden>

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.

1b65474... by Zong Li <email address hidden>

RISC-V: Add rv32 path to RTLDLIST in ldd

282d312... by Alistair Francis <email address hidden>

riscv32: Specify the arch_minimum_kernel as 5.4

9597962... by Zong Li <email address hidden>

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.

8a49560... by Zong Li <email address hidden>

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.

1501294... by Alistair Francis <email address hidden>

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.

Signed-off-by: Alistair Francis <email address hidden>

2cb7d3d... by Alistair Francis <email address hidden>

RISC-V: Add ABI lists

Use the check-api and update-abi to generate the abilist for rv32.