FreeBSD have this commit to their openttd port:

: Update of LLVM components in -head to version 5.0.0 apparently had broken
: OpenTTD due to a conflict of ``type'' being defined (differently) and used
: in both libc++ and the game itself:
: 
:   In file included from /usr/include/c++/v1/math.h:310:
:   /usr/include/c++/v1/limits:234:95: error: member reference base type 'int'
:   is not a structure or union
:     _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN()
:     _NOEXCEPT {return type(0);}
: 
:   .../openttd-1.7.1/src/3rdparty/squirrel/squirrel/sqobject.h:99:25: note:
:   expanded from macro 'type'
:     #define type(obj) ((obj)._type)
: 
: Mend the problem by #includ'ing <math.h> prior to Squirrel's (programming
: language OpenTTD uses internally for scripting).
: 
: Reported by:  pkg-fallout

This affects openttd and supertux in our tree with the WIP libc++ diff,
same change fixes both.

OK?

Index: supertux/patches/patch-external_squirrel_squirrel_sqvm_cpp
===================================================================
RCS file: supertux/patches/patch-external_squirrel_squirrel_sqvm_cpp
diff -N supertux/patches/patch-external_squirrel_squirrel_sqvm_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ supertux/patches/patch-external_squirrel_squirrel_sqvm_cpp  11 Sep 2018 
13:03:29 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Unbreak with newer libc++. FreeBSD r447202
+
+Index: external/squirrel/squirrel/sqvm.cpp
+--- external/squirrel/squirrel/sqvm.cpp.orig
++++ external/squirrel/squirrel/sqvm.cpp
+@@ -1,8 +1,8 @@
+ /*
+     see copyright notice in squirrel.h
+ */
+-#include "sqpcheader.h"
+ #include <math.h>
++#include "sqpcheader.h"
+ #include <stdlib.h>
+ #include "sqopcodes.h"
+ #include "sqvm.h"
Index: openttd/patches/patch-src_3rdparty_squirrel_squirrel_sqvm_cpp
===================================================================
RCS file: openttd/patches/patch-src_3rdparty_squirrel_squirrel_sqvm_cpp
diff -N openttd/patches/patch-src_3rdparty_squirrel_squirrel_sqvm_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ openttd/patches/patch-src_3rdparty_squirrel_squirrel_sqvm_cpp       11 Sep 
2018 13:03:29 -0000
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+Unbreak with newer libc++. FreeBSD r447202
+
+Index: src/3rdparty/squirrel/squirrel/sqvm.cpp
+--- src/3rdparty/squirrel/squirrel/sqvm.cpp.orig
++++ src/3rdparty/squirrel/squirrel/sqvm.cpp
+@@ -4,9 +4,9 @@
+ 
+ #include "../../../stdafx.h"
+ 
++#include <math.h>
+ #include <squirrel.h>
+ #include "sqpcheader.h"
+-#include <math.h>
+ #include "sqopcodes.h"
+ #include "sqfuncproto.h"
+ #include "sqvm.h"

Reply via email to