diff options
author | 2021-06-03 06:35:26 +0000 | |
---|---|---|
committer | 2021-06-03 06:35:26 +0000 | |
commit | c0d9fd4dfdef2ca69a928dafe04691b5b90299b7 (patch) | |
tree | 5c3fc1a02eab7d3215d6cfc2b1638731b9b5f9f3 | |
parent | 2021-06-03 06:20:28 UTC (diff) | |
parent | media-libs/libdvbcsa: add ppc keyword (diff) | |
download | gentoo-c0d9fd4dfdef2ca69a928dafe04691b5b90299b7.tar.gz gentoo-c0d9fd4dfdef2ca69a928dafe04691b5b90299b7.tar.bz2 gentoo-c0d9fd4dfdef2ca69a928dafe04691b5b90299b7.zip |
Merge updates from master
-rw-r--r-- | media-libs/libdvbcsa/files/altivec.patch | 33 | ||||
-rw-r--r-- | media-libs/libdvbcsa/libdvbcsa-1.1.0-r1.ebuild | 8 | ||||
-rw-r--r-- | profiles/arch/powerpc/ppc64/64le/package.use.mask | 6 |
3 files changed, 45 insertions, 2 deletions
diff --git a/media-libs/libdvbcsa/files/altivec.patch b/media-libs/libdvbcsa/files/altivec.patch new file mode 100644 index 000000000000..3605c146a794 --- /dev/null +++ b/media-libs/libdvbcsa/files/altivec.patch @@ -0,0 +1,33 @@ +Fix compile on powerpc64/powerpc64le w/ altivec + +Correct the type of some vectors passed to vec_slo() or vec_sro(), which only +takes a char vector. + +Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> + +--- a/src/dvbcsa_bs_altivec.h 2016-11-28 14:33:34.410021500 +1100 ++++ b/src/dvbcsa_bs_altivec.h 2016-11-28 14:34:25.442238715 +1100 +@@ -64,7 +64,7 @@ + } + case 0x29: { + dvbcsa_bs_word_t x = vec_splat_u8(10); +- return (dvbcsa_bs_word_t)vec_add(vec_splat_u8(0x1),vec_rl(x,x)); ++ return (dvbcsa_bs_word_t)vec_add((dvbcsa_bs_word_t)vec_splat_u8(0x1),vec_rl(x,x)); + } + case 0x40: { + dvbcsa_bs_word_t x = vec_splat_u8(4); +@@ -99,10 +99,10 @@ + #define SHVAL_14 BS_VAL8(0e) + #define SHVAL_7 BS_VAL8(07) + +-#define BS_SHL(a, n) ({ dvbcsa_bs_word_t x = SHVAL_##n; vec_sll(vec_slo((a), x), x); }) +-#define BS_SHR(a, n) ({ dvbcsa_bs_word_t x = SHVAL_##n; vec_srl(vec_sro((a), x), x); }) +-#define BS_SHL8(a, n) ({ dvbcsa_bs_word_t x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_slo((a), x); }) +-#define BS_SHR8(a, n) ({ dvbcsa_bs_word_t x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_sro((a), x); }) ++#define BS_SHL(a, n) ({ vector unsigned char x = SHVAL_##n; vec_sll(vec_slo((a), x), x); }) ++#define BS_SHR(a, n) ({ vector unsigned char x = SHVAL_##n; vec_srl(vec_sro((a), x), x); }) ++#define BS_SHL8(a, n) ({ vector unsigned char x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_slo((a), x); }) ++#define BS_SHR8(a, n) ({ vector unsigned char x = vec_splat_u8(n*2); x = vec_add(x,x); x = vec_add(x,x); vec_sro((a), x); }) + + #define BS_EXTRACT8(a, n) ((uint8_t*)&(a))[15 - (n)] + diff --git a/media-libs/libdvbcsa/libdvbcsa-1.1.0-r1.ebuild b/media-libs/libdvbcsa/libdvbcsa-1.1.0-r1.ebuild index 7b7b9c47a784..f57c4314130e 100644 --- a/media-libs/libdvbcsa/libdvbcsa-1.1.0-r1.ebuild +++ b/media-libs/libdvbcsa/libdvbcsa-1.1.0-r1.ebuild @@ -3,16 +3,22 @@ EAPI=7 +inherit flag-o-matic + DESCRIPTION="Free implementation of the DVB Common Scrambling Algorithm - DVB/CSA" HOMEPAGE="https://www.videolan.org/developers/libdvbcsa.html" SRC_URI="https://download.videolan.org/pub/videolan/${PN}/${PV}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86" IUSE="cpu_flags_ppc_altivec cpu_flags_x86_mmx cpu_flags_x86_sse2 debug" +# https://github.com/buildroot/buildroot/blob/master/package/libdvbcsa/ +PATCHES=( "${FILESDIR}/altivec.patch" ) + src_configure() { + use cpu_flags_ppc_altivec && append-cflags '-flax-vector-conversions' # needed for altivec.patch local myeconfargs=( --disable-static $(use_enable cpu_flags_ppc_altivec altivec) diff --git a/profiles/arch/powerpc/ppc64/64le/package.use.mask b/profiles/arch/powerpc/ppc64/64le/package.use.mask index 32bb967a3518..b2593cab7228 100644 --- a/profiles/arch/powerpc/ppc64/64le/package.use.mask +++ b/profiles/arch/powerpc/ppc64/64le/package.use.mask @@ -1,6 +1,10 @@ -# Copyright 2019-2020 Gentoo Authors +# Copyright 2019-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Georgy Yakovlev <gyakovlev@gentoo.org> (2021-06-02) +# altivec code is big-endian only, #773100 +media-libs/libdvbcsa cpu_flags_ppc_altivec + # Michał Górny <mgorny@gentoo.org> (2020-12-21) # Additional sanitizers supported on ppc64le. sys-libs/compiler-rt-sanitizers -xray |