Your message dated Sun, 25 Mar 2018 18:52:04 +0000
with message-id <e1f0ako-00048w...@fasolo.debian.org>
and subject line Bug#893442: fixed in lynkeos.app 2.10+dfsg1-3
has caused the Debian Bug report #893442,
regarding lynkeos.app: FTBFS on ppc64el: AltiVec argument passed to 
unprototyped function
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.)


-- 
893442: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893442
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: lynkeos.app
Version: 2.10+dfsg1-2
Severity: serious
Tags: patch
User: debian-powe...@lists.debian.org
Usertags: ppc64el

I would appreciate if someone knowledgeable from -powerpc confirms
that the attached patch is correct.  The build failure is:

gcc /<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m 
-c \
      -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -I. -I.. 
-I/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep.. 
-I/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources 
-I/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../ThreadConnectionSources 
-I/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../ThirdPartySources/SMDoubleSlider
 -DNO_FRAMEWORK_CHECK=1 -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 
-DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions 
-fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -pthread -fPIC -Wall -DGSWARN 
-DGSDIAGNOSE -Wno-import -g -O2 -g -O2 
-fdebug-prefix-map=/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1=. 
-fstack-protector-strong -Wformat -Werror=format-security -fgnu-runtime 
-Wno-unknown-pragmas -Wno-cpp -fconstant-string-class=NSConstantString -I. 
-I/usr/local/include/GNUstep -I/usr/include/GNUstep \
       -o obj/Lynkeos.obj/MyDeconvolution.m.o
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m: In 
function 'vector_Process_One_line':
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:72:44:
 warning: excess elements in vector initializer
                                            0x04050607, 0x04050607 };
                                            ^~~~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:72:44:
 note: (near initialization for 'Vperma')
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:72:56:
 warning: excess elements in vector initializer
                                            0x04050607, 0x04050607 };
                                                        ^~~~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:72:56:
 note: (near initialization for 'Vperma')
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:74:44:
 warning: excess elements in vector initializer
                                            0x0C0D0E0F, 0x0C0D0E0F };
                                            ^~~~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:74:44:
 note: (near initialization for 'Vpermb')
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:74:56:
 warning: excess elements in vector initializer
                                            0x0C0D0E0F, 0x0C0D0E0F };
                                                        ^~~~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:74:56:
 note: (near initialization for 'Vpermb')
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:88:13:
 warning: implicit declaration of function 'vec_madd' 
[-Wimplicit-function-declaration]
       Vdx = vec_madd( vec_ld(0,expXptr), Vdy, Vzero );
             ^~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:88:23:
 warning: implicit declaration of function 'vec_ld'; did you mean 'vector'? 
[-Wimplicit-function-declaration]
       Vdx = vec_madd( vec_ld(0,expXptr), Vdy, Vzero );
                       ^~~~~~
                       vector
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:88:7: 
error: AltiVec argument passed to unprototyped function
       Vdx = vec_madd( vec_ld(0,expXptr), Vdy, Vzero );
       ^~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:89:41:
 warning: implicit declaration of function 'vec_cmplt' 
[-Wimplicit-function-declaration]
       const __vector __bool int Vmask = vec_cmplt(Vdx,Vthr);
                                         ^~~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:89:7: 
error: AltiVec argument passed to unprototyped function
       const __vector __bool int Vmask = vec_cmplt(Vdx,Vthr);
       ^~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:90:27:
 warning: implicit declaration of function 'vec_and'; did you mean 'vscanf'? 
[-Wimplicit-function-declaration]
       __vector REAL Vge = vec_and(Vdx,Vmask);
                           ^~~~~~~
                           vscanf
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:90:7: 
error: AltiVec argument passed to unprototyped function
       __vector REAL Vge = vec_and(Vdx,Vmask);
       ^~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:91:27:
 warning: implicit declaration of function 'vec_andc'; did you mean 'vscanf'? 
[-Wimplicit-function-declaration]
       __vector REAL Vlt = vec_andc(Vthr,Vmask);
                           ^~~~~~~~
                           vscanf
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:91:7: 
error: AltiVec argument passed to unprototyped function
       __vector REAL Vlt = vec_andc(Vthr,Vmask);
       ^~~~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:92:13:
 warning: implicit declaration of function 'vec_or'; did you mean 'vector'? 
[-Wimplicit-function-declaration]
       Vdx = vec_or(Vge,Vlt);
             ^~~~~~
             vector
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:92:7: 
error: AltiVec argument passed to unprototyped function
       Vdx = vec_or(Vge,Vlt);
       ^~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:93:13:
 warning: implicit declaration of function 'vec_perm'; did you mean 'vector'? 
[-Wimplicit-function-declaration]
       Vda = vec_perm(Vdx,Vzero,Vperma);
             ^~~~~~~~
             vector
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:93:7: 
error: AltiVec argument passed to unprototyped function
       Vda = vec_perm(Vdx,Vzero,Vperma);
       ^~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:98:10:
 error: AltiVec argument passed to unprototyped function
          Vdb = vec_perm(Vdx,Vzero,Vpermb);
          ^~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:101:34:
 error: incompatible types when initializing type '__vector float {aka 
__vector(4) float}' using type 'int'
             __vector REAL Vbuf = vec_ld(c,(REAL*)linePtr);
                                  ^~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:102:13:
 error: AltiVec argument passed to unprototyped function
             Vbuf = vec_madd( Vbuf, Vda, Vzero);
             ^~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:103:13:
 warning: implicit declaration of function 'vec_st'; did you mean 'qecvt'? 
[-Wimplicit-function-declaration]
             vec_st( Vbuf,c, (REAL*)linePtr );
             ^~~~~~
             qecvt
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:103:13:
 error: AltiVec argument passed to unprototyped function
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:104:18:
 error: incompatible types when assigning to type '__vector float {aka 
__vector(4) float}' from type 'int'
             Vbuf = vec_ld(c+2*sizeof(COMPLEX),(REAL*)linePtr);
                  ^
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:105:13:
 error: AltiVec argument passed to unprototyped function
             Vbuf = vec_madd( Vbuf, Vdb, Vzero);
             ^~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:106:13:
 error: AltiVec argument passed to unprototyped function
             vec_st( Vbuf,c+2*sizeof(COMPLEX), (REAL*)linePtr );
             ^~~~~~
/<<BUILDDIR>>/lynkeos.app-2.10+dfsg1/GNUstep/../Sources/MyDeconvolution.m:112:13:
 error: AltiVec argument passed to unprototyped function
             vec_st( vec_madd( vec_ld(c,(REAL*)linePtr), Vda, Vzero),
             ^~~~~~

Link to the build log:
https://buildd.debian.org/status/fetch.php?pkg=lynkeos.app&arch=ppc64el&ver=2.10%2Bdfsg1-2&stamp=1521251706&raw=0

Quick link to the source code:
https://sources.debian.org/src/lynkeos.app/2.10+dfsg1-2/Sources/MyDeconvolution.m/#L68

Most of these warnings/errors should be fixed by including
<altivec.h>.  However, I think there are at least two other issues.

According to the OpenPOWER 64-Bit ELF V2 ABI Specification, vector
unsigned long is a vector of 2 unsigned doublewords so the
Vperma/Vpermb initializers seem incorrect; the compiler rightfully
complains.

According to the GCC manual, the third argument of vec_perm is always a
vector unsigned char, so Vperma/Vpermb must be converted to that type.
--- lynkeos.app.orig/Sources/MyDeconvolution.m
+++ lynkeos.app/Sources/MyDeconvolution.m
@@ -20,6 +20,9 @@
 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 #include <objc/runtime.h>
+#ifdef __ALTIVEC__
+#include <altivec.h>
+#endif
 
 #include "MyGeneralPrefs.h"
 #include "LynkeosFourierBuffer.h"
@@ -68,10 +71,16 @@
 #ifdef __ALTIVEC__
    // Altivec code
    static const __vector REAL Vzero = { -0.0, -0.0, -0.0, -0.0 };
-   static const __vector u_long Vperma = { 0x00010203, 0x00010203,
-                                           0x04050607, 0x04050607 };
-   static const __vector u_long Vpermb = { 0x08090A0B, 0x08090A0B,
-                                           0x0C0D0E0F, 0x0C0D0E0F };
+   static const __vector REAL Vperma = { (float)0x00010203, (float)0x00010203,
+                                         (float)0x04050607, (float)0x04050607 
};
+   static const __vector REAL Vpermb = { (float)0x08090A0B, (float)0x08090A0B,
+                                         (float)0x0C0D0E0F, (float)0x0C0D0E0F 
};
+   __vector unsigned char Va = vec_pack(vec_pack(vec_ctu(Vperma, 0),
+                                                 vec_splat_u32(0)),
+                                        vec_splat_u16(0));
+   __vector unsigned char Vb = vec_pack(vec_pack(vec_ctu(Vpermb, 0),
+                                                 vec_splat_u32(0)),
+                                        vec_splat_u16(0));
    const u_long byteLineWidth = spectrum->_halfw*sizeof(COMPLEX);
    const u_long bytePlaneSize = spectrum->_h*spectrum->_padw*sizeof(REAL); // 
padw is for REALs
    COMPLEX * const linePtr = &colorComplexValue(spectrum,0,y,0);
@@ -90,12 +99,12 @@
       __vector REAL Vge = vec_and(Vdx,Vmask);
       __vector REAL Vlt = vec_andc(Vthr,Vmask);
       Vdx = vec_or(Vge,Vlt);
-      Vda = vec_perm(Vdx,Vzero,Vperma);
+      Vda = vec_perm(Vdx,Vzero,Va);
 
       // Apply it on each plane
       if ( x < byteLineWidth-2*sizeof(COMPLEX) )
       {
-         Vdb = vec_perm(Vdx,Vzero,Vpermb);
+         Vdb = vec_perm(Vdx,Vzero,Vb);
          for( c = x; c < x+nPlanes*bytePlaneSize; c += bytePlaneSize )
          {
             __vector REAL Vbuf = vec_ld(c,(REAL*)linePtr);
--- lynkeos.app.orig/Sources/MyUnsharpMask.m
+++ lynkeos.app/Sources/MyUnsharpMask.m
@@ -20,6 +20,9 @@
 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 #include <objc/runtime.h>
+#ifdef __ALTIVEC__
+#include <altivec.h>
+#endif
 
 #include "MyGeneralPrefs.h"
 #include "LynkeosFourierBuffer.h"

--- End Message ---
--- Begin Message ---
Source: lynkeos.app
Source-Version: 2.10+dfsg1-3

We believe that the bug you reported is fixed in the latest version of
lynkeos.app, 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 893...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Yavor Doganov <ya...@gnu.org> (supplier of updated lynkeos.app 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: SHA512

Format: 1.8
Date: Sun, 25 Mar 2018 15:26:01 +0300
Source: lynkeos.app
Binary: lynkeos.app lynkeos.app-common
Architecture: source
Version: 2.10+dfsg1-3
Distribution: unstable
Urgency: medium
Maintainer: Debian GNUstep maintainers 
<pkg-gnustep-maintain...@lists.alioth.debian.org>
Changed-By: Yavor Doganov <ya...@gnu.org>
Description:
 lynkeos.app - GNUstep app for processing planetary astronomical images
 lynkeos.app-common - GNUstep app for processing astronomical images (common 
files)
Closes: 893442
Changes:
 lynkeos.app (2.10+dfsg1-3) unstable; urgency=medium
 .
   * debian/patches/ftbfs-ppc64el.patch: New, fix AltiVec-related FTBFS on
     ppc64el (Closes: #893442).  Many thanks to Frédéric Bonnard.
   * debian/patches/series: Update.
   * debian/copyright: Add Frédéric.
Checksums-Sha1:
 20ca8ae0b392ec4766b62a1ed08788dedd729e72 2242 lynkeos.app_2.10+dfsg1-3.dsc
 fee59b4c4bfdb2109eb9fee1632d8a9293dcbaea 18384 
lynkeos.app_2.10+dfsg1-3.debian.tar.xz
 6b1243396312f41148fd9af9041fe9db3aef6fc7 5519 
lynkeos.app_2.10+dfsg1-3_source.buildinfo
Checksums-Sha256:
 673e96a7fef64c0ebc3e631d039531a5e9f5de26f3cf707c1758774ed894c2f3 2242 
lynkeos.app_2.10+dfsg1-3.dsc
 e5f6e1e698f8f25aa48eb0d903cd7dcc56a1f737210289abceef38d3766faa32 18384 
lynkeos.app_2.10+dfsg1-3.debian.tar.xz
 257c2f6055c1b1d7a3d6e5a3d456a48a0f626f1bde2da4411b392474b7449185 5519 
lynkeos.app_2.10+dfsg1-3_source.buildinfo
Files:
 3efeb75dee03d0c77381211a36967d11 2242 gnustep optional 
lynkeos.app_2.10+dfsg1-3.dsc
 686eac7b599e28ab48119f78d5bae4bd 18384 gnustep optional 
lynkeos.app_2.10+dfsg1-3.debian.tar.xz
 f5fdbac4ba9aebf7e97b82e10e6d848c 5519 gnustep optional 
lynkeos.app_2.10+dfsg1-3_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEkjZVexcMh/iCHArDweDZLphvfH4FAlq37EEACgkQweDZLphv
fH7TaQ/+JlNylOuc1/sqVONNaoqBaTBn+f3eiRoUJ0NdRmDJilADyB3I6pMJF6X5
O9HIAKl3I4yWoRuiD8FohQd9oME2k2S8v9y4+MeGzFGJebJHzFrsd5bLr/C8dukG
vhaVdzfK2+w8vkjRbTe2PWGTntRO46Gup906PRos5IC5ZDxjbXg6AN3e88cw/xWS
SCvNOlb0Ei/yEvhkstT9HrmUUGiPbDTZFUR2vDOeKBsj7zpi3ziTumYk9xiDSRZE
73SczpJ9E8IB08gqLP7hY2wTbYLhMP+RqSgQ3d+wETZqa7UrNKABLdnNVxZkNqKR
YO5NPYue6YwUzM41/XKhxBI3TjdTawD0HJHt38YtLXEWzTqLHSDFlkqjJP2f5/HL
QGIa/COgxWAi+/k+8KQ4/eLAaRvvh9GXSCfwc8TA3C7Y9WSNV8Jy041bqTY5OKXk
d/LoEfe2hWDsVYtSncypCPWy8pPmhtFvGiU24yIaHCArHO0DK2T0Msn9q/SdDZ1r
jdXjpENhsY5a34RTM7mlRQ5xByW5D/S6qLO5Z702M1pcwNCUpfVj2GyQ2/SEQg96
U9sr6FE2qMXsJDLy4h4DLLBMtwGymZi2EZhKCR9hW0n1KBBHnbryuu+vOXmRe/B7
1hcIumRyUR2ciHTSsMwHCczBm4FKDFPgs+YOm28pGOCeIfzR0EA=
=ccqx
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to