summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorplanetmaker <planetmaker@openttd.org>2010-11-11 22:37:45 +0000
committerplanetmaker <planetmaker@openttd.org>2010-11-11 22:37:45 +0000
commitb31543aa9aa153779f1aab89e09bf779efd30a2b (patch)
tree690b5ca74c5d74bd40d63869587c6795ad870aee
parent13685c0210b61fb87a8a23b80be09de737dd0499 (diff)
downloadopenttd-b31543aa9aa153779f1aab89e09bf779efd30a2b.tar.xz
(svn r21149) -Fix [FS#4210]: [OSX] Unify compiler flags with other OS and work around a compiler bug in gcc-4.0.1 which breaks graphics display in x86_64 binaries (Rubidium)
-rw-r--r--config.lib21
1 files changed, 11 insertions, 10 deletions
diff --git a/config.lib b/config.lib
index 1ea1f6dc8..29bf9c925 100644
--- a/config.lib
+++ b/config.lib
@@ -1280,17 +1280,12 @@ make_cflags_and_ldflags() {
if [ "$enable_debug" = "0" ]; then
# No debug, add default stuff
OBJS_SUBDIR="release"
- if [ "$os" = "OSX" ]; then
- # these compilerflags makes the app run as fast as possible without making the app unstable. It works on G3 or newer
- CFLAGS="-O3 -funroll-loops -fsched-interblock -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 -falign-loops-max-skip=15 -mdynamic-no-pic $CFLAGS"
- else
- if [ "$os" = "MORPHOS" ]; then
- CFLAGS="-I/gg/os-include -noixemul -fstrict-aliasing -fexpensive-optimizations -mcpu=604 -fno-inline -mstring -mmultiple $CFLAGS"
- LDFLAGS="$LDFLAGS -noixemul"
- fi
-
- CFLAGS="-O2 -fomit-frame-pointer $CFLAGS"
+ if [ "$os" = "MORPHOS" ]; then
+ CFLAGS="-I/gg/os-include -noixemul -fstrict-aliasing -fexpensive-optimizations -mcpu=604 -fno-inline -mstring -mmultiple $CFLAGS"
+ LDFLAGS="$LDFLAGS -noixemul"
fi
+
+ CFLAGS="-O2 -fomit-frame-pointer $CFLAGS"
else
OBJS_SUBDIR="debug"
@@ -1317,6 +1312,12 @@ make_cflags_and_ldflags() {
fi
fi
+ if [ "$os" = "OSX" ] && [ $cc_version -eq 40 ]; then
+ # Apple's GCC 4.0 has a compiler bug for x86_64 with (higher) optimization,
+ # wrongly optimizing ^= in loops. This disables the failing optimisation.
+ CFLAGS="$CFLAGS -fno-expensive-optimizations"
+ fi
+
if [ "$enable_profiling" != "0" ]; then
CFLAGS="$CFLAGS -p"
LDFLAGS="$LDFLAGS -pg"