Arrgh,
Just tried Version 2.63a-1 .deb and it _still_ fails with SIGILL.

The blender bugzilla/wiki[1][2][3] mentions that their binary build is done on a virtual machine and build flags get set automatically...

Obviously this will not work for debianized builds, as (sub)architectures vary, but build should be to match lowest common subset.

I' ve appended a patch that modifies one of the build scripts, to disable SSE/SSE2 detection. I do not know for sure if it works, as I do not have the appropriate hardware, but if you apply it and it gets build, it should remove the '-msse' '-msse2' and '-D__SSE__' '-D__SSE2__' args to the compiler... This would be visible in the buildd logs...

Thank you.
[1]http://projects.blender.org/tracker/?group_id=9&atid=498&func=detail&aid=23257
[2]http://projects.blender.org/tracker/?group_id=9&atid=498&func=detail&aid=27167
[3]http://wiki.blender.org/index.php/User:Nazg-gul/LinuxBuildbotEnvironment

Description: Removes SSE and SSE2 support
 This makes sure it builds compatible binaries also on 
 machines which have sse/sse2. Fixes the SIGILL bug.
 .

--- blender-2.63a.orig/build_files/cmake/macros.cmake
+++ blender-2.63a/build_files/cmake/macros.cmake
@@ -359,33 +359,9 @@ macro(TEST_SSE_SUPPORT
 
 	set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}")
 
-	if(NOT DEFINED SUPPORT_SSE_BUILD)
-		# result cached
-		check_c_source_runs("
-			#include <xmmintrin.h>
-			int main(void) { __m128 v = _mm_setzero_ps(); return 0; }"
-		SUPPORT_SSE_BUILD)
-
-		if(SUPPORT_SSE_BUILD)
-			message(STATUS "SSE Support: detected.")
-		else()
-			message(STATUS "SSE Support: missing.")
-		endif()
-	endif()
+	message(STATUS "SSE Support: unused.")
 
-	if(NOT DEFINED SUPPORT_SSE2_BUILD)
-		# result cached
-		check_c_source_runs("
-			#include <emmintrin.h>
-			int main(void) { __m128d v = _mm_setzero_pd(); return 0; }"
-		SUPPORT_SSE2_BUILD)
-
-		if(SUPPORT_SSE2_BUILD)
-			message(STATUS "SSE2 Support: detected.")
-		else()
-			message(STATUS "SSE2 Support: missing.")
-		endif()
-	endif()
+	message(STATUS "SSE2 Support: unused.")
 
 	unset(CMAKE_REQUIRED_FLAGS)
 endmacro()

Reply via email to