Re: supercollider FTBFS on ppc64el
Trupti <[email protected]> Thu, 02 Jul 2026 20:24:16 +0530
| Newsgroups | gmane.linux.debian.ports.powerpc,gmane.linux.debian.devel.multimedia |
|---|---|
| Message-ID | <[email protected]> |
--=_f71dca584a6408e50750af5b71cc055f Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed > This is how we handle it in Crypto++ [0]. I would not worry about > __APPLE_ALTIVEC__. __ALTIVEC__ picks up the use case. > > In an implementation file that needs the definitions: > > // could use -maltivec, -mcpu=power7, -mcpu=power8, etc > #if defined(__ALTIVEC__) || defined(_ARCH_PWR7) > # include "ppc_simd.h" > #endif > > And then at the head of ppc_simd.h: [1] > > #if defined(__ALTIVEC__) > # include <altivec.h> > # undef vector > # undef pixel > # undef bool > #endif > > And then in the same ppc_simd.h file: > > #if defined(__ALTIVEC__) || defined(CRYPTOPP_DOXYGEN_PROCESSING) > > /// \brief Vector of 8-bit elements > typedef __vector unsigned char uint8x16_p; > > /// \brief Vector of 16-bit elements > typedef __vector unsigned short uint16x8_p; > > /// \brief Vector of 32-bit elements > typedef __vector unsigned int uint32x4_p; > > #if defined(__VSX__) || defined(_ARCH_PWR8) || > defined(CRYPTOPP_DOXYGEN_PROCESSING) > /// \brief Vector of 64-bit elements > typedef __vector unsigned long long uint64x2_p; > #endif // VSX or ARCH_PWR8 > > #endif // __ALTIVEC__ or Doxygen > > Now use the typedefs like uint8x16_p, uint16x8_p, uint32x4_p, and > uint64x2_p. > > > [0] https://cryptopp.com/ > [1] https://github.com/weidai11/cryptopp/blob/master/ppc_simd.h > > JeffHi Jeff, Thank you for taking the time to review and for the pointer to ppc_simd.h — really helpful reference. One thing I confirmed: vec_altivec.hpp only ever gets included when __ALTIVEC__ is already true (that check happens earlier, in vec.hpp). So adding the same guard inside vec_altivec.hpp doesn't change anything right now — it's already guaranteed true. But as you suggested, and I think that's the correct way to go, I've kept the guard anyway so the header stays safe on its own, in case someone includes it directly in the future without going through vec.hpp first. Thanks for pointing that out. I have updated my patch to gate the #include <altivec.h> and #undef vector/pixel/bool behind #if defined(__ALTIVEC__), instead of relying on __APPLE_ALTIVEC__ reasoning. Rebuilt and tested on my ppc64el machine. Updated patches attached. Will go ahead and create the Salsa Merge Request with this version. Thanks again, Trupti --=_f71dca584a6408e50750af5b71cc055f Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=fix-altivec-vector-keyword.patch Content-Disposition: attachment; filename=fix-altivec-vector-keyword.patch; size=4749 SW5kZXg6IHN1cGVyY29sbGlkZXItc2MzLXBsdWdpbnMtMy4xNC4wK2RzL2V4dGVybmFsX2xpYnJh cmllcy9ub3ZhLXNpbWQvdmVjL3ZlY19hbHRpdmVjLmhwcAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzdXBlcmNv bGxpZGVyLXNjMy1wbHVnaW5zLTMuMTQuMCtkcy5vcmlnL2V4dGVybmFsX2xpYnJhcmllcy9ub3Zh LXNpbWQvdmVjL3ZlY19hbHRpdmVjLmhwcAorKysgc3VwZXJjb2xsaWRlci1zYzMtcGx1Z2lucy0z LjE0LjArZHMvZXh0ZXJuYWxfbGlicmFyaWVzL25vdmEtc2ltZC92ZWMvdmVjX2FsdGl2ZWMuaHBw CkBAIC0yMCw4ICsyMCwxMiBAQAogI2lmbmRlZiBWRUNfQUxUSVZFQ19IUFAKICNkZWZpbmUgVkVD X0FMVElWRUNfSFBQCiAKLSNpbmNsdWRlIDxhbHRpdmVjLmg+Ci0jdW5kZWYgYm9vbAorI2lmIGRl ZmluZWQoX19BTFRJVkVDX18pCisjIGluY2x1ZGUgPGFsdGl2ZWMuaD4KKyMgdW5kZWYgYm9vbAor IyB1bmRlZiB2ZWN0b3IKKyMgdW5kZWYgcGl4ZWwKKyNlbmRpZgogCiAjaW5jbHVkZSAiLi4vZGV0 YWlsL3ZlY19tYXRoLmhwcCIKICNpbmNsdWRlICJ2ZWNfaW50X2FsdGl2ZWMuaHBwIgpAQCAtMzks MTMgKzQzLDEzIEBAIG5hbWVzcGFjZSBub3ZhCiAKIHRlbXBsYXRlIDw+CiBzdHJ1Y3QgdmVjPGZs b2F0PjoKLSAgICB2ZWNfYmFzZTxmbG9hdCwgdmVjdG9yIGZsb2F0LCA0PgorICAgIHZlY19iYXNl PGZsb2F0LCBfX3ZlY3RvciBmbG9hdCwgND4KIHsKLSAgICB0eXBlZGVmIHZlY3RvciBmbG9hdCBp bnRlcm5hbF92ZWN0b3JfdHlwZTsKKyAgICB0eXBlZGVmIF9fdmVjdG9yIGZsb2F0IGludGVybmFs X3ZlY3Rvcl90eXBlOwogICAgIHR5cGVkZWYgZmxvYXQgZmxvYXRfdHlwZTsKIAogcHJpdmF0ZToK LSAgICB0eXBlZGVmIHZlY19iYXNlPGZsb2F0LCB2ZWN0b3IgZmxvYXQsIDQ+IGJhc2U7CisgICAg dHlwZWRlZiB2ZWNfYmFzZTxmbG9hdCwgX192ZWN0b3IgZmxvYXQsIDQ+IGJhc2U7CiAKICAgICBz dGF0aWMgaW50ZXJuYWxfdmVjdG9yX3R5cGUgc2V0X3ZlY3RvcihmbG9hdCBmMCwgZmxvYXQgZjEs IGZsb2F0IGYyLCBmbG9hdCBmMykKICAgICB7CkBAIC0yMzEsNyArMjM1LDcgQEAgcHJpdmF0ZToK ICAgICAgICAgLy8gYWRhcHRlZCBmcm9tIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2hhcmR3 YXJlZHJpdmVycy92ZS9hbGdvcml0aG1zLmh0bWwKIAogICAgICAgICAvLyBHZXQgdGhlIHJlY2lw cm9jYWwgZXN0aW1hdGUKLSAgICAgICAgdmVjdG9yIGZsb2F0IGVzdGltYXRlID0gdmVjX3JlKGFy Zyk7CisgICAgICAgIF9fdmVjdG9yIGZsb2F0IGVzdGltYXRlID0gdmVjX3JlKGFyZyk7CiAKICAg ICAgICAgLy8gT25lIHJvdW5kIG9mIE5ld3Rvbi1SYXBoc29uIHJlZmluZW1lbnQKICAgICAgICAg cmV0dXJuIHZlY19tYWRkKHZlY19ubXN1Yihlc3RpbWF0ZSwgYXJnLCBnZW5fb25lKCkpLCBlc3Rp bWF0ZSwgZXN0aW1hdGUpOwpAQCAtMjg0LDcgKzI4OCw3IEBAIHB1YmxpYzoKIAogICAgIGZyaWVu ZCB2ZWMgZmFzdF9yZWNpcHJvY2FsKGNvbnN0IHZlYyAmIGFyZykKICAgICB7Ci0gICAgICAgIHZl Y3RvciBmbG9hdCBlc3RpbWF0ZSA9IHZlY19yZShhcmcpOworICAgICAgICBfX3ZlY3RvciBmbG9h dCBlc3RpbWF0ZSA9IHZlY19yZShhcmcuZGF0YV8pOwogICAgICAgICByZXR1cm4gZXN0aW1hdGU7 CiAgICAgfQogCkBAIC0zMTYsOCArMzIwLDggQEAgcHVibGljOgogICAgIHZlYyBvcGVyYXRvciBv cCh2ZWMgY29uc3QgJiByaHMpIGNvbnN0IFwKICAgICB7IFwKICAgICAgICAgY29uc3QgaW50ZXJu YWxfdmVjdG9yX3R5cGUgb25lID0gZ2VuX29uZSgpOyBcCi0gICAgICAgIHZlY3RvciB1bnNpZ25l ZCBpbnQgbWFzayA9ICh2ZWN0b3IgdW5zaWduZWQgaW50KW9wY29kZShkYXRhXywgcmhzLmRhdGFf KTsgXAotICAgICAgICByZXR1cm4gKGludGVybmFsX3ZlY3Rvcl90eXBlKXZlY19hbmQobWFzaywg KHZlY3RvciB1bnNpZ25lZCBpbnQpb25lKTsgXAorICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBp bnQgbWFzayA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpb3Bjb2RlKGRhdGFfLCByaHMuZGF0YV8p OyBcCisgICAgICAgIHJldHVybiAoaW50ZXJuYWxfdmVjdG9yX3R5cGUpdmVjX2FuZChtYXNrLCAo X192ZWN0b3IgdW5zaWduZWQgaW50KW9uZSk7IFwKICAgICB9CiAKICNkZWZpbmUgdmVjX2NtcGxl XyhhLCBiKSB2ZWNfY21wZ2UoYiwgYSkKQEAgLTM2Nyw3ICszNzEsNyBAQCBwdWJsaWM6CiAKICAg ICBmcmllbmQgaW5saW5lIHZlYyBzZWxlY3QodmVjIGxocywgdmVjIHJocywgdmVjIGJpdG1hc2sp CiAgICAgewotICAgICAgICByZXR1cm4gdmVjX3NlbChsaHMuZGF0YV8sIHJocy5kYXRhXywgKHZl Y3RvciB1bnNpZ25lZCBpbnQpYml0bWFzay5kYXRhXyk7CisgICAgICAgIHJldHVybiB2ZWNfc2Vs KGxocy5kYXRhXywgcmhzLmRhdGFfLCAoX192ZWN0b3IgdW5zaWduZWQgaW50KWJpdG1hc2suZGF0 YV8pOwogICAgIH0KIAogICAgIC8qIEB9ICovCkBAIC0zOTUsMTQgKzM5OSwxNCBAQCBwcml2YXRl OgogICAgICAgICAvLyBhZGFwdGVkIGZyb20gaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vaGFy ZHdhcmVkcml2ZXJzL3ZlL2FsZ29yaXRobXMuaHRtbAogCiAgICAgICAgIC8vR2V0IHRoZSBzcXVh cmUgcm9vdCByZWNpcHJvY2FsIGVzdGltYXRlCi0gICAgICAgIHZlY3RvciBmbG9hdCB6ZXJvID0g ICAgZ2VuX3plcm8oKTsKLSAgICAgICAgdmVjdG9yIGZsb2F0IG9uZUhhbGYgPSBnZW5fMDUoKTsK LSAgICAgICAgdmVjdG9yIGZsb2F0IG9uZSA9ICAgICBnZW5fb25lKCk7Ci0gICAgICAgIHZlY3Rv ciBmbG9hdCBlc3RpbWF0ZSA9IHZlY19yc3FydGUoYXJnKTsKKyAgICAgICAgX192ZWN0b3IgZmxv YXQgemVybyA9ICAgIGdlbl96ZXJvKCk7CisgICAgICAgIF9fdmVjdG9yIGZsb2F0IG9uZUhhbGYg PSBnZW5fMDUoKTsKKyAgICAgICAgX192ZWN0b3IgZmxvYXQgb25lID0gICAgIGdlbl9vbmUoKTsK KyAgICAgICAgX192ZWN0b3IgZmxvYXQgZXN0aW1hdGUgPSB2ZWNfcnNxcnRlKGFyZyk7CiAKICAg ICAgICAgLy9PbmUgcm91bmQgb2YgTmV3dG9uLVJhcGhzb24gcmVmaW5lbWVudAotICAgICAgICB2 ZWN0b3IgZmxvYXQgZXN0aW1hdGVTcXVhcmVkID0gdmVjX21hZGQoZXN0aW1hdGUsIGVzdGltYXRl LCB6ZXJvKTsKLSAgICAgICAgdmVjdG9yIGZsb2F0IGhhbGZFc3RpbWF0ZSA9IHZlY19tYWRkKGVz dGltYXRlLCBvbmVIYWxmLCB6ZXJvKTsKKyAgICAgICAgX192ZWN0b3IgZmxvYXQgZXN0aW1hdGVT cXVhcmVkID0gdmVjX21hZGQoZXN0aW1hdGUsIGVzdGltYXRlLCB6ZXJvKTsKKyAgICAgICAgX192 ZWN0b3IgZmxvYXQgaGFsZkVzdGltYXRlID0gdmVjX21hZGQoZXN0aW1hdGUsIG9uZUhhbGYsIHpl cm8pOwogICAgICAgICByZXR1cm4gdmVjX21hZGQodmVjX25tc3ViKGFyZywgZXN0aW1hdGVTcXVh cmVkLCBvbmUpLCBoYWxmRXN0aW1hdGUsIGVzdGltYXRlKTsKICAgICB9CiAKSW5kZXg6IHN1cGVy Y29sbGlkZXItc2MzLXBsdWdpbnMtMy4xNC4wK2RzL2V4dGVybmFsX2xpYnJhcmllcy9ub3ZhLXNp bWQvdmVjL3ZlY19pbnRfYWx0aXZlYy5ocHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3VwZXJjb2xsaWRlci1z YzMtcGx1Z2lucy0zLjE0LjArZHMub3JpZy9leHRlcm5hbF9saWJyYXJpZXMvbm92YS1zaW1kL3Zl Yy92ZWNfaW50X2FsdGl2ZWMuaHBwCisrKyBzdXBlcmNvbGxpZGVyLXNjMy1wbHVnaW5zLTMuMTQu MCtkcy9leHRlcm5hbF9saWJyYXJpZXMvbm92YS1zaW1kL3ZlYy92ZWNfaW50X2FsdGl2ZWMuaHBw CkBAIC0yMCwyMiArMjAsMjggQEAKICNpZm5kZWYgVkVDX0lOVF9BTFRJVkVDX0hQUAogI2RlZmlu ZSBWRUNfSU5UX0FMVElWRUNfSFBQCiAKLSNpbmNsdWRlIDxhbHRpdmVjLmg+CisjaWYgZGVmaW5l ZChfX0FMVElWRUNfXykKKyMgaW5jbHVkZSA8YWx0aXZlYy5oPgorIyB1bmRlZiBib29sCisjIHVu ZGVmIHZlY3RvcgorIyB1bmRlZiBwaXhlbAorI2VuZGlmCisKIAogbmFtZXNwYWNlIG5vdmEgewog bmFtZXNwYWNlIGRldGFpbCB7CiAKIHN0cnVjdCBpbnRfdmVjX2FsdGl2ZWMKIHsKLSAgICB0eXBl ZGVmIHZlY3RvciBmbG9hdCBmdmVjOwotICAgIHR5cGVkZWYgdmVjdG9yIHVuc2lnbmVkIGludCBp dmVjOworICAgIHR5cGVkZWYgX192ZWN0b3IgZmxvYXQgZnZlYzsKKyAgICB0eXBlZGVmIF9fdmVj dG9yIHVuc2lnbmVkIGludCBpdmVjOwogICAgIGl2ZWMgZGF0YV87CiAKIHByaXZhdGU6CiAgICAg c3RhdGljIGl2ZWMgc2V0X3ZlY3RvcihpbnQgaSkKICAgICB7CiAjaWZkZWYgX19HTlVDX18KLSAg ICAgICAgcmV0dXJuIChpdmVjKXtpLCBpLCBpLCBpfTsKKyAgICAgICAgcmV0dXJuIChpdmVjKXso dW5zaWduZWQgaW50KWksKHVuc2lnbmVkIGludClpLCAodW5zaWduZWQgaW50KWksICh1bnNpZ25l ZCBpbnQpaX07CiAjZWxzZQogI2Vycm9yIGNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQKICNlbmRpZgpA QCAtNTgsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRhdGFfKGFyZy5kYXRhXykKICAgICB7 fQogCi0gICAgaW50X3ZlY19hbHRpdmVjKHZlY3RvciBzaWduZWQgaW50IGFyZyk6CisgICAgaW50 X3ZlY19hbHRpdmVjKF9fdmVjdG9yIHNpZ25lZCBpbnQgYXJnKToKICAgICAgICAgZGF0YV8oKGl2 ZWMpYXJnKQogICAgIHt9CiAK --=_f71dca584a6408e50750af5b71cc055f--