mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-11 13:50:06 +00:00
c506155709
This patch lays out the top-level orginazition of the RISC-V port. It contains all the Implies files as well as various other fragments of build infastructure for the RISC-V port. This contains the only change to a shared file: config.h.in. RISC-V is a family of base ISAs with optional extensions. The base ISAs are RV32I and RV64I, which are 32-bit and 64-bit integer-only ISAs, but this port currently only supports RV64I based systems. Support for RISC-V lives in in sysdeps/riscv. In addition to these ISAs, our glibc port supports most of the currently-defined extensions: the A extension for atomics, the M extension for multiplication, the C extension for compressed instructions, and the F/D extensions for single/double precision IEEE floating-point. Most of these extensions are handled by GCC, but glibc defines various floating-point wrappers and emulation routines as well as some atomic wrappers. We support running glibc-based programs on Linux, the support for which lives in sysdeps/unix/sysv/linux/riscv. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/Implies: New file. * sysdeps/riscv/Makefile: Likewise. * sysdeps/riscv/configure: Likewise. * sysdeps/riscv/configure.ac: Likewise. * sysdeps/riscv/nptl/Makefile: Likewise. * sysdeps/riscv/preconfigure: Likewise. * sysdeps/riscv/rv64/Implies-after: Likewise. * sysdeps/riscv/rv64/rvd/Implies: Likewise. * sysdeps/riscv/rv64/rvf/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/Makefile: Likewise. * sysdeps/unix/sysv/linux/riscv/Versions: Likewise. * sysdeps/unix/sysv/linux/riscv/configure: Likewise. * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise. * sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/Implies: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/Makefile: Likewise. * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise.
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
sinclude(./aclocal.m4)dnl Autoconf lossage
|
|
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
|
# Local configure fragment for sysdeps/unix/sysv/linux/riscv.
|
|
|
|
arch_minimum_kernel=4.15.0
|
|
|
|
libc_cv_riscv_int_abi=no
|
|
AC_EGREP_CPP(4 8 8, [__SIZEOF_INT__ __SIZEOF_LONG__ __SIZEOF_POINTER__
|
|
], libc_cv_riscv_int_abi=lp64)
|
|
if test $libc_cv_riscv_int_abi = no; then
|
|
AC_MSG_ERROR([Unable to determine integer ABI])
|
|
fi
|
|
|
|
libc_cv_riscv_float_abi=no
|
|
AC_EGREP_CPP(yes, [#ifdef __riscv_float_abi_double
|
|
yes
|
|
#endif
|
|
],libc_cv_riscv_float_abi=d)
|
|
AC_EGREP_CPP(yes, [#ifdef __riscv_float_abi_soft
|
|
yes
|
|
#endif
|
|
],libc_cv_riscv_float_abi=)
|
|
if test $libc_cv_riscv_float_abi = no; then
|
|
AC_MSG_ERROR([Unable to determine floating-point ABI])
|
|
fi
|
|
|
|
LIBC_CONFIG_VAR([default-abi], [$libc_cv_riscv_int_abi$libc_cv_riscv_float_abi])
|
|
|
|
case $libc_cv_riscv_int_abi$libc_cv_riscv_float_abi-$machine in
|
|
lp64-riscv/rv64/*)
|
|
LIBC_SLIBDIR_RTLDDIR([lib64/lp64], [lib])
|
|
;;
|
|
lp64d-riscv/rv64/*)
|
|
LIBC_SLIBDIR_RTLDDIR([lib64/lp64d], [lib])
|
|
;;
|
|
esac
|
|
|
|
ldd_rewrite_script=sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed
|