From 287fbf951acc76f21d5ec6ab515d6080571aa7ee Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 9 Sep 2021 00:46:11 -0400 Subject: sim: dv-sockser: move sim-main.h include after system includes The sim-main.h header is a bit of a dumping ground. Every arch can (and many do) define all sorts of weird & common names that end up conflicting with system headers. So including it before the system headers sets us up for pain. v850 is a good example of this -- when building for mingw, we see weird failures: $ i686-w64-mingw32-gcc ... -c -o dv-sockser.o ../../../../sim/v850/../common/dv-sockser.c In file included from ../../../../sim/v850/sim-main.h:11, from ../../../../sim/v850/../common/dv-sockser.c:24: ../../../../sim/v850/../common/sim-base.h:97:32: error: expected ')' before '->' token 97 | # define STATE_CPU(sd, n) ((sd)->cpu[0]) | ^~ While gcc is unhelpful at first, running it through the preprocessor by hand shows more details: $ i686-w64-mingw32-gcc ... -E -dD -o dv-sockser.i ../../../../sim/v850/../common/dv-sockser.c $ i686-w64-mingw32-gcc -c dv-sockser.i In file included from /usr/i686-w64-mingw32/usr/include/minwindef.h:163, from /usr/i686-w64-mingw32/usr/include/windef.h:9, from /usr/i686-w64-mingw32/usr/include/windows.h:69, from /usr/i686-w64-mingw32/usr/include/winsock2.h:23, from ../../gnulib/import/sys/socket.h:684, from ../../gnulib/import/netinet/in.h:43, from ../../../../sim/v850/../common/dv-sockser.c:39: /usr/i686-w64-mingw32/usr/include/winnt.h:4803:25: error: expected ')' before '->' token 4803 | DWORD State; | ^ | ) This is because v850 sets up this common name: All of this needs cleaning up someday, but since the dv-sockser code definitely should be fixed in this way, lets do that now and unblock the v850 code. --- sim/common/dv-sockser.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sim/common') diff --git a/sim/common/dv-sockser.c b/sim/common/dv-sockser.c index 7f1cf79..99f280c 100644 --- a/sim/common/dv-sockser.c +++ b/sim/common/dv-sockser.c @@ -21,8 +21,6 @@ along with this program. If not, see . */ /* This must come before any other includes. */ #include "defs.h" -#include "sim-main.h" - #include #include #include @@ -46,6 +44,7 @@ along with this program. If not, see . */ #include #endif +#include "sim-main.h" #include "sim-assert.h" #include "sim-options.h" -- cgit v1.1