On Fri, 2014-01-24 at 14:57 +0100, Roland Stigge wrote:
> Package: zoneminder
> Version: 1.26.5-2
> Severity: serious
> Tags: patch
> 
> Hi,
> 
> zoneminder FTBFS on powerpc, powerpcspe and ppc64 like this:
> 
> ...
> powerpc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I..  -I/usr/include -I/usr/include 
> -D__STDC_CONSTANT_MACROS -Wall -finline-functions -fomit-frame-pointer 
> -I/usr/include -D__STDC_CONSTANT_MACROS -D_FORTIFY_SOURCE=2 
> -D__STDC_CONSTANT_MACROS -D__STDC_CONSTANT_MACROS -g -O2 -fstack-protector 
> --param=ssp-buffer-size=4 -Wformat -Werror=format-security -DZM_FFMPEG_CVS 
> -DHAVE_LIBCRYPTO -MT zm_image.o -MD -MP -MF .deps/zm_image.Tpo -c -o 
> zm_image.o zm_image.cpp
> zm_image.cpp: In member function 'bool Image::ReadRaw(const char*)':
> zm_image.cpp:597:26: warning: comparison between signed and unsigned integer 
> expressions [-Wsign-compare]
>   if ( statbuf.st_size != size )
>                           ^
> zm_image.cpp: At global scope:
> zm_image.cpp:2991:165: error: __attribute__((__target__("sse2"))) is invalid
>  __attribute__((noinline,__target__("sse2"))) void sse2_fastblend(const 
> uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, 
> double blendpercent) {
>                                                                               
>                                                                               
>          ^
> zm_image.cpp:3333:147: error: __attribute__((__target__("sse2"))) is invalid
>  __attribute__((noinline,__target__("sse2"))) void sse2_delta8_gray8(const 
> uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
>                                                                               
>                                                                      ^
> ...
> 
> There is already a patch to prevent *SSE* specific stuff on non-Intel 
> hardware.
> But there are still some unconditional
> 
> __attribute__((__target__("sse2")))
> 
> Not sure why it only affects powerpc systems.
> 

Looks like other archs that don't have sse2 (e.g. armel) don't actually
care about/check the __target__ attribute during compilation and only
barf when they hit x86-specific assembly.  Whereas the ppc compilation
really does check.

> Attaching a patch that fixes it.
> 
> Roland
> 
> 
> -- System Information:
> Debian Release: 7.0
>   APT prefers unreleased
>   APT policy: (500, 'unreleased'), (500, 'unstable')
> Architecture: powerpcspe (ppc)
> 
> Kernel: Linux 3.9.0-dirty (SMP w/2 CPU cores)
> Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: 
> LC_ALL set to en_GB.UTF-8)
> Shell: /bin/sh linked to /bin/dash

-- 
Peter Howard <p...@northern-ridge.com.au>

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to