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)
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

index 7f1cf798e4b947d8161927d13109f8cae9d175c0..99f280cd1a72b90236f3e3e532736df51b6f6da2 100644 (file)
@@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* This must come before any other includes.  */
 #include "defs.h"
 
-#include "sim-main.h"
-
 #include <string.h>
 #include <signal.h>
 #include <stdlib.h>
@@ -46,6 +44,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <netinet/tcp.h>
 #endif
 
+#include "sim-main.h"
 #include "sim-assert.h"
 #include "sim-options.h"