mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 02:44:18 +08:00
eeff504238
The DejaGnu routine "riscv_get_arch" fails to infer the correct architecture string when GCC is built for RV32EC. This causes invalid architecture string to be produced by "add_options_for_riscv_v": xgcc: error: '-march=rv32cv': first ISA subset must be 'e', 'i' or 'g' Fix by adding the E base ISA variant to the list of possible architecture modifiers. Also, the V extension is added to the machine string without checking whether dependent extensions are available. This results in errors when GCC is built for RV32EC: Executing on host: .../xgcc ... -march=rv32ecv ... cc1: error: ILP32E ABI does not support the 'D' extension cc1: sorry, unimplemented: Currently the 'V' implementation requires the 'M' extension Fix by disabling vector tests for RISC-V if V extension cannot be added to current architecture. Tested riscv32-none-elf for -march=rv32ec using GNU simulator. Most of the remaining failures are due to explicit addition of vector options, yet missing "dg-require-effective-target riscv_v_ok": === gcc Summary === # of expected passes 211958 # of unexpected failures 1826 # of expected failures 1059 # of unresolved testcases 5209 # of unsupported tests 15513 Ensured riscv64-unknown-linux-gnu tested with qemu has no new passing or failing tests, before and after applying this patch: Running target riscv-sim/-march=rv64imafdc/-mabi=lp64d/-mcmodel=medlow ... === gcc Summary === # of expected passes 237209 # of unexpected failures 335 # of expected failures 1670 # of unresolved testcases 43 # of unsupported tests 16767 PR target/117603 gcc/testsuite/ChangeLog: * lib/target-supports.exp (riscv_get_arch): Add comment about function purpose. Add E ISA to list of possible modifiers. (check_vect_support_and_set_flags): Do not advertise vector support if V extension cannot be enabled. Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu> |
||
---|---|---|
.forgejo | ||
.github | ||
c++tools | ||
config | ||
contrib | ||
fixincludes | ||
gcc | ||
gnattools | ||
gotools | ||
include | ||
INSTALL | ||
libada | ||
libatomic | ||
libbacktrace | ||
libcc1 | ||
libcody | ||
libcpp | ||
libdecnumber | ||
libffi | ||
libgcc | ||
libgfortran | ||
libgm2 | ||
libgo | ||
libgomp | ||
libgrust | ||
libiberty | ||
libitm | ||
libobjc | ||
libphobos | ||
libquadmath | ||
libsanitizer | ||
libssp | ||
libstdc++-v3 | ||
libvtv | ||
lto-plugin | ||
maintainer-scripts | ||
zlib | ||
.b4-config | ||
.dir-locals.el | ||
.gitattributes | ||
.gitignore | ||
ABOUT-NLS | ||
ar-lib | ||
ChangeLog | ||
ChangeLog.jit | ||
ChangeLog.tree-ssa | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING3 | ||
COPYING3.LIB | ||
COPYING.LIB | ||
COPYING.RUNTIME | ||
depcomp | ||
install-sh | ||
libtool-ldflags | ||
libtool.m4 | ||
lt~obsolete.m4 | ||
ltgcc.m4 | ||
ltmain.sh | ||
ltoptions.m4 | ||
ltsugar.m4 | ||
ltversion.m4 | ||
MAINTAINERS | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
missing | ||
mkdep | ||
mkinstalldirs | ||
move-if-change | ||
multilib.am | ||
README | ||
SECURITY.txt | ||
symlink-tree | ||
test-driver | ||
ylwrap |
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with COPYING for copying permission. The manuals, and some of the runtime libraries, are under different terms; see the individual source files for details. The directory INSTALL contains copies of the installation information as HTML and plain text. The source of this information is gcc/doc/install.texi. The installation information includes details of what is included in the GCC sources and what files GCC installs. See the file gcc/doc/gcc.texi (together with other files that it includes) for usage and porting information. An online readable version of the manual is in the files gcc/doc/gcc.info*. See http://gcc.gnu.org/bugs/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.