Bug#766630: supercollider: ftbfs on ppc64el -- error: invalid parameter combination for AltiVec intrinsic

Felipe Sateler fsateler at debian.org
Fri Oct 24 15:13:16 UTC 2014


Hi Konstantinos,

On Fri, Oct 24, 2014 at 12:03 PM, Konstantinos Margaritis
<markos at freevec.org> wrote:
> On Fri, 24 Oct 2014 12:39:18 -0200
> ferseiti at br.ibm.com wrote:
>> > In any case, perhaps the solution is to disable supernova in ppc64el
>> > as well instead of adding custom flags.
>>
>> Simply disabling it for ppc64el did not do the work (completely), but
>> you can test it if you want =)
>
> The problem is that in ppc64el the default compile flags include -mvsx
> -which also implies altivec support, so just disabling supernova
> doesn't work, the compiler will still try to build the altivec stuff.
> Doing a simple :
>
> $ gcc -dM -E - < /dev/null|grep ALTIVEC
> #define __ALTIVEC__ 1
> #define __APPLE_ALTIVEC__ 1
>
> on a ppc64le system will show why explicitly disabling it is needed.
> Evenmore so, even if it worked, much of the code assumes 32-bit
> pointers (eg. a table lookup in server/plugins/OscUGens.cpp:1541, so
> the code would break on ppc64le as it's 64-bit and little-endian.
> A lot of stuff would have to be fixed for that. So, unless/until it's
> fixed and tested for ppc64le, there isn't much one can do apart from
> disabling altivec completely.

OK, that sounds a good enough reason :).

>
>> I think Konstantinos would be able to give you more accurate answers
>> to your questions regarding altivec and simd in general. He knows a
>> lot of that stuff.
>> He is cc'ed (markos).
>
> Thanks, I just like the stuff :)


I had a few questions regarding the patch for enabling altivec on
ppc32, I'll repeat them here:

I'm very ignorant on altivec (or simd in general), but I try to
understand the patch anyway. This patch seems to consist mostly of
s/vector/__vector/. Why is that? I presume the upstream code works on
apple platforms, is that an important difference? The second part is
adding -mabi=altivec and -maltivec, which is unfortunately not
possible, because that would contaminate the rest of the binaries with
altivec code. AFAIK, debian still supports non-altivec machines.
(supernova requires altivec, but for other machines we have scsynth).

Perhaps a more correct patch would alter the logic in
server/supernova/CMakeLists.txt to allow passing the
required flags just to supernova


I'm somewhat wary of adding this patch this close to the freeze...

-- 

Saludos,
Felipe Sateler



More information about the pkg-multimedia-maintainers mailing list