[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#757344: wheezy-pu: package blender/2.63a-1



Package: release.debian.org
Severity: normal
Tags: wheezy
User: release.debian.org@packages.debian.org
Usertags: pu

Dear Release Team,

I'd like to upload a new version of Blender to stable/wheezy.

Blender package in wheezy is 2.63a-1 at the moment and doesn't include a
patch that would avoid an "illegal hardware instruction" failure related
to SSE2 extensions present in newer CPUs, as reported in #599680.
This way, however, every user using a non-SSE2 CPU (e.g., AMD Athlon)
won't be able to run Blender in their wheezy boxes.

That same patch has been applied on packages >= 2.66-1 and finally it
has been dropped in latest upstream Blender release 2.71 because there
was found a better (and more elegant) solution to the problem.

I already prepared an update on wheezy package with that patch applied
and it was tested to work fine.

Attached, you'll find this famous patch that should fix the issue.

Thanks for considering.


-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.14-2-amd64 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
Matteo F. Vescovi | Debian Maintainer
GnuPG KeyID: 4096R/0x8062398983B2CF7A
From: Johann Klammer <klammerj@a1.net>
Date: Wed, 13 Feb 2013 09:04:08 +0100
Subject: fix_illegal_hardware_instruction_due_to_SSE2

This makes sure it builds compatible binaries also on
machines which have sse/sse2. Fixes the SIGILL bug.
Checks for DEB_HOST_ARCH_CPU!=i386 before tests are attempted.
Will try to use SSE/SSE2 on all other architectures.
Generated Code will still need MMX support to run.

Signed-off-by: Matteo F. Vescovi <mfvescovi@gmail.com>
---
 build_files/cmake/macros.cmake | 49 +++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 22 deletions(-)

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index e4ac326..b172c81 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -446,34 +446,39 @@ 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.")
+	if(NOT ( $ENV{DEB_HOST_ARCH_CPU} STREQUAL "i386" ) )
+
+		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()
-	endif()
 
-	if(NOT DEFINED SUPPORT_SSE2_BUILD)
-		# result cached
-		check_c_source_runs("
+		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)
+				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.")
+			if(SUPPORT_SSE2_BUILD)
+				message(STATUS "SSE2 Support: detected.")
+			else()
+				message(STATUS "SSE2 Support: missing.")
+			endif()
 		endif()
+	else()
+		message(STATUS "SSE Support: missing.")
+		message(STATUS "SSE2 Support: missing.")
 	endif()
-
 	unset(CMAKE_REQUIRED_FLAGS)
 endmacro()
 

Attachment: signature.asc
Description: Digital signature


Reply to: