| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- GLIBC_PROVIDES[]dnl See aclocal.m4 in the top level source directory.
- # Local preconfigure fragment for sysdeps/riscv
- case "$machine" in
- riscv*)
- xlen=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __riscv_xlen \(.*\)/\1/p'`
- flen=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __riscv_flen \(.*\)/\1/p'`
- float_abi=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __riscv_float_abi_\([^ ]*\) .*/\1/p'`
- atomic=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep '#define __riscv_atomic' | cut -d' ' -f2`
- vector=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __riscv_v \(.*\)/\1/p'`
- case "$xlen" in
- 64 | 32)
- ;;
- *)
- AC_MSG_ERROR([Unable to determine XLEN], [1])
- ;;
- esac
- case "$flen" in
- 64)
- float_machine=rvd
- with_fp_cond=1
- ;;
- 32)
- AC_MSG_ERROR([glibc does not yet support systems with the F but not D extensions], 1)
- ;;
- "")
- with_fp_cond=0
- ;;
- *)
- AC_MSG_ERROR([Unable to determine FLEN], [1])
- ;;
- esac
- case "$float_abi" in
- soft)
- abi_flen=0
- ;;
- single)
- AC_MSG_ERROR([glibc does not yet support the single floating-point ABI], [1])
- ;;
- double)
- abi_flen=64
- ;;
- *)
- AC_MSG_ERROR([Unable to determine floating-point ABI], [1])
- ;;
- esac
- case "$atomic" in
- __riscv_atomic)
- ;;
- *)
- AC_MSG_ERROR([glibc requires the A extension], [1])
- ;;
- esac
- if test -n "$vector"; then
- version=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __GNUC__ \(.*\)/\1/p'`
- test $version -lt 15 && AC_MSG_ERROR([glibc requires GCC 15 or later for the V extension], [1])
- test $vector -lt "1000000" && AC_MSG_ERROR([glibc requires at least RVV 1.0 for the V extension], [1])
- float_machine=rvv
- fi
- base_machine=riscv
- machine=riscv/rv$xlen/$float_machine
- AC_DEFINE_UNQUOTED([RISCV_ABI_XLEN], [$xlen])
- AC_DEFINE_UNQUOTED([RISCV_ABI_FLEN], [$abi_flen])
- ;;
- esac
|