Mesa (master): scons: Fix Haiku binary optimizations

Alexander von Gluck IV kallisti5 at kemper.freedesktop.org
Thu Jun 14 15:08:16 UTC 2012


Module: Mesa
Branch: master
Commit: cb3054c849d8485af53da6a61b31b5c4e4eeb95d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb3054c849d8485af53da6a61b31b5c4e4eeb95d

Author: Alexander von Gluck IV <kallisti5 at unixzen.com>
Date:   Thu Jun 14 08:08:07 2012 -0700

scons: Fix Haiku binary optimizations

Haiku targets the Pentium or higher processor.
To ensure compatibility we can do march 586 and
mtune 686. Mesa will still use sse however if
the cpu supports it (and the stack is properly
aligned). These flags only effect the internal
compiler optimizations.

---

 scons/gallium.py |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index 2fa80db..ee91ca4 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -327,7 +327,8 @@ def generate(env):
                 #'-march=pentium4',
             ]
             if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.2') \
-               and (platform != 'windows' or env['build'] == 'debug' or True):
+               and (platform != 'windows' or env['build'] == 'debug' or True) \
+               and platform != 'haiku':
                 # NOTE: We need to ensure stack is realigned given that we
                 # produce shared objects, and have no control over the stack
                 # alignment policy of the application. Therefore we need
@@ -346,6 +347,14 @@ def generate(env):
             if platform in ['windows', 'darwin']:
                 # Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
                 ccflags += ['-fno-common']
+            if platform in ['haiku']:
+                # Make optimizations compatible with Pentium or higher on Haiku
+                ccflags += [
+                    '-mstackrealign', # ensure stack is aligned
+                    '-march=i586', # Haiku target is Pentium
+                    '-mtune=i686', # use i686 where we can
+                    '-mmmx' # use mmx math where we can
+                ]
         if env['machine'] == 'x86_64':
             ccflags += ['-m64']
             if platform == 'darwin':




More information about the mesa-commit mailing list