commit: 884d9dafc85fe80042e62fd1434e9ca7e8668183 Author: Niccolò Belli <niccolo.belli <AT> linuxsystems <DOT> it> AuthorDate: Tue Nov 8 11:40:14 2022 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Sun Nov 27 21:45:46 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=884d9daf
sci-physics/bullet: rename altivec vector keywords Altivec vectors can be defined with either the "vector" keyword or the "__vector" type. In general "__vector" should be prefered for include files, as otherwise it might conflicts with other type define in the source code (define a vector class in C++ is quite common). This causes bullet to fail to build on powerpc if the code is compiled with -maltivec, or by default on ppc64el which always has altivec enabled. See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760310 Closes: https://bugs.gentoo.org/852101 Signed-off-by: Niccolò Belli <niccolo.belli <AT> linuxsystems.it> Closes: https://github.com/gentoo/gentoo/pull/28193 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> sci-physics/bullet/bullet-3.21.ebuild | 2 ++ ...ullet-3.21-replace_altivec_vector_keyword.patch | 24 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/sci-physics/bullet/bullet-3.21.ebuild b/sci-physics/bullet/bullet-3.21.ebuild index 2dd6ebe42362..fab2d923dee4 100644 --- a/sci-physics/bullet/bullet-3.21.ebuild +++ b/sci-physics/bullet/bullet-3.21.ebuild @@ -45,6 +45,8 @@ pkg_setup() { } src_prepare() { + (use ppc || use ppc64) && PATCHES+=( "${FILESDIR}/${P}-replace_altivec_vector_keyword.patch" ) + cmake_src_prepare # allow to generate docs diff --git a/sci-physics/bullet/files/bullet-3.21-replace_altivec_vector_keyword.patch b/sci-physics/bullet/files/bullet-3.21-replace_altivec_vector_keyword.patch new file mode 100644 index 000000000000..01ef90646d5b --- /dev/null +++ b/sci-physics/bullet/files/bullet-3.21-replace_altivec_vector_keyword.patch @@ -0,0 +1,24 @@ +--- a/src/clew/clew.h 2022-02-16 18:12:48.879740507 +0100 ++++ b/src/clew/clew.h 2022-02-16 18:13:32.403061196 +0100 +@@ -319,14 +319,14 @@ + + /* Define basic vector types */ + #if defined(__VEC__) + #include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */ +- typedef vector unsigned char __cl_uchar16; +- typedef vector signed char __cl_char16; +- typedef vector unsigned short __cl_ushort8; +- typedef vector signed short __cl_short8; +- typedef vector unsigned int __cl_uint4; +- typedef vector signed int __cl_int4; +- typedef vector float __cl_float4; ++ typedef __vector unsigned char __cl_uchar16; ++ typedef __vector signed char __cl_char16; ++ typedef __vector unsigned short __cl_ushort8; ++ typedef __vector signed short __cl_short8; ++ typedef __vector unsigned int __cl_uint4; ++ typedef __vector signed int __cl_int4; ++ typedef __vector float __cl_float4; + #define __CL_UCHAR16__ 1 + #define __CL_CHAR16__ 1 + #define __CL_USHORT8__ 1