aboutsummaryrefslogtreecommitdiff
path: root/multimedia/x264
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2016-10-28 23:39:01 +0000
committerJan Beich <jbeich@FreeBSD.org>2016-10-28 23:39:01 +0000
commit8edb48f13dc33611625e203e295b106001e6ee51 (patch)
tree4feeefc0ea02adbe6dc9c83fd56b73d82efcf9cd /multimedia/x264
parent0383bf4d48eaca8553d527c8bd087a3a285489a6 (diff)
downloadports-8edb48f13dc33611625e203e295b106001e6ee51.tar.gz
ports-8edb48f13dc33611625e203e295b106001e6ee51.zip
multimedia/libx264: unbreak ASM on armv6 after r422672
/nxb-bin/usr/bin/cc -I. -I. -c -DSTACK_ALIGNMENT=4 -DPIC -DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/quant-a.o common/arm/quant-a.S <instantiation>:29:5: error: instruction requires: armv6t2 rbit r1, r1 ^ common/arm/quant-a.S:362:1: note: while in macro instantiation decimate_score_1x 15 ^ <instantiation>:29:5: error: instruction requires: armv6t2 rbit r1, r1 ^ /tmp/quant-a-8aad5d.s:515:1: note: while in macro instantiation decimate_score_1x 16 ^ PR: 213443 Reported by: pkg-fallout, Bernd Walter, Mikael Urankar Approved by: portmgr blanket
Notes
Notes: svn path=/head/; revision=424887
Diffstat (limited to 'multimedia/x264')
-rw-r--r--multimedia/x264/Makefile2
-rw-r--r--multimedia/x264/files/patch-armv645
2 files changed, 45 insertions, 2 deletions
diff --git a/multimedia/x264/Makefile b/multimedia/x264/Makefile
index e9f07dfa1e73..7816a7c6a6cd 100644
--- a/multimedia/x264/Makefile
+++ b/multimedia/x264/Makefile
@@ -105,8 +105,6 @@ CONFIGURE_ARGS+= --prefix="${PREFIX}" \
--extra-cflags="${CPPFLAGS} ${CFLAGS}" \
--extra-ldflags="${LDFLAGS}"
-CFLAGS_armv6+= -mcpu=arm1136jf-s
-
post-extract-PGO-on:
@${BZIP2_CMD} -dc ${DISTDIR}/${DIST_SUBDIR}/${Y4M_VIDEO_DISTFILE} \
>${WRKDIR}/${Y4M_VIDEO}
diff --git a/multimedia/x264/files/patch-armv6 b/multimedia/x264/files/patch-armv6
new file mode 100644
index 000000000000..b5e6f964a882
--- /dev/null
+++ b/multimedia/x264/files/patch-armv6
@@ -0,0 +1,45 @@
+Downgrade SIMD usage to real armv6 (like Raspberry Pi)
+
+--- common/arm/quant-a.S.orig 2016-09-21 20:45:06 UTC
++++ common/arm/quant-a.S
+@@ -316,6 +316,7 @@ dequant_4x4_dc_rshift:
+ bx lr
+ endfunc
+
++#if ARCH_AARCH64 || HAVE_ARMV6T2
+ .macro decimate_score_1x size
+ function x264_decimate_score\size\()_neon
+ vld1.16 {q0, q1}, [r0, :128]
+@@ -361,6 +362,7 @@ endfunc
+
+ decimate_score_1x 15
+ decimate_score_1x 16
++#endif
+
+ function x264_decimate_score64_neon
+ push {lr}
+--- common/quant.c.orig 2016-09-21 20:45:06 UTC
++++ common/quant.c
+@@ -761,8 +761,10 @@ void x264_quant_init( x264_t *h, int cpu
+ pf->coeff_last[DCT_LUMA_4x4] = x264_coeff_last16_neon;
+ pf->coeff_last[DCT_LUMA_8x8] = x264_coeff_last64_neon;
+ pf->denoise_dct = x264_denoise_dct_neon;
++#if ARCH_AARCH64 || HAVE_ARMV6T2
+ pf->decimate_score15 = x264_decimate_score15_neon;
+ pf->decimate_score16 = x264_decimate_score16_neon;
++#endif
+ pf->decimate_score64 = x264_decimate_score64_neon;
+ }
+ #endif
+--- configure.orig 2016-09-21 20:45:06 UTC
++++ configure
+@@ -874,9 +874,6 @@ if [ $asm = auto -a \( $ARCH = X86 -o $A
+ fi
+
+ if [ $asm = auto -a $ARCH = ARM ] ; then
+- # set flags so neon is built by default
+- echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
+-
+ if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6
+ cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2
+ cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON