Browse Source

Merge pull request #1293 from riscv-collab/extra-multi-lib-test

Add --with-extra-multilib-test option
pull/1335/head 2023.09.26
Kito Cheng 3 years ago
committed by GitHub
parent
commit
ffb5968884
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      Makefile.in
  2. 15
      README.md
  3. 26
      configure
  4. 10
      configure.ac

8
Makefile.in

@ -69,6 +69,8 @@ endif
GLIBC_MULTILIB_NAMES := @glibc_multilib_names@
GCC_CHECKING_FLAGS := @gcc_checking@
EXTRA_MULTILIB_TEST := @extra_multilib_test@
XLEN := $(shell echo $(WITH_ARCH) | tr A-Z a-z | sed 's/.*rv\([0-9]*\).*/\1/')
ifneq ($(XLEN),32)
XLEN := 64
@ -91,12 +93,12 @@ GDB_NATIVE_FLAGS := $(GDB_NATIVE_FLAGS_EXTRA)
GLIBC_TARGET_FLAGS := $(GLIBC_TARGET_FLAGS_EXTRA)
GLIBC_CC_FOR_TARGET ?= $(LINUX_TUPLE)-gcc
GLIBC_CXX_FOR_TARGET ?= $(LINUX_TUPLE)-g++
GLIBC_TARGET_BOARDS ?= $(shell echo "$(GLIBC_MULTILIB_NAMES)" | sed 's!\([_a-z0-9]*\)-\([_a-z0-9]*\)!riscv-sim/-march=\1/-mabi=\2/@cmodel@!g')
GLIBC_TARGET_BOARDS ?= $(shell echo "$(GLIBC_MULTILIB_NAMES) $(EXTRA_MULTILIB_TEST)" | sed 's!\([_a-z0-9]*\)-\([_a-z0-9]*\)!riscv-sim/-march=\1/-mabi=\2/@cmodel@!g')
NEWLIB_CC_FOR_TARGET ?= $(NEWLIB_TUPLE)-gcc
NEWLIB_CXX_FOR_TARGET ?= $(NEWLIB_TUPLE)-g++
NEWLIB_TARGET_BOARDS ?= $(shell echo "$(NEWLIB_MULTILIB_NAMES)" | sed 's!\([_a-z0-9]*\)-\([_a-z0-9]*\)!riscv-sim/-march=\1/-mabi=\2/@cmodel@!g')
NEWLIB_NANO_TARGET_BOARDS ?= $(shell echo "$(NEWLIB_MULTILIB_NAMES)" | sed 's!\([_a-z0-9]*\)-\([_a-z0-9]*\)!riscv-sim-nano/-march=\1/-mabi=\2/@cmodel@!g')
NEWLIB_TARGET_BOARDS ?= $(shell echo "$(NEWLIB_MULTILIB_NAMES) $(EXTRA_MULTILIB_TEST)" | sed 's!\([_a-z0-9]*\)-\([_a-z0-9]*\)!riscv-sim/-march=\1/-mabi=\2/@cmodel@!g')
NEWLIB_NANO_TARGET_BOARDS ?= $(shell echo "$(NEWLIB_MULTILIB_NAMES) $(EXTRA_MULTILIB_TEST)" | sed 's!\([_a-z0-9]*\)-\([_a-z0-9]*\)!riscv-sim-nano/-march=\1/-mabi=\2/@cmodel@!g')
NEWLIB_CC_FOR_MULTILIB_INFO := $(NEWLIB_CC_FOR_TARGET)
MUSL_TARGET_FLAGS := $(MUSL_TARGET_FLAGS_EXTRA)

15
README.md

@ -246,6 +246,21 @@ The command below can be used to run the glibc tests:
make check-glibc-linux
##### Adding more arch/abi combination for testing without introducing multilib
`--with-extra-multilib-test` can be used when you want to test more combination
of arch/ABI, for example: built a linux toolchain with multilib with
`rv64gc/lp64d` and `rv64imac/lp64`, but you want to test more configuration like
`rv64gcv/lp64d` or `rv64gcv_zba/lp64d`, then you can use --with-extra-multilib-test
to specify that via `--with-extra-multilib-test="rv64gcv-lp64d;rv64gcv_zba-lp64d"`,
then the testing will run for `rv64gc/lp64d`, `rv64imac/lp64`, `rv64gcv/lp64d`
and `rv64gcv_zba/lp64d`.
`--with-extra-multilib-test` support bare-metal and linux toolchain and support
even multilib is disable, but the user must ensure extra multilib test
configuration can be work with existing lib/multilib, e.g. rv32gcv/ilp32 test
can't work if multilib didn't have any rv32 multilib.
### LLVM / clang
LLVM can be used in combination with the RISC-V GNU Compiler Toolchain

26
configure

@ -611,6 +611,7 @@ musl_multilib_names
newlib_multilib_names
glibc_multilib_names
multilib_flags
extra_multilib_test
multilib_gen
WITH_SIM
WITH_ISA_SPEC
@ -686,6 +687,7 @@ with_isa_spec
with_sim
enable_multilib
with_multilib_generator
with_extra_multilib_test
enable_gcc_checking
with_cmodel
with_target_cflags
@ -1355,6 +1357,13 @@ Optional Packages:
Multi-libs configuration string, only supported for
bare-metal/elf toolchain, this option implied
--enable-multilib
--with-extra-multilib-test
Adding extra multi-libs configuration for testing,
this can be use even --disable-multilib, but be
aware user need to make sure those extra multilib
set can work/compatible with existing multi-libs,
format: <arch>-<abi>;<arch>-<abi> e.g:
--with-extra-multilib-test="rv64gcv-lp64;rv64gcv_zba-lp64"
--with-cmodel Select the code model to use when building libc and
libgcc [--with-cmodel=medlow]
--with-target-cflags Add extra target flags for C for library code
@ -3420,6 +3429,16 @@ else
fi
# Check whether --with-extra-multilib-test was given.
if test "${with_extra_multilib_test+set}" = set; then :
withval=$with_extra_multilib_test;
else
with_extra_multilib_test=no
fi
if test "x$with_multilib_generator" != xno; then :
multilib_gen="$with_multilib_generator"
@ -3428,6 +3447,13 @@ else
fi
if test "x$with_extra_multilib_test" != xno; then :
extra_multilib_test="$with_extra_multilib_test"
else
extra_multilib_test=""
fi
if test "x$enable_multilib" != xno || test "x$with_multilib_generator" != xno; then :
multilib_flags=--enable-multilib

10
configure.ac

@ -134,10 +134,20 @@ AC_ARG_WITH(multilib-generator,
[with_multilib_generator=no]
)
AC_ARG_WITH(extra-multilib-test,
[AS_HELP_STRING([--with-extra-multilib-test],
[Adding extra multi-libs configuration for testing, this can be use even --disable-multilib, but be aware user need to make sure those extra multilib set can work/compatible with existing multi-libs, format: <arch>-<abi>;<arch>-<abi> e.g: --with-extra-multilib-test="rv64gcv-lp64;rv64gcv_zba-lp64"])],
[],
[with_extra_multilib_test=no]
)
AS_IF([test "x$with_multilib_generator" != xno],
[AC_SUBST(multilib_gen,"$with_multilib_generator")],
[AC_SUBST(multilib_gen,"")])
AS_IF([test "x$with_extra_multilib_test" != xno],
[AC_SUBST(extra_multilib_test,"$with_extra_multilib_test")],
[AC_SUBST(extra_multilib_test,"")])
AS_IF([test "x$enable_multilib" != xno || test "x$with_multilib_generator" != xno],
[AC_SUBST(multilib_flags,--enable-multilib)],

Loading…
Cancel
Save