aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Heider2009-03-10 19:32:38 +0000
committerAndre Heider2009-03-10 19:32:38 +0000
commitc72cba069bc7c5b3345b99e25596c60ed5399f72 (patch)
tree7ba8bc12bf393b5130a61ac0ce7b5104bb0684d0
parentd5d7bd73d5c9ae55647f12e7f44b3c2e631ba87f (diff)
downloadscummvm-rg350-c72cba069bc7c5b3345b99e25596c60ed5399f72.tar.gz
scummvm-rg350-c72cba069bc7c5b3345b99e25596c60ed5399f72.tar.bz2
scummvm-rg350-c72cba069bc7c5b3345b99e25596c60ed5399f72.zip
Use pow() instead of powf() when compiling with MinGW32 to work around a libstdc++ cross-compile bug, see #2673362
svn-id: r39309
-rw-r--r--sound/softsynth/mt32/partial.cpp5
-rw-r--r--sound/softsynth/mt32/synth.cpp5
-rw-r--r--sound/softsynth/mt32/tables.cpp5
3 files changed, 12 insertions, 3 deletions
diff --git a/sound/softsynth/mt32/partial.cpp b/sound/softsynth/mt32/partial.cpp
index 2866c7757d..02610798dc 100644
--- a/sound/softsynth/mt32/partial.cpp
+++ b/sound/softsynth/mt32/partial.cpp
@@ -25,11 +25,14 @@
#include "mt32emu.h"
-#if defined(MACOSX) || defined(SOLARIS)
+#if defined(MACOSX) || defined(SOLARIS) || defined(__MINGW32__)
// Older versions of Mac OS X didn't supply a powf function, so using it
// will cause a binary incompatibility when trying to run a binary built
// on a newer OS X release on an olderr one. And Solaris 8 doesn't provide
// powf, floorf, fabsf etc. at all.
+// Cross-compiled MinGW32 toolchains suffer from a cross-compile bug in
+// libstdc++. math/stubs.o should be empty, but it comes with a symbol for
+// powf, resulting in a linker error because of multiple definitions.
// Hence we re-define them here. The only potential drawback is that it
// might be a little bit slower this way.
#define powf pow
diff --git a/sound/softsynth/mt32/synth.cpp b/sound/softsynth/mt32/synth.cpp
index 366da50d01..bedae241b3 100644
--- a/sound/softsynth/mt32/synth.cpp
+++ b/sound/softsynth/mt32/synth.cpp
@@ -25,11 +25,14 @@
#include "mt32emu.h"
-#if defined(MACOSX) || defined(SOLARIS)
+#if defined(MACOSX) || defined(SOLARIS) || defined(__MINGW32__)
// Older versions of Mac OS X didn't supply a powf function, so using it
// will cause a binary incompatibility when trying to run a binary built
// on a newer OS X release on an olderr one. And Solaris 8 doesn't provide
// powf, floorf, fabsf etc. at all.
+// Cross-compiled MinGW32 toolchains suffer from a cross-compile bug in
+// libstdc++. math/stubs.o should be empty, but it comes with a symbol for
+// powf, resulting in a linker error because of multiple definitions.
// Hence we re-define them here. The only potential drawback is that it
// might be a little bit slower this way.
#define powf pow
diff --git a/sound/softsynth/mt32/tables.cpp b/sound/softsynth/mt32/tables.cpp
index 5865ba2950..0ae8e9892a 100644
--- a/sound/softsynth/mt32/tables.cpp
+++ b/sound/softsynth/mt32/tables.cpp
@@ -25,11 +25,14 @@
#include "mt32emu.h"
-#if defined(MACOSX) || defined(SOLARIS)
+#if defined(MACOSX) || defined(SOLARIS) || defined(__MINGW32__)
// Older versions of Mac OS X didn't supply a powf function, so using it
// will cause a binary incompatibility when trying to run a binary built
// on a newer OS X release on an olderr one. And Solaris 8 doesn't provide
// powf, floorf, fabsf etc. at all.
+// Cross-compiled MinGW32 toolchains suffer from a cross-compile bug in
+// libstdc++. math/stubs.o should be empty, but it comes with a symbol for
+// powf, resulting in a linker error because of multiple definitions.
// Hence we re-define them here. The only potential drawback is that it
// might be a little bit slower this way.
#define powf pow