[01/17] Skeleton documentation for the RISC-V port
Commit Message
During the upstreaming process it was suggested that I add a handful of
small documentation entries about the RISC-V port, which I've collected
here.
2018-01-13 Palmer Dabbelt <palmer@sifive.com>
* manual/math.texi: RISC-V supports _Float128 and _Float64x
---
NEWS | 15 +++++++++++----
README | 2 ++
manual/math.texi | 2 +-
3 files changed, 14 insertions(+), 5 deletions(-)
Comments
On Wed, 24 Jan 2018, Palmer Dabbelt wrote:
> @@ -98,6 +98,13 @@ Major new features:
> to fail to load locales and fall back to the builtin C/POSIX locales.
> See notes below for other changes affecting compatibility.
>
> +* Support for the RISC-V ISA running on Linux has been added. This port
> + requires at least binutils-2.30, gcc-7.3.0, and linux-4.15; and is supported
> + for the following ISA and ABI pairs:
> +
> + - rv64imafdc lp64
> + - rv64imafdc lp64d
> diff --git a/README b/README
> index d0e99ea7d5a0..425a82956fc8 100644
> --- a/README
> +++ b/README
> @@ -39,6 +39,8 @@ The GNU C Library supports these configurations for using Linux kernels:
> powerpc64*-*-linux-gnu Big-endian and little-endian.
> s390-*-linux-gnu
> s390x-*-linux-gnu
> + riscv32-*-linux-gnu
> + riscv64-*-linux-gnu
So, this is an example of the inconsistency about whether RV32 is
supported or not. I'd expect one of:
* List all six combinations in NEWS, with appropriate caveats about the
state of kernel and glibc support for RV32 and soft-float, and a caveat
about riscv32-*-linux-gnu in README (the latter caveat to be removed later
once it's known to be working properly).
* Remove the riscv32-*-linux-gnu README entry, and all the other RV32
support in the port.
On Thu, 25 Jan 2018 08:49:54 PST (-0800), joseph@codesourcery.com wrote:
> On Wed, 24 Jan 2018, Palmer Dabbelt wrote:
>
>> @@ -98,6 +98,13 @@ Major new features:
>> to fail to load locales and fall back to the builtin C/POSIX locales.
>> See notes below for other changes affecting compatibility.
>>
>> +* Support for the RISC-V ISA running on Linux has been added. This port
>> + requires at least binutils-2.30, gcc-7.3.0, and linux-4.15; and is supported
>> + for the following ISA and ABI pairs:
>> +
>> + - rv64imafdc lp64
>> + - rv64imafdc lp64d
>
>> diff --git a/README b/README
>> index d0e99ea7d5a0..425a82956fc8 100644
>> --- a/README
>> +++ b/README
>> @@ -39,6 +39,8 @@ The GNU C Library supports these configurations for using Linux kernels:
>> powerpc64*-*-linux-gnu Big-endian and little-endian.
>> s390-*-linux-gnu
>> s390x-*-linux-gnu
>> + riscv32-*-linux-gnu
>> + riscv64-*-linux-gnu
>
> So, this is an example of the inconsistency about whether RV32 is
> supported or not. I'd expect one of:
>
> * List all six combinations in NEWS, with appropriate caveats about the
> state of kernel and glibc support for RV32 and soft-float, and a caveat
> about riscv32-*-linux-gnu in README (the latter caveat to be removed later
> once it's known to be working properly).
>
> * Remove the riscv32-*-linux-gnu README entry, and all the other RV32
> support in the port.
Oh, sorry about that, I forgot about the README. I'm going to proceed for now
with removing the rv32 support, if it's better to add the caveats then it'll be
easy to back out the changes.
@@ -41,13 +41,13 @@ Major new features:
process aborts as the result of assertion failures.
* On platforms where long double has the IEEE binary128 format (aarch64,
- alpha, mips64, s390 and sparc), the math library now implements _Float128
- interfaces for that type, as defined by ISO/IEC TS 18661-3:2015. These
- are the same interfaces added in version 2.26 for some platforms where
+ alpha, mips64, riscv, s390 and sparc), the math library now implements
+ _Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015.
+ These are the same interfaces added in version 2.26 for some platforms where
this format is supported but is not the format of long double.
* On platforms with support for _Float64x (aarch64, alpha, i386, ia64,
- mips64, powerpc64le, s390, sparc and x86_64), the math library now
+ mips64, powerpc64le, riscv, s390, sparc and x86_64), the math library now
implements interfaces for that type, as defined by ISO/IEC TS
18661-3:2015. These are corresponding interfaces to those supported for
_Float128.
@@ -98,6 +98,13 @@ Major new features:
to fail to load locales and fall back to the builtin C/POSIX locales.
See notes below for other changes affecting compatibility.
+* Support for the RISC-V ISA running on Linux has been added. This port
+ requires at least binutils-2.30, gcc-7.3.0, and linux-4.15; and is supported
+ for the following ISA and ABI pairs:
+
+ - rv64imafdc lp64
+ - rv64imafdc lp64d
+
Deprecated and removed features, and other changes affecting compatibility:
* Statically compiled applications attempting to load locales compiled for the
@@ -39,6 +39,8 @@ The GNU C Library supports these configurations for using Linux kernels:
powerpc64*-*-linux-gnu Big-endian and little-endian.
s390-*-linux-gnu
s390x-*-linux-gnu
+ riscv32-*-linux-gnu
+ riscv64-*-linux-gnu
sh[34]-*-linux-gnu
sparc*-*-linux-gnu
sparc64*-*-linux-gnu
@@ -70,7 +70,7 @@ provided for @code{_Float32}, @code{_Float64} and @code{_Float32x} on
all platforms.
It is also provided for @code{_Float128} and @code{_Float64x} on
powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, ia64,
-aarch64, alpha, mips64, s390 and sparc.
+aarch64, alpha, mips64, riscv, s390 and sparc.
@menu
* Mathematical Constants:: Precise numeric values for often-used