This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RISC-V glibc port, v4


It's been a bit more than two weeks since the last patch set, and I think we're
starting to get something that's in reasonable shape.  Thanks to Darius for
putting in a lot of time into the v4.  We've also gotten the test suite in a
bit better shape: we're down to 200 failures when running natively on Linux,
and all the test suite failures when running in user mode emulate appear to be
environment issues.  As far as I know the only remaining issue in our port is
to triage the test suite failures, most of which we're hoping are just
deficiencies in our current environment.  Of course, now that I've said that
I'm sure we'll find a bunch of bugs all over the place :)

Thanks to everyone who has helped review and contributed to our port.  Like
usual I believe we've taken everything into account (and hopefully Darius' hit
rate is a bit better than mine), but if we've missed anything feel free to ping
it and we'll take another look.

A highlight of the changes since our v3 includes:

* Some ABI list cleanups, to match a few changes between when we last rebased
  and now.
* ucontext.h namespace fixes.
* Copyright year has been updated to 2018, and "contributed by" lines have been
  removed.
* int in specified in all places were optional.
* The floating-point support no longer uses ABI types, but uses explicit bit
  widths.
* Some floating point test macros have been defined to inform the test suite
  how our ISA operates.
* We now examine the ELF flags.
* I've added ChangeLog entries for all the commits except those that just add
  new files.

[v2] Here's a summary of the changes since the previous patch set:

* We now have 4 ABI/ISA pairs in build-many-glibcs.py, which is clean (with the
  newest linux headers, see the patch for details).
* Support for ilp32f and lp64f have been removed.
* Support for systems without the A extension has been removed.
* There are now ABI lists.
* Many whitespace fixes to meet glibc's standards.
* Included C and ASM files from other ports have been copied into ours.
* with_fp_cond is now set, but I don't have a soft-fp directory yet.
* We no longer maintain a -mno-plt list in our port, that existed to work
  around a linker bug and is now defunct.
* A handful of header files (mostly ucontext.h) have been cleaned up to be
  namespace clean.

And here's a log of all the other summaries:

[v1] A (very brief, as it's been 6 months) summary of the changes since the v1
patch set includes:

* Many copyright cleanups.
* We're using the generic versions of a handful of functions and headers,
  including ieee754.h, mathdef.h mathinline.h, fabs{,f}, and
  fe{disable,enable,get}except.
* Removal of lots of head code, including pthread_lock, atomic_fast.
* A handful of ABI fixes to match our upstreamed Linux port, including
  sigcontext, instruction-cache flushing, and some syscall sanitization.
* We've changed to use libm_alias_{float,double}, like upstream
* Compiler builtins are used for atomics where possible.
* We now mandate the A extension in Linux, support for non-A systems has been
  removed from glibc.

[PATCH v4 01/17] Skeleton documentation for the RISC-V port
[PATCH v4 02/17] Add RISC-V entries to config.h.in
[PATCH v4 03/17] Add support for the RISC-V-specific ELF flags
[PATCH v4 04/17] Add documentation for __riscv_flush_icache
[PATCH v4 05/17] RISC-V: ABI Implementation
[PATCH v4 06/17] RISC-V: Startup and Dynamic Loading Code
[PATCH v4 07/17] RISC-V: Thread-Local Storage Support
[PATCH v4 08/17] RISC-V: Generic <math.h> and soft-fp Routines
[PATCH v4 09/17] RISC-V: RV32F Support
[PATCH v4 10/17] RISC-V: RV32D, RV64F, and RV64D Support
[PATCH v4 11/17] RISC-V: Atomic and Locking Routines
[PATCH v4 12/17] RISC-V: Linux Syscall Interface
[PATCH v4 13/17] RISC-V: Linux ABI
[PATCH v4 14/17] RISC-V: Linux Startup and Dynamic Loading Code
[PATCH v4 15/17] RISC-V: Add ABI Lists
[PATCH v4 16/17] RISC-V: Build Infastructure
[PATCH v4 17/17] Add RISC-V to build-many-glibcs.py


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]