Hi! While building with very recent GCC versions, I noticed these build issues for aarch64-{elf,linux-gnu,linux,rtems}: .../configure --prefix=/tmp/gdb-aarch64-elf --target=aarch64-elf [...] make V=1 all-gdb [...] /usr/lib/gcc-snapshot/bin/gcc -DHAVE_CONFIG_H -DWITH_HW=1 -DHAVE_DV_SOCKSER -DDEFAULT_INLINE=0 -Wall -Wdeclaration-after-statement -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wno-error=maybe-uninitialized -Wmissing-declarations -Wmissing-prototypes -Wdeclaration-after-statement -Wmissing-parameter-type -Wpointer-sign -Wold-style-declaration -Werror -I. -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64 -I../common -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../common -I../../include -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../include -I../../bfd -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../bfd -I../../opcodes -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../opcodes -I../.. -I/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64/../../gnulib/import -I../../gnulib/import -g -O2 -c -o cpustate.o -MT cpustate.o -MMD -MP -MF .deps/cpustate.Tpo cpustate.c cpustate.c:270:1: error: conflicting types for 'aarch64_get_CPSR_bits' due to enum/integer mismatch; have 'uint32_t(sim_cpu *, FlagMask)' {aka 'unsigned int(struct _sim_cpu *, FlagMask)'} [-Werror=enum-int-mismatch] 270 | aarch64_get_CPSR_bits (sim_cpu *cpu, FlagMask mask) | ^~~~~~~~~~~~~~~~~~~~~ In file included from sim-main.h:30, from cpustate.c:28: cpustate.h:310:20: note: previous declaration of 'aarch64_get_CPSR_bits' with type 'uint32_t(sim_cpu *, uint32_t)' {aka 'unsigned int(struct _sim_cpu *, unsigned int)'} 310 | extern uint32_t aarch64_get_CPSR_bits (sim_cpu *, uint32_t); | ^~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[3]: *** [Makefile:509: cpustate.o] Error 1 make[3]: Leaving directory '/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim/aarch64' make[2]: *** [Makefile:1929: all-recursive] Error 1 make[2]: Leaving directory '/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim' make[1]: *** [Makefile:1181: all] Error 2 make[1]: Leaving directory '/var/lib/laminar/run/gdb-aarch64-elf/1/binutils-gdb/sim' make: *** [Makefile:11309: all-sim] Error 2 This fixes the declaration: diff --git a/sim/aarch64/cpustate.h b/sim/aarch64/cpustate.h index 1d25b3af15a..94e0bc80333 100644 --- a/sim/aarch64/cpustate.h +++ b/sim/aarch64/cpustate.h @@ -307,7 +307,7 @@ extern void aarch64_save_LR (sim_cpu *); /* Flag register accessors. */ extern uint32_t aarch64_get_CPSR (sim_cpu *); extern void aarch64_set_CPSR (sim_cpu *, uint32_t); -extern uint32_t aarch64_get_CPSR_bits (sim_cpu *, uint32_t); +extern uint32_t aarch64_get_CPSR_bits (sim_cpu *, FlagMask); extern void aarch64_set_CPSR_bits (sim_cpu *, uint32_t, uint32_t); extern uint32_t aarch64_test_CPSR_bit (sim_cpu *, FlagMask); extern void aarch64_set_CPSR_bit (sim_cpu *, FlagMask); OK to install? Thanks, Jan-Benedict --