aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.github/cleanup-rootfs.sh21
-rwxr-xr-x.github/setup-apt.sh2
-rw-r--r--.gitmodules17
-rw-r--r--Makefile.in16
-rw-r--r--README.md24
m---------gcc0
m---------gdb0
m---------glibc0
m---------qemu0
-rw-r--r--test/allowlist/gcc/common.log73
-rw-r--r--test/allowlist/gcc/gen.py50
-rw-r--r--test/allowlist/gcc/glibc.log80
-rw-r--r--test/allowlist/gcc/glibc.rv32.log40
-rw-r--r--test/allowlist/gcc/glibc.rv64.log12
-rw-r--r--test/allowlist/gcc/newlib-nano.f.log4
-rw-r--r--test/allowlist/gcc/newlib-nano.log34
-rw-r--r--test/allowlist/gcc/newlib.log18
-rw-r--r--test/allowlist/gcc/newlib.rv32.log8
-rw-r--r--test/allowlist/gcc/rv32.log13
19 files changed, 197 insertions, 215 deletions
diff --git a/.github/cleanup-rootfs.sh b/.github/cleanup-rootfs.sh
index 7d1b255..92f93f1 100755
--- a/.github/cleanup-rootfs.sh
+++ b/.github/cleanup-rootfs.sh
@@ -4,8 +4,7 @@
# while the process moves forward (for apt we'll need to wait for it to finish
# before we install dependencies later on, but it'll only give us a 1-3GBs so
# we can skip it.
-WAIT=0
-RMONLY=1
+WAIT=1 # Set to 1 if you want to wait for the cleanup to finish before proceeding.
PACKAGES=(
"firefox"
@@ -36,11 +35,9 @@ PATHS=(
function cleanup_packages()
{
- if [[ ${RMONLY} == 0 ]]; then
- apt-get purge -y "${PACKAGES[@]}"
- apt-get autoremove --purge -y
- apt-get clean
- fi
+ apt-get purge -y "${PACKAGES[@]}"
+ apt-get autoremove --purge -y
+ apt-get clean
}
function cleanup_paths()
@@ -53,14 +50,24 @@ function cleanup_paths()
fi
}
+function cleanup_docker()
+{
+ docker image prune --all --force &
+ if [[ ${WAIT} == 1 ]]; then
+ wait
+ fi
+}
+
if [[ ${WAIT} == 1 ]]; then
echo "---=== Before ===---"
df -hT
cleanup_packages
cleanup_paths
+ cleanup_docker
echo "---=== After ===---"
df -hT
else
cleanup_packages
cleanup_paths
+ cleanup_docker
fi
diff --git a/.github/setup-apt.sh b/.github/setup-apt.sh
index caf37c9..b56406c 100755
--- a/.github/setup-apt.sh
+++ b/.github/setup-apt.sh
@@ -6,4 +6,4 @@ apt update
apt install -y autoconf automake autotools-dev curl python3 python3-pip python3-tomli libmpc-dev libmpfr-dev \
libgmp-dev gawk build-essential bison flex texinfo gperf libtool \
patchutils bc zlib1g-dev libexpat-dev git ninja-build cmake libglib2.0-dev expect \
- device-tree-compiler python3-pyelftools libslirp-dev
+ device-tree-compiler python3-pyelftools libslirp-dev libzstd-dev
diff --git a/.gitmodules b/.gitmodules
index c8e467c..8850b2c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,16 +1,19 @@
+# Some of the external git repos are not upstream servers but upstream clones to
+# avoid "Server does not allow request for unadvertised object" errors (see
+# #1654).
[submodule "binutils"]
path = binutils
- url = https://sourceware.org/git/binutils-gdb.git
+ url = https://github.com/bminor/binutils-gdb.git
branch = binutils-2_44-branch
shallow = true
[submodule "gcc"]
path = gcc
- url = https://gcc.gnu.org/git/gcc.git
- branch = releases/gcc-14
+ url = https://github.com/gcc-mirror/gcc.git
+ branch = releases/gcc-15
shallow = true
[submodule "glibc"]
path = glibc
- url = https://sourceware.org/git/glibc.git
+ url = https://github.com/bminor/glibc.git
shallow = true
[submodule "dejagnu"]
path = dejagnu
@@ -19,13 +22,13 @@
shallow = true
[submodule "newlib"]
path = newlib
- url = https://sourceware.org/git/newlib-cygwin.git
+ url = https://github.com/bminor/newlib.git
branch = master
shallow = true
[submodule "gdb"]
path = gdb
- url = https://sourceware.org/git/binutils-gdb.git
- branch = gdb-15-branch
+ url = https://github.com/bminor/binutils-gdb.git
+ branch = gdb-16-branch
shallow = true
[submodule "qemu"]
path = qemu
diff --git a/Makefile.in b/Makefile.in
index b597a40..3abe1a9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -17,14 +17,9 @@ LLVM_SRCDIR := @with_llvm_src@
DEJAGNU_SRCDIR := @with_dejagnu_src@
DEBUG_INFO := @debug_info@
ENABLE_DEFAULT_PIE := @enable_default_pie@
-DEJAGNU_SRCDIR := @with_dejagnu_src@
SIM ?= @WITH_SIM@
-# Shared lib suffix
-IS_DARWIN := $(shell uname -s | grep Darwin)
-SHARED_LIB_SUFFIX := $(if $(IS_DARWIN),dylib,so)
-
ifeq ($(srcdir)/gcc,$(GCC_SRCDIR))
# We need a relative source dir for the gcc configure, to make msys2 mingw64
# builds work. Mayberelsrcdir is relative if a relative path was used to run
@@ -1159,7 +1154,8 @@ stamps/build-llvm-linux: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) $(BINUTILS_SRCDIR) $(BIN
-DLLVM_RUNTIME_TARGETS=$(call make_tuple,$(XLEN),linux-gnu) \
-DLLVM_INSTALL_TOOLCHAIN_ONLY=On \
-DLLVM_BINUTILS_INCDIR=$(BINUTILS_SRCDIR)/include \
- -DLLVM_PARALLEL_LINK_JOBS=4
+ -DLLVM_PARALLEL_LINK_JOBS=4 \
+ $(LLVM_EXTRA_CONFIGURE_FLAGS)
$(MAKE) -C $(notdir $@)
$(MAKE) -C $(notdir $@) install
# Build shared/static OpenMP libraries on RV64.
@@ -1204,7 +1200,6 @@ stamps/build-llvm-linux: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) $(BINUTILS_SRCDIR) $(BIN
$(MAKE) -C $(notdir $@)/openmp-static install; \
fi
cp $(notdir $@)/lib/riscv$(XLEN)-unknown-linux-gnu/libc++* $(SYSROOT)/lib
- cp $(notdir $@)/lib/LLVMgold.$(SHARED_LIB_SUFFIX) $(INSTALL_DIR)/lib
cd $(INSTALL_DIR)/bin && ln -s -f clang $(LINUX_TUPLE)-clang && ln -s -f clang++ $(LINUX_TUPLE)-clang++
mkdir -p $(dir $@) && touch $@
@@ -1221,10 +1216,10 @@ stamps/build-llvm-newlib: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) $(BINUTILS_SRCDIR) $(BI
-DLLVM_DEFAULT_TARGET_TRIPLE="$(NEWLIB_TUPLE)" \
-DLLVM_INSTALL_TOOLCHAIN_ONLY=On \
-DLLVM_BINUTILS_INCDIR=$(BINUTILS_SRCDIR)/include \
- -DLLVM_PARALLEL_LINK_JOBS=4
+ -DLLVM_PARALLEL_LINK_JOBS=4 \
+ $(LLVM_EXTRA_CONFIGURE_FLAGS)
$(MAKE) -C $(notdir $@)
$(MAKE) -C $(notdir $@) install
- cp $(notdir $@)/lib/LLVMgold.$(SHARED_LIB_SUFFIX) $(INSTALL_DIR)/lib
cd $(INSTALL_DIR)/bin && ln -s -f clang $(NEWLIB_TUPLE)-clang && \
ln -s -f clang++ $(NEWLIB_TUPLE)-clang++
mkdir -p $(dir $@) && touch $@
@@ -1359,7 +1354,7 @@ report-binutils-linux: stamps/check-binutils-linux
`find build-binutils-linux/ -name *.sum |paste -sd "," -`
clean:
- rm -rf build-* install-* stamps install-newlib-nano
+ rm -rf build-* install-* stamps
.PHONY: report-gdb-newlib report-gdb-newlib-nano
report-gdb-newlib: stamps/check-gdb-newlib
@@ -1382,7 +1377,6 @@ report-gdb-linux: stamps/check-gdb-linux
if find build-gdb-linux -iname '*.sum' | xargs grep ^FAIL | sort | grep -F -v $(patsubst %,--file=$(srcdir)/test/gdb-linux/%.log,$(GLIBC_MULTILIB_NAMES)); then false; else true; fi
distclean: clean
- rm -rf src
# All of the packages install themselves, so our install target does nothing.
install:
diff --git a/README.md b/README.md
index 31452c7..363840a 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ so `--recursive` or `git submodule update --init --recursive` is not needed.
### Prerequisites
-Several standard packages are needed to build the toolchain.
+Several standard packages are needed to build the toolchain.
On Ubuntu, executing the following command should suffice:
@@ -25,7 +25,7 @@ On Ubuntu, executing the following command should suffice:
On Fedora/CentOS/RHEL OS, executing the following command should suffice:
$ sudo yum install autoconf automake python3 libmpc-devel mpfr-devel gmp-devel gawk bison flex texinfo patchutils gcc gcc-c++ zlib-devel expat-devel libslirp-devel
-
+
On Arch Linux, executing the following command should suffice:
$ sudo pacman -Syu curl python3 libmpc mpfr gmp base-devel texinfo gperf patchutils bc zlib expat libslirp
@@ -91,7 +91,7 @@ To build either cross-compiler with support for both 32-bit and
64-bit, run the following command:
./configure --prefix=/opt/riscv --enable-multilib
-
+
And then either `make`, `make linux` or `make musl` for the Newlib, Linux
glibc-based or Linux musl libc-based cross-compiler, respectively.
@@ -104,7 +104,7 @@ using the `--print-multi-lib` flag on either cross-compiler.
Linux toolchain has an additional option `--enable-default-pie` to control the
default PIE enablement for GCC, which is disable by default.
-To customize the enabled languages, use option `--with-languages=`. For example,
+To customize the enabled languages, use option `--with-languages=`. For example,
if you want to enable `c,c++,fortran`, use `./configure --with-languages=c,c++,fortran`.
This option only takes effect for the GNU toolchain.
@@ -140,7 +140,7 @@ devtoolset-7 works.
There are a number of additional options that may be passed to
configure. See './configure --help' for more details.
-Also you can define extra flags to pass to specific projects: ```BINUTILS_NATIVE_FLAGS_EXTRA, BINUTILS_TARGET_FLAGS_EXTRA, GCC_EXTRA_CONFIGURE_FLAGS, GDB_NATIVE_FLAGS_EXTRA, GDB_TARGET_FLAGS_EXTRA, GLIBC_TARGET_FLAGS_EXTRA, NEWLIB_TARGET_FLAGS_EXTRA```.
+Also you can define extra flags to pass to specific projects: ```BINUTILS_NATIVE_FLAGS_EXTRA, BINUTILS_TARGET_FLAGS_EXTRA, GCC_EXTRA_CONFIGURE_FLAGS, GDB_NATIVE_FLAGS_EXTRA, GDB_TARGET_FLAGS_EXTRA, GLIBC_TARGET_FLAGS_EXTRA, NEWLIB_TARGET_FLAGS_EXTRA, LLVM_EXTRA_CONFIGURE_FLAGS```.
Example: ```GCC_EXTRA_CONFIGURE_FLAGS=--with-gmp=/opt/gmp make linux```
#### Set default ISA spec version
@@ -218,8 +218,8 @@ This flag is particularly useful for developers testing and emulating full RISC-
The Dejagnu test suite has been ported to RISC-V. This can be run with a
simulator for the elf and linux toolchains. The simulator can be selected
by the SIM variable in the Makefile, e.g. SIM=qemu, SIM=gdb, or SIM=spike
-(experimental).In addition, the simulator can also be selected with the
-configure time option `--with-sim=`.However, the testsuite allowlist is
+(experimental).In addition, the simulator can also be selected with the
+configure time option `--with-sim=`.However, the testsuite allowlist is
only maintained for qemu.Other simulators might get extra failures.
#### Additional Prerequisite
@@ -279,12 +279,12 @@ that are being executed using the environment variable `RUNTESTFLAGS`.
To restrict a test run to only RISC-V specific tests
the following command can be used:
- RUNTESTFLAGS="riscv.exp" make report
+ RUNTESTFLAGS="riscv.exp" make report
To restrict a test run to only RISC-V specific tests with match the
pattern "zb*.c" and "sm*.c" the following command can be used:
- RUNTESTFLAGS="riscv.exp=zb*.c\ sm*.c" make report
+ RUNTESTFLAGS="riscv.exp=zb*.c\ sm*.c" make report
#### Testing GCC, Binutils, and glibc of a Linux toolchain
@@ -422,7 +422,7 @@ toolchain with your own source tree.
#### Update Source Tree
`riscv-gnu-toolchain` contain stable but not latest source for each submodule,
-in case you want to using latest develoment tree, you can use following command
+in case you want to using latest development tree, you can use following command
to upgrade all submodule.
git submodule update --remote
@@ -490,8 +490,8 @@ sources is among them. The flag `--enable-host-gcc` does exaclty that:
### FAQ
#### Ensuring Code Model Consistency
-If parts of newlib are going to be replaced with an external library (such as with [libgloss-htif](https://github.com/ucb-bar/libgloss-htif) for Berkeley Host-Target Interface),
-you should take care to ensure that both newlib and the external library are built using the same code model. For more information about RISC-V code models,
+If parts of newlib are going to be replaced with an external library (such as with [libgloss-htif](https://github.com/ucb-bar/libgloss-htif) for Berkeley Host-Target Interface),
+you should take care to ensure that both newlib and the external library are built using the same code model. For more information about RISC-V code models,
[read this SiFive blog article](https://www.sifive.com/blog/all-aboard-part-4-risc-v-code-models).
Errors that indicate a code model mismatch include "relocation overflow" or "relocation truncated" errors from the linker being unable to successfully relocate symbols in the executable.
diff --git a/gcc b/gcc
-Subproject 04696df09633baf97cdbbdd6e9929b9d472161d
+Subproject 1b306039ac49f8ad91ca71d3de3150a3c9fa792
diff --git a/gdb b/gdb
-Subproject 23c84db5b3cb4e8a0d555c76e1a0ab56dc8355f
+Subproject 800169229d1c69a6d9ad4a6f7b7481aca75eeef
diff --git a/glibc b/glibc
-Subproject 3d1aed874918c466a4477af1da35983ab036690
+Subproject 74f59e9271cbb4071671e5a474e7d4f1622b186
diff --git a/qemu b/qemu
-Subproject ae35f033b874c627d81d51070187fbf55f0bf1a
+Subproject 7c949c53e936aa3a658d84ab53bae5cadaa5d59
diff --git a/test/allowlist/gcc/common.log b/test/allowlist/gcc/common.log
index 7262cf0..7e74b08 100644
--- a/test/allowlist/gcc/common.log
+++ b/test/allowlist/gcc/common.log
@@ -1,38 +1,35 @@
-#
-# XXX: Need review.
-#
-XPASS: gcc.dg/attr-alloc_size-11.c
-FAIL: g++.dg/modules/bad-mapper-3.C
-#
-# We didn't define TARGET_HAVE_SPECULATION_SAFE_VALUE or
-# speculation_barrier pattern
-#
-FAIL: c-c++-common/spec-barrier-1.c
-#
-# Fix upstream (77f3b3419d4) but no backport
-#
-UNRESOLVED: gcc.target/riscv/mcpu-6.c
-UNRESOLVED: gcc.target/riscv/mcpu-7.c
-FAIL: g++.dg/vect/pr95401.cc
-FAIL: gcc.dg/Wstringop-overflow-47.c
-#
-# Still fail on upstream(2024.8.12)
-#
-FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113281-1.c
-FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113281-2.c
-FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113281-5.c
-FAIL: gcc.dg/tree-ssa/ssa-dom-cse-2.c
-FAIL: gcc.dg/tree-ssa/update-threading.c
-FAIL: gcc.dg/vect/pr65310.c
-FAIL: gcc.dg/vect/pr88598-1.c
-FAIL: gcc.dg/vect/pr88598-2.c
-FAIL: gcc.dg/vect/pr88598-3.c
-FAIL: gcc.dg/vect/vect-gather-2.c
-FAIL: gcc.dg/plugin/cpython-plugin-test-PyList_Append.c
-FAIL: gcc.dg/plugin/cpython-plugin-test-PyList_New.c
-FAIL: gcc.dg/plugin/cpython-plugin-test-PyLong_FromLong.c
-#
-# Fail when don't have floating point support
-# see https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1531#issuecomment-2373636158
-#
-FAIL: gcc.dg/pr110279-1.c
+FAIL: gcc.dg/vect/pr65310.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c
+FAIL: g++.target/riscv/redundant-bitmap-2.C
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-12.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c
+FAIL: gcc.target/riscv/rvv/autovec/bug-3.c
+FAIL: gcc.dg/vect/pr88598-1.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c
+FAIL: gcc.dg/vect/pr88598-3.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113112-4.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-11.c
+FAIL: c-c++-common/spec-barrier-1.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c
+FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c
+FAIL: gcc.dg/vect/vect-gather-2.c
+FAIL: gcc.dg/vect/pr88598-2.c
+# Added because machine performance can affect test results.
+FAIL: gcc.dg/tree-prof/time-profiler-2.c
diff --git a/test/allowlist/gcc/gen.py b/test/allowlist/gcc/gen.py
new file mode 100644
index 0000000..e06f9ce
--- /dev/null
+++ b/test/allowlist/gcc/gen.py
@@ -0,0 +1,50 @@
+from tqdm import tqdm
+import re
+
+def processlog(filename: str) -> set:
+ with open(filename, "r", encoding='utf-8') as f:
+ data = f.readlines()
+ set1 = set()
+ for line in tqdm(data):
+ result = re.match('^.*((FAIL|UNRESOLVED): .*.c) .*$',line) #使用正则表达式筛选每一行的数据,自行查找正则表达式
+ if result:
+ t = (result.group(1)) #group(1)将正则表达式的(/d.*/d)提取出来
+ set1.add(t)
+ return set1
+
+def writeset(filename: str, set1: set) -> None:
+ if len(set1)!=0:
+ with open(filename, "a", encoding='utf-8') as f1:
+ for t in tqdm(set1):
+ f1.write(t+'\n')
+
+newlib64=processlog("10_build (ubuntu-24.04, newlib, rv64gc-lp64d, gcc).txt")
+newlib32=processlog("25_build (ubuntu-24.04, newlib, rv32gc-ilp32d, gcc).txt")
+linux64=processlog("24_build (ubuntu-24.04, linux, rv64gc-lp64d, gcc).txt")
+linux32=processlog("15_build (ubuntu-24.04, linux, rv32gc-ilp32d, gcc).txt")
+
+# common should be 4 intersection
+commonerror=set.intersection(newlib64, newlib32, linux64, linux32)
+writeset("res/common.log",commonerror)
+# rv32
+rv32=set.intersection(newlib32, linux32)
+rv32=rv32-commonerror
+writeset("res/rv32.log",rv32)
+# rv64
+rv64=set.intersection(newlib64, linux64)
+rv64=rv64-commonerror
+writeset("res/rv64.log",rv64)
+# glibc
+glibc=set.intersection(linux32, linux64)
+glibc=glibc-commonerror
+writeset("res/glibc.log",glibc)
+# newlib
+newlib=set.intersection(newlib64, newlib32)
+newlib=newlib-commonerror
+writeset("res/newlib.log",newlib)
+
+# everything out of it
+writeset("res/glibc.rv32.log",linux32-rv32-glibc-commonerror)
+writeset("res/glibc.rv64.log",linux64-rv64-glibc-commonerror)
+writeset("res/newlib.rv32.log",newlib32-rv32-newlib-commonerror)
+writeset("res/newlib.rv64.log",newlib64-rv64-newlib-commonerror)
diff --git a/test/allowlist/gcc/glibc.log b/test/allowlist/gcc/glibc.log
index 6ef0d7f..84342cf 100644
--- a/test/allowlist/gcc/glibc.log
+++ b/test/allowlist/gcc/glibc.log
@@ -1,74 +1,6 @@
-#
-# XXX: Need review why.
-#
-FAIL: gfortran.dg/matmul_15.f90
-FAIL: gfortran.dg/ieee/comparisons_3.F90
-FAIL: gfortran.dg/ieee/ieee_1.F90
-FAIL: gfortran.dg/ieee/ieee_2.f90
-FAIL: gfortran.dg/ieee/ieee_6.f90
-FAIL: gfortran.dg/ieee/large_2.f90
-FAIL: gfortran.dg/ieee/large_3.F90
-FAIL: gfortran.dg/ieee/modes_1.f90
-FAIL: gfortran.dg/ieee/rounding_1.f90
-#
-# Fails if there is no F extension
-#
-FAIL: gfortran.dg/ieee/rounding_3.f90
-#
-# Fixed but not backport
-#
-UNRESOLVED: gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
-FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
-#
-# Unknown random fail case.
-#
-FAIL: gcc.dg/tree-prof/time-profiler-2.c
-#
-# RVV fail cases(still exist on upstream)
-#
-FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
-FAIL: gcc.target/riscv/rvv/autovec/bug-1.c
-FAIL: gcc.target/riscv/rvv/autovec/pr113087-2.c
-FAIL: gcc.target/riscv/rvv/autovec/vls/misalign-1.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
-FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-2.c
-FAIL: gcc.target/riscv/rvv/base/pr110943.c
-FAIL: gcc.target/riscv/rvv/base/pr111533-2.c
-FAIL: gcc.target/riscv/rvv/base/pr112743-2.c
-FAIL: gcc.target/riscv/rvv/base/pr114639-1.c
-FAIL: gcc.target/riscv/rvv/base/pr115456-1.c
-FAIL: gcc.target/riscv/rvv/base/pr115456-2.c
-FAIL: gcc.target/riscv/rvv/base/pr115456-3.c
-FAIL: gcc.target/riscv/rvv/base/vlmul_ext-1.c
-FAIL: gcc.target/riscv/rvv/vsetvl/pr111234.c
-FAIL: gcc.target/riscv/rvv/vsetvl/pr115214.c
-FAIL: gcc.target/riscv/rvv/vsetvl/vsetvl-24.c
-UNRESOLVED: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
-UNRESOLVED: gcc.target/riscv/rvv/autovec/bug-1.c
-UNRESOLVED: gcc.target/riscv/rvv/autovec/pr113087-2.c
-UNRESOLVED: gcc.target/riscv/rvv/autovec/vls/misalign-1.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c
-UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-2.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr110943.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr111533-2.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr112743-2.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr114639-1.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-1.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-2.c
-UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-3.c
-UNRESOLVED: gcc.target/riscv/rvv/base/vlmul_ext-1.c
-UNRESOLVED: gcc.target/riscv/rvv/vsetvl/pr111234.c
-UNRESOLVED: gcc.target/riscv/rvv/vsetvl/pr115214.c
-UNRESOLVED: gcc.target/riscv/rvv/vsetvl/vsetvl-24.c
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/prefix.c
+FAIL: gfortran.dg/ieee/modes_1.f90
+FAIL: gcc.target/riscv/rvv/vtype-call-clobbered.c
+UNRESOLVED: gcc.target/riscv/rvv/vtype-call-clobbered.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/prefix.c
+FAIL: gfortran.dg/ieee/ieee_6.f90
diff --git a/test/allowlist/gcc/glibc.rv32.log b/test/allowlist/gcc/glibc.rv32.log
new file mode 100644
index 0000000..8c490ef
--- /dev/null
+++ b/test/allowlist/gcc/glibc.rv32.log
@@ -0,0 +1,40 @@
+FAIL: g++.target/riscv/rvv/autovec/pr116595.C
+UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-2.c
+UNRESOLVED: gcc.target/riscv/rvv/autovec/pr113087-2.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_x_f_qf.c
+FAIL: gcc.target/riscv/rvv/autovec/vls/misalign-1.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_2x8x2.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_4x8x4.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_4x8x4.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_4x8x4.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_4x8x4.c
+FAIL: gcc.target/riscv/rvv/base/pr115456-1.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_2x8x2.c
+UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-3.c
+FAIL: gcc.target/riscv/rvv/base/pr115456-2.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_xu_f_qf.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_4x8x4.c
+FAIL: gcc.target/riscv/rvv/base/pr111533-2.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_4x8x4.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_2x8x2.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_xu_f_qf.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_4x8x4.c
+UNRESOLVED: gcc.target/riscv/pr112398.c
+FAIL: gcc.target/riscv/pr112398.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_2x8x2.c
+UNRESOLVED: gcc.target/riscv/rvv/autovec/bug-1.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_4x8x4.c
+UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-1.c
+FAIL: gcc.target/riscv/rvv/base/pr112743-2.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_2x8x2.c
+FAIL: gcc.target/riscv/rvv/autovec/pr113087-2.c
+FAIL: gcc.target/riscv/slt-1.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_2x8x2.c
+FAIL: gcc.target/riscv/rvv/base/pr115456-3.c
+FAIL: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_x_f_qf.c
+FAIL: gcc.target/riscv/rvv/autovec/bug-1.c
+UNRESOLVED: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
+UNRESOLVED: gcc.target/riscv/slt-1.c
+UNRESOLVED: gcc.target/riscv/rvv/autovec/vls/misalign-1.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_2x8x2.c
+UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_2x8x2.c
diff --git a/test/allowlist/gcc/glibc.rv64.log b/test/allowlist/gcc/glibc.rv64.log
new file mode 100644
index 0000000..a114ca2
--- /dev/null
+++ b/test/allowlist/gcc/glibc.rv64.log
@@ -0,0 +1,12 @@
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c
+UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c
+FAIL: gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c
diff --git a/test/allowlist/gcc/newlib-nano.f.log b/test/allowlist/gcc/newlib-nano.f.log
deleted file mode 100644
index 37b510a..0000000
--- a/test/allowlist/gcc/newlib-nano.f.log
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# errno, failed because newlib nano didn't build with _POSIX_MODE
-#
-FAIL: gcc.dg/torture/pr68264.c
diff --git a/test/allowlist/gcc/newlib-nano.log b/test/allowlist/gcc/newlib-nano.log
deleted file mode 100644
index 9eb3e9c..0000000
--- a/test/allowlist/gcc/newlib-nano.log
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# We didn't init thread pointer in qemu nor newlib.
-#
-FAIL: gcc.dg/tls/pr78796.c execution test
-FAIL: g++.dg/cpp2a/decomp2.C
-#
-# freopen with stdout not work correctly for newlib
-#
-FAIL: gcc.c-torture/execute/user-printf.c
-FAIL: gcc.c-torture/execute/fprintf-2.c
-FAIL: gcc.c-torture/execute/printf-2.c
-#
-# newlib-nano didn't print out floating point by default,
-# program must link with -u_printf_float.
-#
-FAIL: g++.old-deja/g++.brendan/nest21.C
-FAIL: gcc.dg/torture/builtin-sprintf.c
-FAIL: gcc.dg/tree-ssa/builtin-sprintf.c
-FAIL: gcc.c-torture/execute/930513-1.c
-FAIL: gcc.c-torture/execute/920501-8.c
-FAIL: gcc.c-torture/execute/ieee/920810-1.c
-FAIL: gcc.c-torture/execute/printf-2.c
-#
-# newlib nano using LITE_EXIT, __register_exitproc won't link by default,
-# so dtor of global var not work properly.
-# Program must link with -u __register_exitproc to work properly.
-#
-FAIL: g++.dg/init/ref15.C
-FAIL: g++.old-deja/g++.other/init18.C
-FAIL: g++.old-deja/g++.pt/static11.C
-#
-# Missing dg-require-effective-target shared
-#
-FAIL: g++.dg/lto/pr87906
diff --git a/test/allowlist/gcc/newlib.log b/test/allowlist/gcc/newlib.log
index 50d20d8..2b877ee 100644
--- a/test/allowlist/gcc/newlib.log
+++ b/test/allowlist/gcc/newlib.log
@@ -1,14 +1,4 @@
-#
-# We didn't init thread pointer in qemu nor newlib.
-#
-FAIL: g++.dg/cpp2a/decomp2.C
-#
-# freopen with stdout not work correctly for newlib
-#
-FAIL: gcc.c-torture/execute/user-printf.c
-FAIL: gcc.c-torture/execute/fprintf-2.c
-FAIL: gcc.c-torture/execute/printf-2.c
-#
-# Spike execution fail
-#
-FAIL: g++.dg/vect/pr84556.cc
+FAIL: gcc.c-torture/execute/printf-2.c
+FAIL: gcc.c-torture/execute/fprintf-2.c
+FAIL: gcc.c-torture/execute/user-printf.c
+FAIL: g++.dg/cpp2a/decomp2.C
diff --git a/test/allowlist/gcc/newlib.rv32.log b/test/allowlist/gcc/newlib.rv32.log
deleted file mode 100644
index 1f1aee1..0000000
--- a/test/allowlist/gcc/newlib.rv32.log
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# RV32 only
-#
-UNRESOLVED: g++.dg/vect/pr115278.cc
-FAIL: g++.dg/vect/pr115278.cc
-FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c
-FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c
-FAIL: gcc.dg/analyzer/out-of-bounds-diagram-10.c
diff --git a/test/allowlist/gcc/rv32.log b/test/allowlist/gcc/rv32.log
index 758bc9f..5a98589 100644
--- a/test/allowlist/gcc/rv32.log
+++ b/test/allowlist/gcc/rv32.log
@@ -1,5 +1,8 @@
-#
-# RV32 only
-#
-FAIL: gcc.target/riscv/rvv/base/vwaddsub-1.c
-FAIL: gcc.dg/torture/pr113026-1.c
+UNRESOLVED: gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.c
+FAIL: gcc.dg/tree-ssa/pr83403-1.c
+FAIL: gcc.dg/tree-ssa/pr83403-2.c
+FAIL: gcc.target/riscv/pr116715.c
+FAIL: gcc.dg/torture/pr113026-1.c
+FAIL: gcc.dg/pr90838-2.c
+UNRESOLVED: gcc.target/riscv/pr116715.c
+FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.c