sim: dv-sockser: move sim-main.h include after system includes
authorMike Frysinger <vapier@gentoo.org>
Thu, 9 Sep 2021 04:46:11 +0000 (00:46 -0400)
committerMike Frysinger <vapier@gentoo.org>
Thu, 9 Sep 2021 05:04:08 +0000 (01:04 -0400)
commit287fbf951acc76f21d5ec6ab515d6080571aa7ee
treea934b677af24293407c7d0682debc9469989ae21
parent7eb2a68f2854ff1b53f84346b4c19450fba21e9f
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