Your message dated Tue, 04 Feb 2014 03:49:29 +0000
with message-id <e1wax0r-0004er...@franck.debian.org>
and subject line Bug#736516: fixed in zoneminder 1.26.5-3
has caused the Debian Bug report #736516,
regarding zoneminder: FTBFS: zm_image.cpp:2991:165: error: 
__attribute__((__target__("sse2"))) is invalid
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
736516: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736516
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
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.

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
Index: zoneminder-1.26.5/src/zm_image.cpp
===================================================================
--- zoneminder-1.26.5.orig/src/zm_image.cpp	2014-01-24 13:48:35.000000000 +0100
+++ zoneminder-1.26.5/src/zm_image.cpp	2014-01-24 14:29:36.888257874 +0100
@@ -2988,7 +2988,10 @@
 /************************************************* BLEND FUNCTIONS *************************************************/
 
 
-__attribute__((noinline,__target__("sse2"))) void sse2_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, double blendpercent) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void sse2_fastblend(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count, double blendpercent) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 	static uint32_t divider = 0;
 	static uint32_t clearmask = 0;
@@ -3330,7 +3333,10 @@
 }
 
 /* Grayscale SSE2 */
-__attribute__((noinline,__target__("sse2"))) void sse2_delta8_gray8(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void sse2_delta8_gray8(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 
 	__asm__ __volatile__ (
@@ -3358,7 +3364,10 @@
 }
 
 /* RGB32: RGBA SSE2 */
-__attribute__((noinline,__target__("sse2"))) void sse2_delta8_rgba(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void sse2_delta8_rgba(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
   
 	__asm__ __volatile__ (
@@ -3413,7 +3422,10 @@
 }
 
 /* RGB32: BGRA SSE2 */
-__attribute__((noinline,__target__("sse2"))) void sse2_delta8_bgra(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void sse2_delta8_bgra(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
   
 	__asm__ __volatile__ (
@@ -3468,7 +3480,10 @@
 }
 
 /* RGB32: ARGB SSE2 */
-__attribute__((noinline,__target__("sse2"))) void sse2_delta8_argb(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void sse2_delta8_argb(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
   
 	__asm__ __volatile__ (
@@ -3524,7 +3539,10 @@
 }
 
 /* RGB32: ABGR SSE2 */
-__attribute__((noinline,__target__("sse2"))) void sse2_delta8_abgr(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void sse2_delta8_abgr(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
   
 	__asm__ __volatile__ (
@@ -3580,7 +3598,10 @@
 }
 
 /* RGB32: RGBA SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_delta8_rgba(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_delta8_rgba(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 	
 	__asm__ __volatile__ (
@@ -3632,7 +3653,10 @@
 }
 
 /* RGB32: BGRA SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_delta8_bgra(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_delta8_bgra(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 	
 	__asm__ __volatile__ (
@@ -3684,7 +3708,10 @@
 }
 
 /* RGB32: ARGB SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_delta8_argb(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_delta8_argb(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 	
 	__asm__ __volatile__ (
@@ -3737,7 +3764,10 @@
 }
 
 /* RGB32: ABGR SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_delta8_abgr(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_delta8_abgr(const uint8_t* col1, const uint8_t* col2, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 	
 	__asm__ __volatile__ (
@@ -3989,7 +4019,10 @@
 }
 
 /* RGBA to grayscale SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_convert_rgba_gray8(const uint8_t* col1, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_convert_rgba_gray8(const uint8_t* col1, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 
 	__asm__ __volatile__ (
@@ -4035,7 +4068,10 @@
 }
 
 /* Converts a YUYV image into grayscale by extracting the Y channel */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_convert_yuyv_gray8(const uint8_t* col1, uint8_t* result, unsigned long count) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_convert_yuyv_gray8(const uint8_t* col1, uint8_t* result, unsigned long count) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))  
 	unsigned long i = 0;
   
@@ -4652,7 +4688,10 @@
 }
 
 /* Grayscale SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_deinterlace_4field_gray8(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_deinterlace_4field_gray8(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
 
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))
 	union {
@@ -4785,7 +4824,10 @@
 }
 
 /* RGBA SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_deinterlace_4field_rgba(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_deinterlace_4field_rgba(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))
 	__attribute__((aligned(16))) static const uint8_t movemask2[16] = {1,1,1,1,1,0,0,2,9,9,9,9,9,8,8,10};
 
@@ -4965,7 +5007,10 @@
 }
 
 /* BGRA SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_deinterlace_4field_bgra(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_deinterlace_4field_bgra(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))
 	__attribute__((aligned(16))) static const uint8_t movemask2[16] = {1,1,1,1,1,2,2,0,9,9,9,9,9,10,10,8};
 
@@ -5145,7 +5190,10 @@
 }
 
 /* ARGB SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_deinterlace_4field_argb(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_deinterlace_4field_argb(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))
 	__attribute__((aligned(16))) static const uint8_t movemask2[16] = {2,2,2,2,2,1,1,3,10,10,10,10,10,9,9,11};
 
@@ -5325,7 +5373,10 @@
 }
 
 /* ABGR SSSE3 */
-__attribute__((noinline,__target__("ssse3"))) void ssse3_deinterlace_4field_abgr(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("ssse3")))
+#endif
+void ssse3_deinterlace_4field_abgr(uint8_t* col1, uint8_t* col2, unsigned int threshold, unsigned int width, unsigned int height) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))
 	__attribute__((aligned(16))) static const uint8_t movemask2[16] = {2,2,2,2,2,3,3,1,10,10,10,10,10,11,11,9};
 
Index: zoneminder-1.26.5/src/zm_utils.cpp
===================================================================
--- zoneminder-1.26.5.orig/src/zm_utils.cpp	2013-12-16 16:42:36.000000000 +0100
+++ zoneminder-1.26.5/src/zm_utils.cpp	2014-01-24 14:40:48.361170257 +0100
@@ -192,7 +192,10 @@
 
 /* SSE2 aligned memory copy. Useful for big copying of aligned memory like image buffers in ZM */
 /* For platforms without SSE2 we will use standard x86 asm memcpy or glibc's memcpy() */
-__attribute__((noinline,__target__("sse2"))) void* sse2_aligned_memcpy(void* dest, const void* src, size_t bytes) {
+#if defined(__i386__) || defined(__x86_64__)
+__attribute__((noinline,__target__("sse2")))
+#endif
+void* sse2_aligned_memcpy(void* dest, const void* src, size_t bytes) {
 #if ((defined(__i386__) || defined(__x86_64__) || defined(ZM_KEEP_SSE)) && !defined(ZM_STRIP_SSE))
 	if(bytes > 128) {
 		unsigned int remainder = bytes % 128;

--- End Message ---
--- Begin Message ---
Source: zoneminder
Source-Version: 1.26.5-3

We believe that the bug you reported is fixed in the latest version of
zoneminder, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 736...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Peter Howard <p...@northern-ridge.com.au> (supplier of updated zoneminder 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Tue, 4 Feb 2014 02:02:10 +1000
Source: zoneminder
Binary: zoneminder
Architecture: amd64 source
Version: 1.26.5-3
Distribution: unstable
Urgency: low
Maintainer: Peter Howard <p...@northern-ridge.com.au>
Changed-By: Peter Howard <p...@northern-ridge.com.au>
Closes: 736516
Description: 
 zoneminder - Linux video camera security and surveillance solution
Changes: 
 zoneminder (1.26.5-3) unstable; urgency=low
 .
   * Previous release still didn't build on PPC - this has been corrected.
     (Closes: #736516)
Checksums-Sha1: 
 94658319d12a1f1772f499d15b7a51fd87d91fc0 2205 zoneminder_1.26.5-3.dsc
 00926282a21e25125469ac5d5e38f5a1f921530b 14560 
zoneminder_1.26.5-3.debian.tar.xz
 ada3f487ec67193042420d3ace7a66ccc5250708 1235150 zoneminder_1.26.5-3_amd64.deb
Checksums-Sha256: 
 393736f980b506e0222e94556556dbe7599f22382f36abe6952cfd9a51e8eb27 2205 
zoneminder_1.26.5-3.dsc
 c38aa8fe73979d01e9f570566e3f09582ff19b4160135a88a2720ef484bc91b4 14560 
zoneminder_1.26.5-3.debian.tar.xz
 21e073090debd5d57cd7773e04b98c5c097dc0b34d7dbdc9e864e01d74e3d591 1235150 
zoneminder_1.26.5-3_amd64.deb
Files: 
 bb6f9a4145048925a8d8278387ca41ef 2205 net optional zoneminder_1.26.5-3.dsc
 462dbba5a28823297dafa2b4cb69c5c4 14560 net optional 
zoneminder_1.26.5-3.debian.tar.xz
 22ded064b9b01fc809272ea74f883043 1235150 net optional 
zoneminder_1.26.5-3_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)

iQIcBAEBCAAGBQJS8GBtAAoJEP3WO69YilU/HiMP/1QdyCwLN54Y1U3IEC1819lO
Ygzy4DQB9WXTZm8vV/PdU/Qw4xgnqoBQ5wmePsKYIIZw82qWfGfyCMw1ped/uaMn
qQie3s58LJJRwtpys4BVOy7sVvBTh/DACBr1kocQBQ9IGe6K92rX/4bPoC+lgtLZ
/Ux1vfuBAVn16mpqgiDhL6LDfnAhH0Ii0rjU2QQHvEq0Qs0LovjG1mKruD/Y9Y9s
XCc2s6yHG5YB+VbrB/1BbQz0d2cvvARm0hCL73rkqXwPDYHf/K1DORaEQwkRoHl+
ATHOTaCIwXJG5lS699bHdOuLI64HH1b2HmUlh6WklkNZ9Laqd4aIb/7+xvpbBAfn
+L39cS1Neig6urw3Qqgn3RdqDmbWtGBIEvatcFeIfFRStCVJIr8kyflW+sC8I76b
8dPWspTjBHc0zoXKVzCVCbeJ8YE137wB6XMf7Igm+eAE8GLtYUF3aDpn05yWlCVm
m6LNGfk52YJzv9XtKM9epWF3s1B4OIL25/m1mzIqBg4c47XavrEG52f0tZ+zxo4x
/2CVu1S9KZyEwUWa9if79/3Q5ol1gv8ZyYZewWCpeKW/DsV7W6goUm57vJcjYJJ1
tZJ0ob6KvG47mjlyKUNGfHPEkFOlzGDP64nnrVKcUSdFxPAIxAqj1mLQl4ZsbWfn
+05qHGU+aG6yj8hL1qNP
=fqSg
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to