There are two major errors.
I think this is actually an error that can be ignored.
[333/1152] Compiling C object libqemu-cskyv1-linux-user.fa.p/fpu_softfloat.c.o
In file included from /tmp/qemu-csky/qemu/include/qemu/osdep.h:37,
from ../fpu/softfloat.c:85:
../fpu/softfloat.c:1590:39: warning: conflicting types for ‘parts64_compare’ due to enum/integer mismatch; have ‘FloatRelation(FloatParts64 *, FloatParts64 *, float_status *, _Bool)’ [-Wenum-int-mismatch]
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~~
/tmp/qemu-csky/qemu/include/qemu/compiler.h:35:21: note: in definition of macro ‘xglue’
35 | #define xglue(x, y) x ## y
| ^
../fpu/softfloat.c:1590:24: note: in expansion of macro ‘glue’
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~
/tmp/qemu-csky/qemu/include/qemu/compiler.h:36:20: note: in expansion of macro ‘xglue’
36 | #define glue(x, y) xglue(x, y)
| ^~~~~
../fpu/softfloat.c:1590:29: note: in expansion of macro ‘glue’
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~
/tmp/qemu-csky/qemu/include/qemu/compiler.h:36:20: note: in expansion of macro ‘xglue’
36 | #define glue(x, y) xglue(x, y)
| ^~~~~
../fpu/softfloat.c:1590:34: note: in expansion of macro ‘glue’
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~
../fpu/softfloat-parts.c.inc:1297:22: note: in expansion of macro ‘partsN’
1297 | static FloatRelation partsN(compare)(FloatPartsN *a, FloatPartsN *b,
| ^~~~~~
../fpu/softfloat.c:874:12: note: previous declaration of ‘parts64_compare’ with type ‘int(FloatParts64 *, FloatParts64 *, float_status *, _Bool)’
874 | static int parts64_compare(FloatParts64 *a, FloatParts64 *b,
| ^~~~~~~~~~~~~~~
../fpu/softfloat.c:1590:39: warning: conflicting types for ‘parts128_compare’ due to enum/integer mismatch; have ‘FloatRelation(FloatParts128 *, FloatParts128 *, float_status *, _Bool)’ [-Wenum-int-mismatch]
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~~
/tmp/qemu-csky/qemu/include/qemu/compiler.h:35:21: note: in definition of macro ‘xglue’
35 | #define xglue(x, y) x ## y
| ^
../fpu/softfloat.c:1590:24: note: in expansion of macro ‘glue’
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~
/tmp/qemu-csky/qemu/include/qemu/compiler.h:36:20: note: in expansion of macro ‘xglue’
36 | #define glue(x, y) xglue(x, y)
| ^~~~~
../fpu/softfloat.c:1590:29: note: in expansion of macro ‘glue’
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~
/tmp/qemu-csky/qemu/include/qemu/compiler.h:36:20: note: in expansion of macro ‘xglue’
36 | #define glue(x, y) xglue(x, y)
| ^~~~~
../fpu/softfloat.c:1590:34: note: in expansion of macro ‘glue’
1590 | #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
| ^~~~
../fpu/softfloat-parts.c.inc:1297:22: note: in expansion of macro ‘partsN’
1297 | static FloatRelation partsN(compare)(FloatPartsN *a, FloatPartsN *b,
| ^~~~~~
../fpu/softfloat.c:876:12: note: previous declaration of ‘parts128_compare’ with type ‘int(FloatParts128 *, FloatParts128 *, float_status *, _Bool)’
876 | static int parts128_compare(FloatParts128 *a, FloatParts128 *b,
[426/1152] Compiling C object libqemu-cskyv2-linux-user.fa.p/target_csky_op_vdsp2.c.o
../target/csky/op_vdsp2.c: In function ‘helper_vdsp2_vmulae’:
../target/csky/op_vdsp2.c:4875:43: warning: array subscript 2 is above array bounds of ‘uint64_t[2]’ {aka ‘long unsigned int[2]’} [-Warray-bounds=]
4875 | env->vfp.reg[rz].udspl[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from ../target/csky/op_vdsp2.c:20:
../target/csky/cpu.h:207:22: note: while referencing ‘udspl’
207 | uint64_t udspl[2];
| ^~~~~
../target/csky/op_vdsp2.c:4875:43: warning: array subscript 3 is above array bounds of ‘uint64_t[2]’ {aka ‘long unsigned int[2]’} [-Warray-bounds=]
4875 | env->vfp.reg[rz].udspl[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:207:22: note: while referencing ‘udspl’
207 | uint64_t udspl[2];
| ^~~~~
../target/csky/op_vdsp2.c:4861:43: warning: array subscript 4 is above array bounds of ‘uint32_t[4]’ {aka ‘unsigned int[4]’} [-Warray-bounds=]
4861 | env->vfp.reg[rz].udspi[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:209:22: note: while referencing ‘udspi’
209 | uint32_t udspi[4];
| ^~~~~
../target/csky/op_vdsp2.c:4847:43: warning: array subscript 8 is above array bounds of ‘uint16_t[8]’ {aka ‘short unsigned int[8]’} [-Warray-bounds=]
4847 | env->vfp.reg[rz].udsps[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:211:22: note: while referencing ‘udsps’
211 | uint16_t udsps[8];
| ^~~~~
../target/csky/op_vdsp2.c:4830:42: warning: array subscript 2 is above array bounds of ‘int64_t[2]’ {aka ‘long int[2]’} [-Warray-bounds=]
4830 | env->vfp.reg[rz].dspl[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:208:22: note: while referencing ‘dspl’
208 | int64_t dspl[2];
| ^~~~
../target/csky/op_vdsp2.c:4830:42: warning: array subscript 3 is above array bounds of ‘int64_t[2]’ {aka ‘long int[2]’} [-Warray-bounds=]
4830 | env->vfp.reg[rz].dspl[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:208:22: note: while referencing ‘dspl’
208 | int64_t dspl[2];
| ^~~~
../target/csky/op_vdsp2.c:4816:42: warning: array subscript 4 is above array bounds of ‘int32_t[4]’ {aka ‘int[4]’} [-Warray-bounds=]
4816 | env->vfp.reg[rz].dspi[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:210:22: note: while referencing ‘dspi’
210 | int32_t dspi[4];
| ^~~~
../target/csky/op_vdsp2.c:4802:42: warning: array subscript 8 is above array bounds of ‘int16_t[8]’ {aka ‘short int[8]’} [-Warray-bounds=]
4802 | env->vfp.reg[rz].dsps[cnt + i] +
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
../target/csky/cpu.h:212:22: note: while referencing ‘dsps’
212 | int16_t dsps[8];
| ^~~~
There are two major errors.
1. enum/integer mismatch
I think this is actually an error that can be ignored.
2. array bound error
By predefining
export CXXFLAGS="-Wno-error"; export CFLAGS="-Wno-error", the build will proceed to the end.However, I thought it would be better to report it, so I did so.
build.log