scons: Fix Mac OS X SCons build on 32-bit CPUs.
authorVinson Lee <vlee@vmware.com>
Mon, 19 Jul 2010 18:31:44 +0000 (11:31 -0700)
committerVinson Lee <vlee@vmware.com>
Mon, 19 Jul 2010 18:31:44 +0000 (11:31 -0700)
The Mac OS X SCons build failed on 32-bit CPUs starting with commit
2f6d47a7c8d6e69e5154de44115aab9ba35a41d2 during linking of graw-null.
The build succeeds though on a 64-bit CPU. See FDO bug 29117.

This was the compiler error.
scons: building associated VariantDir targets: build/darwin-x86-debug
  Linking build/darwin-x86-debug/gallium/targets/graw-null/libgraw.dylib ...
Undefined symbols:
  "_lp_swizzled_cbuf", referenced from:
      _lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
      _lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
     (maybe you meant: _lp_swizzled_cbuf$non_lazy_ptr)
  "_lp_dummy_tile", referenced from:
      _lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
      _lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
      _lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_setup.os)
     (maybe you meant: _lp_dummy_tile$non_lazy_ptr)

The patch adds -fno-common to all Mac OS X builds to work around this issue.

scons/gallium.py

index 388f4460ab492035c666da414343743624f2927b..f03716bad8ab4a511191fcf6f275af4fd2e7bf1c 100644 (file)
@@ -282,7 +282,7 @@ def generate(env):
                 ccflags += [
                     '-mmmx', '-msse', '-msse2', # enable SIMD intrinsics
                 ]
-            if platform == 'windows':
+            if platform in ['windows', 'darwin']:
                 # Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
                 ccflags += ['-fno-common']
             if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.2'):