Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Verwiebe <info@jensverwiebe.de>2014-04-17 02:25:15 +0400
committerJens Verwiebe <info@jensverwiebe.de>2014-04-17 02:25:25 +0400
commit8a4210074c0d20af7aa1fe8b03839086f3f39078 (patch)
tree93a93f914bc29f218e8ac65824d91c45edcad7ae /extern/bullet2/src
parent415e10a0efa96d76d73dd37ab3bc41c400120c39 (diff)
Bullet: better workaround for failing friction with clang 3.4, remove the obsolete compileflag magic
Diffstat (limited to 'extern/bullet2/src')
-rw-r--r--extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h7
-rw-r--r--extern/bullet2/src/SConscript16
2 files changed, 8 insertions, 15 deletions
diff --git a/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h b/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h
index 27ccefe4169..1a6b1871f7e 100644
--- a/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h
+++ b/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverBody.h
@@ -37,8 +37,13 @@ struct btSimdScalar
{
}
-
+/* workaround for an clang 3.4 issue, friction would fail with forced inlining */
+#if (defined(__APPLE__) && defined(__clang__) && (__clang_major__ == 5) && (__clang_minor__ == 1)) \
+ || (defined(__clang__) && (__clang_major__ == 3) && (__clang_minor__ == 4))
+ inline __attribute__ ((noinline)) btSimdScalar(float fl)
+#else
SIMD_FORCE_INLINE btSimdScalar(float fl)
+#endif
:m_vec128 (_mm_set1_ps(fl))
{
}
diff --git a/extern/bullet2/src/SConscript b/extern/bullet2/src/SConscript
index 6e51d067825..20a87d5d12c 100644
--- a/extern/bullet2/src/SConscript
+++ b/extern/bullet2/src/SConscript
@@ -19,8 +19,7 @@ elif env['OURPLATFORM'] in ('linux', 'freebsd4', 'freebsd5'):
cflags += ['-O2']
elif sys.platform=='darwin':
defs += ' NDEBUG'
- bt_flags = env['CCFLAGS'] + ['-fPIC', '-msse','-msse2', '-msse3', '-mssse3'] # basic -O0 optimization
- bt_opt_flags = bt_flags + ['-O3']
+ cflags += ['-O3','-fPIC']
bullet2_src = env.Glob("LinearMath/*.cpp")
bullet2_src += env.Glob("BulletCollision/BroadphaseCollision/*.cpp")
@@ -38,15 +37,4 @@ bullet2_src += env.Glob("BulletSoftBody/*.cpp")
incs = '. BulletCollision BulletDynamics LinearMath BulletSoftBody'
-if sys.platform=='darwin':
- if env['C_COMPILER_ID'] == 'clang' and env['CCVERSION'] >= '3.4':
- # Due some bugs in bullet, clang 3.4 produces wrong code when optimized > -O0
- # to avoid too much speed penalty when compiling whole bullet lib non-optimized,
- # we build seperate non-optimized/optimized parts and just link together finally
- bullet2_src.remove("BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp")
- bullet2_fix_src = env.Glob("BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp")
- env.BlenderLib ( libname = 'extern_fix_bullet2', sources=bullet2_fix_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], cc_compileflags=bt_flags, cxx_compileflags=bt_flags )
-
- env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], cc_compileflags=bt_opt_flags, cxx_compileflags=bt_opt_flags )
-else:
- env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags )
+env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags )