riscv-collab / riscv-gnu-toolchain

GNU toolchain for RISC-V, including GCC
Other
3.53k stars 1.16k forks source link

Question: how to run the test suite to test more than one `arch/abi`? #1510

Closed TommyMurphyTM1234 closed 3 months ago

TommyMurphyTM1234 commented 3 months ago

See here:

As per that issue this PR suggests that the test suite can be run once to test more than one arch/abi:

...

           ========= Summary of gcc testsuite =========
                        | # of unexpected case / # of unique unexpected case
                        |          gcc |          g++ |     gfortran |

rv64imafdc/ lp64d/ medlow | 0 / 0 | 0 / 0 | - |

The only way that I have found to test both `rv64imafdc/lp64d` and `rv32imafc/lp32f` is to run the test suite twice:

git clone https://github.com/riscv-collab/riscv-gnu-toolchain cd riscv-gnu-toolchain

./configure --prefix=pwd/installed-tools --with-sim=spike make make build-sim make report-newlib SIM=spike

...

           ========= Summary of gcc testsuite =========
                        | # of unexpected case / # of unique unexpected case
                        |          gcc |          g++ |     gfortran |

rv64imafdc/ lp64d/ medlow | 0 / 0 | 0 / 0 | - |

make distclean rm -rf installed-tools

./configure --prefix=pwd/installed-tools --with-arch=rv32imafc --with-abi=ilp32d --with-sim=spike make make build-sim make report-newlib SIM=spike

...

           ========= Summary of gcc testsuite =========
                        | # of unexpected case / # of unique unexpected case
                        |          gcc |          g++ |     gfortran |

rv32imafc/ ilp32f/ medlow | 0 / 0 | 0 / 0 | - |


I also tried running the test suite on a multilib toolchain but that fails:

- https://github.com/riscv-collab/riscv-gnu-toolchain/issues/1507#issuecomment-2227312656

How can I run the test suite once to test the two `arch/abi` combinations in question?
cmuellner commented 3 months ago

Running the test suite for multiple arch/abi combinations works at least for the default multilib Linux toolchain (--enable-multilib --enable-linux).

Afaik newlib does not support multilib (for sure, this repo does not support that). So, the only way left to test multiple arch/abi combinations is (as you have already found out) to build multiple toolchains and test them.

TommyMurphyTM1234 commented 3 months ago

Running the test suite for multiple arch/abi combinations works at least for the default multilib Linux toolchain (--enable-multilib --enable-linux).

But, as far as I can see, running make report-linux against Spike doesn't really make sense? At least, it doesn't work:

Afaik newlib does not support multilib (for sure, this repo does not support that).

What? Of course it does - either via --enable-multilib for the default set of multilibs defined by the generated Makefile:

or via --with-multilib-generator for a custom set:

So, the only way left to test multiple arch/abi combinations is (as you have already found out) to build multiple toolchains and test them.

Yes - by trial and error that's what I discovered. Thanks.

cmuellner commented 3 months ago

Afaik newlib does not support multilib (for sure, this repo does not support that).

What? Of course it does - either via --enable-multilib for the default set of multilibs defined by the generated Makefile:

or via --with-multilib-generator for a custom set:

Ah, you are right:

               ========= Summary of gcc testsuite =========
                            | # of unexpected case / # of unique unexpected case
                            |          gcc |          g++ |     gfortran |
      rv32i/  ilp32/ medlow |    0 /     0 |    0 /     0 |      - |
    rv32iac/  ilp32/ medlow |    0 /     0 |    0 /     0 |      - |
     rv32im/  ilp32/ medlow |    0 /     0 |    0 /     0 |      - |
   rv32imac/  ilp32/ medlow |    0 /     0 |    0 /     0 |      - |
  rv32imafc/ ilp32f/ medlow |    0 /     0 |    0 /     0 |      - |
   rv64imac/   lp64/ medlow |    0 /     0 |    0 /     0 |      - |
 rv64imafdc/  lp64d/ medlow |    0 /     0 |    0 /     0 |      - |

I never looked into the details here, but I knew that we don't build newlib the same way we build glibc (by comparing stamps/build-newlib with stamps/build-glibc-linux-%).

Also the configure flags for multilib newlib don't show any hints about multilib: $ /home/cm/src/riscv-gnu-toolchain/riscv-rvi/newlib/configure --target=riscv64-unknown-elf --prefix=/opt/riscv-rvi --enable-newlib-io-long-double --enable-newlib-io-long-long --enable-newlib-io-c99-formats --enable-newlib-register-fini CFLAGS_FOR_TARGET=-O2 -D_POSIX_MODE -ffunction-sections -fdata-sections -mcmodel=medlow CXXFLAGS_FOR_TARGET=-O2 -D_POSIX_MODE -ffunction-sections -fdata-sections -mcmodel=medlow.

However, $installdir/riscv64-unknown-elf/lib/* shows all the necessary files.

So, sorry for my misleading sentence.

TommyMurphyTM1234 commented 3 months ago

Sorry, I thought that you were referring to the bare-metal/Newlib toolchain not supporting multilibs which it obviously does. But it seems that you were referring to the test suite not testing all Newlib multilib arch/abi combinations? But it seems that this works too? The odd thing is that when I tried it it failed.

Perhaps it only works when the toolchain is configured/built with --enable-multilib but not when --with-multilib-generator is used? I must try this later...

TommyMurphyTM1234 commented 3 months ago

Perhaps it only works when the toolchain is configured/built with --enable-multilib but not when --with-multilib-generator is used?

That seems to be the case alright.

Using --enable-multilib:

git clone https://github.com/riscv-collab/riscv-gnu-toolchain
cd riscv-gnu-toolchain
./configure --prefix=`pwd`/installed-tools --enable-multilib --with-sim=spike
make 
make build-sim

make report-newlib SIM=spike

...

                === gcc tests ===

Schedule of variations:
    riscv-sim/-march=rv32i/-mabi=ilp32/-mcmodel=medlow
    riscv-sim/-march=rv32iac/-mabi=ilp32/-mcmodel=medlow
    riscv-sim/-march=rv32im/-mabi=ilp32/-mcmodel=medlow
    riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow
    riscv-sim/-march=rv32imafc/-mabi=ilp32f/-mcmodel=medlow
    riscv-sim/-march=rv64imac/-mabi=lp64/-mcmodel=medlow
    riscv-sim/-march=rv64imafdc/-mabi=lp64d/-mcmodel=medlow

Running target riscv-sim/-march=rv32i/-mabi=ilp32/-mcmodel=medlow
Using /home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/baseboards/riscv-sim.exp as board description file for target.
Using /home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/config/sim.exp as generic interface file for target.
Using /home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/baseboards/basic-sim.exp as board description file for target.
Using /home/user/Downloads/riscv-gnu-toolchain/gcc/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/user/Downloads/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.c-torture/compile/compile.exp ...

...

Using --with-multilib-generator:

make distclean 
rm -rf installed-tools
./configure --prefix=`pwd`/installed-tools --with-multilib-generator="rv32imafc-ilp32f--" --with-sim=spike
make
make build-sim

make report-newlib SIM=spike
rm -rf stamps/build-dejagnu build-dejagnu
mkdir build-dejagnu
cd build-dejagnu && /home/user/Downloads/riscv-gnu-toolchain/dejagnu/configure \
        --prefix=/home/user/Downloads/riscv-gnu-toolchain/installed-tools
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... /usr/bin/gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make sets $(MAKE)... (cached) yes
checking for gawk... (cached) /usr/bin/gawk
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
make -C build-dejagnu
make[1]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-dejagnu'
Done. Now run 'make install'.
make[1]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-dejagnu'
make -C build-dejagnu install
make[1]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-dejagnu'
Done. Now run 'make install'.
make[2]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-dejagnu'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/bin'
 /usr/bin/install -c /home/user/Downloads/riscv-gnu-toolchain/dejagnu/dejagnu /home/user/Downloads/riscv-gnu-toolchain/dejagnu/runtest '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/bin'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/libexec'
 /usr/bin/install -c /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config.guess '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/libexec'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/baseboards'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/README /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/aarch64-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/am33_2.0-libremote.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/androideabi.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/arm-ice.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/arm-sid.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/arm-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/basic-sid.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/basic-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/cris-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/d30v-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/fr30-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/frv-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/gdbserver-sample.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/generic-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/i386-sid.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/iq2000-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/jmr3904-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/linux-gdbserver.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/linux-libremote.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/m68k-sid.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mcore-moto-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mcore-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-lnews-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-lsi-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-idt32.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-idt64.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-mti32.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-mti64.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-mti64_64.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-mti64_n32.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-sde32.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim-sde64.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mips-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mmixware-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mn10200-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mn10300-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/moxie-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/msp430-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/mt-sid.exp '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/baseboards'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/multi-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/pi.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/powerpc-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/powerpcle-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/pru-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/qemu.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/riscv-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/rx-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/sh-sid.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/sh-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/sparc-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/sparc64-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/sparclite-sim-le.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/sparclite-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/tx39-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/unix.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/v850-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/visium-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/vr4100-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/vr4111-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/vr4300-sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/baseboards/xtensa-sim.exp '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/baseboards'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/commands'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/commands/help.sh /home/user/Downloads/riscv-gnu-toolchain/dejagnu/commands/report-card.awk '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/commands'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/config'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/README /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/adb.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/aarch64-fv8.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/default.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/gdb-comm.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/gdb_stub.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/sid.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/sim.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/unix.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/config/vxworks.exp '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu/config'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/include'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/dejagnu.h '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/include'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/info'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/doc/dejagnu.info '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/info'
 install-info --info-dir='/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/info' '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/info/dejagnu.info'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/man/man1'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/doc/dejagnu.1 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/doc/dejagnu-help.1 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/doc/dejagnu-report-card.1 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/doc/runtest.1 '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/man/man1'
 /usr/bin/mkdir -p '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu'
 /usr/bin/install -c -m 644 /home/user/Downloads/riscv-gnu-toolchain/dejagnu/stub-loader.c /home/user/Downloads/riscv-gnu-toolchain/dejagnu/testglue.c /home/user/Downloads/riscv-gnu-toolchain/dejagnu/runtest.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/debugger.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/dejagnu.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/dg.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/dmucs.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/framework.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/ftp.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/kermit.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/libgloss.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/remote.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/rlogin.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/rsh.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/ssh.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/standard.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/target.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/targetdb.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/telnet.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/tip.exp /home/user/Downloads/riscv-gnu-toolchain/dejagnu/lib/utils.exp '/home/user/Downloads/riscv-gnu-toolchain/installed-tools/share/dejagnu'
make[2]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-dejagnu'
make[1]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-dejagnu'
mkdir -p stamps/
date > stamps/build-dejagnu
Traceback (most recent call last):
  File "/home/user/Downloads/riscv-gnu-toolchain/scripts/generate_target_board", line 82, in <module>
    sys.exit(main(sys.argv))
  File "/home/user/Downloads/riscv-gnu-toolchain/scripts/generate_target_board", line 59, in main
    target_board = generate_one_target_board(one_arch_abi, "", options)
  File "/home/user/Downloads/riscv-gnu-toolchain/scripts/generate_target_board", line 35, in generate_one_target_board
    abi = arch_and_abi[1]
IndexError: list index out of range
PATH="/home/user/Downloads/riscv-gnu-toolchain/scripts/wrapper/spike:/home/user/Downloads/riscv-gnu-toolchain/scripts:/home/user/Downloads/riscv-gnu-toolchain/installed-tools/bin:/home/user/Downloads/riscv-gnu-toolchain/scripts/wrapper/sed:/home/user/Downloads/riscv-gnu-toolchain/installed-tools/bin:/home/user/.local/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Meld/:/mnt/c/Program Files/nodejs/:/mnt/c/Program Files/Crucial/Crucial Storage Executive:/mnt/c/Program Files/PuTTY/:/mnt/c/Program Files/usbipd-win/:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/Tommy Murphy/scoop/shims:/mnt/c/Users/Tommy Murphy/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Tommy Murphy/AppData/Roaming/npm:/mnt/c/Users/Tommy Murphy/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin" PK_PATH="/home/user/Downloads/riscv-gnu-toolchain/installed-tools/riscv64-unknown-elf/bin/" ARCH_STR="--with-arch=rv64imafdc" make -C build-gcc-newlib-stage2 check-gcc "RUNTESTFLAGS= --target_board=''"
make[1]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2'
make[2]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
Making a new config file...
echo "set tmpdir /home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc/testsuite" >> ./site.tmp
rm -rf testsuite/gcc-parallel
make[3]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
(rootme=`${PWDCMD-pwd}`; export rootme; \
srcdir=`cd ../.././gcc/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
if [ -n "" ] \
   && [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ] \
   && [ -f testsuite/gcc-parallel/finished ]; then \
  rm -rf testsuite/gcc; \
else \
  cd testsuite/gcc; \
  rm -f tmp-site.exp; \
  sed '/set tmpdir/ s|testsuite$|testsuite/gcc|' \
        < ../../site.exp > tmp-site.exp; \
  /bin/bash ${srcdir}/../move-if-change tmp-site.exp site.exp; \
  EXPECT=`if [ -f ${rootme}/../expect/expect ] ; then echo ${rootme}/../expect/expect ; else echo expect ; fi` ; export EXPECT ; \
  if [ -f ${rootme}/../expect/expect ] ; then  \
    TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
    export TCL_LIBRARY ; \
  fi ; \
  `if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo ${srcdir}/../dejagnu/runtest ; else echo runtest; fi` --tool gcc --target_board=''; \
  if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ] ; then \
    touch ${rootme}/testsuite/gcc-parallel/finished; \
  fi ; \
fi )
WARNING: Couldn't find the global config file.
Using /home/user/Downloads/riscv-gnu-toolchain/gcc/gcc/testsuite/lib/gcc.exp as tool init file.
Test run by user on Mon Jul 15 13:00:50 2024
Target is riscv64-unknown-elf
Host   is x86_64-pc-linux-gnu

                === gcc tests ===

Schedule of variations:

                === gcc Summary ===

/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc/xgcc  version 13.2.0 (gc891d8dc23e)

make[3]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
rm -rf testsuite/g++-parallel
make[3]: Entering directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
(rootme=`${PWDCMD-pwd}`; export rootme; \
srcdir=`cd ../.././gcc/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
if [ -n "" ] \
   && [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ] \
   && [ -f testsuite/g++-parallel/finished ]; then \
  rm -rf testsuite/g++; \
else \
  cd testsuite/g++; \
  rm -f tmp-site.exp; \
  sed '/set tmpdir/ s|testsuite$|testsuite/g++|' \
        < ../../site.exp > tmp-site.exp; \
  /bin/bash ${srcdir}/../move-if-change tmp-site.exp site.exp; \
  EXPECT=`if [ -f ${rootme}/../expect/expect ] ; then echo ${rootme}/../expect/expect ; else echo expect ; fi` ; export EXPECT ; \
  if [ -f ${rootme}/../expect/expect ] ; then  \
    TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
    export TCL_LIBRARY ; \
  fi ; \
  `if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo ${srcdir}/../dejagnu/runtest ; else echo runtest; fi` --tool g++ --target_board=''; \
  if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ] ; then \
    touch ${rootme}/testsuite/g++-parallel/finished; \
  fi ; \
fi )
WARNING: Couldn't find the global config file.
Using /home/user/Downloads/riscv-gnu-toolchain/gcc/gcc/testsuite/lib/g++.exp as tool init file.
Test run by user on Mon Jul 15 13:00:51 2024
Target is riscv64-unknown-elf
Host   is x86_64-pc-linux-gnu

                === g++ tests ===

Schedule of variations:

                === g++ Summary ===

/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc/xg++  version 13.2.0 (gc891d8dc23e)

make[3]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
make[2]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2/gcc'
make[1]: Leaving directory '/home/user/Downloads/riscv-gnu-toolchain/build-gcc-newlib-stage2'
mkdir -p stamps/
date > stamps/check-gcc-newlib
/home/user/Downloads/riscv-gnu-toolchain/scripts/testsuite-filter gcc newlib /home/user/Downloads/riscv-gnu-toolchain/test/allowlist `find build-gcc-newlib-stage2/gcc/testsuite/ -name *.sum |paste -sd "," -`

               ========= Summary of gcc testsuite =========
                            | # of unexpected case / # of unique unexpected case
                            |          gcc |          g++ |     gfortran |
make: *** [Makefile:1099: report-gcc-newlib] Error 1

I don't know why the latter fails?