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