summaryrefslogtreecommitdiff
path: root/solenv/gbuild/platform/WNT_INTEL_GCC.mk
diff options
context:
space:
mode:
authorFridrich Štrba <fridrich.strba@bluewin.ch>2013-06-10 17:28:13 +0200
committerFridrich Štrba <fridrich.strba@bluewin.ch>2013-06-10 17:28:55 +0200
commit8df088781c53221498e762f570d21948b7de2650 (patch)
tree633593a5eca7ca1ea9aa8e89a87b8cccc7ce5a88 /solenv/gbuild/platform/WNT_INTEL_GCC.mk
parentfdd6008def896b5f1f7448553bd2985e6252ed60 (diff)
Unbreak back MinGW64 build
Change-Id: I68410bc1a8b77877b07f60e6ace0f54c255de95f
Diffstat (limited to 'solenv/gbuild/platform/WNT_INTEL_GCC.mk')
-rw-r--r--solenv/gbuild/platform/WNT_INTEL_GCC.mk15
1 files changed, 15 insertions, 0 deletions
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
index 7fec33ccff6b..49b0103b1562 100644
--- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
@@ -25,6 +25,21 @@ gb_TMPDIR:=$(if $(TMPDIR),$(TMPDIR),/tmp)
include $(GBUILDDIR)/platform/com_GCC_defs.mk
include $(GBUILDDIR)/platform/windows.mk
+# This has to do something with calling conventions, which are different
+# for x86 and x64. Don't put it in the common part since it is breaking
+# and conde that uses boost::bind
+gb_CCVER := $(shell $(gb_CC) -dumpversion | $(gb_AWK) -F. -- \
+ '{ print $$1*10000+$$2*100+$$3 }')
+gb_GccLess470 := $(shell expr $(gb_CCVER) \< 40700)
+
+# Until GCC 4.6, MinGW used __cdecl by default, and BOOST_MEM_FN_ENABLE_CDECL
+# would result in ambiguous calls to overloaded boost::bind; since GCC 4.7,
+# MinGW uses __thiscall by default, so now needs BOOST_MEM_FN_ENABLE_CDECL for
+# uses of boost::bind with functions annotated with SAL_CALL:
+ifeq ($(gb_GccLess470),0)
+gb_COMPILERDEFS += -DBOOST_MEM_FN_ENABLE_CDECL
+endif
+
include $(GBUILDDIR)/platform/mingw.mk
include $(GBUILDDIR)/platform/com_GCC_class.mk