[pulseaudio-discuss] [PATCH] sbc_math.h: add explicit check for ARMv6 instructions

Paul Menzel paulepanter at users.sourceforge.net
Sun Feb 20 10:20:04 PST 2011


Date: Sun, 20 Feb 2011 15:57:55 +0100

Building PulseAudio 051d8213 [1] using OpenEmbedded with distribution `minimal-uclibc` for `MACHINE="om-gta01"` having an ARMv4T architecture (armv4t-oe-linux-uclibceabi) compilation fails with the following error.

	[…]
	modules/bluetooth/sbc.c:485:10: warning: cannot optimize possibly infinite loops [-Wunsafe-loop-optimizations]
	{standard input}: Assembler messages:
	{standard input}:3628: Error: selected processor does not support Thumb mode `mla r3,r0,r1,r3'
	{standard input}:3635: Error: selected processor does not support Thumb mode `mla r3,r2,r0,r3'
	{standard input}:3643: Error: selected processor does not support Thumb mode `mla r3,r1,r0,r3'
	{standard input}:3705: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3717: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3729: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3741: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3753: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3767: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3780: Error: selected processor does not support Thumb mode `mla r3,r7,ip,r3'
	{standard input}:3786: Error: selected processor does not support Thumb mode `mla r3,r4,r7,r3'
	{standard input}:3794: Error: selected processor does not support Thumb mode `mla r3,r0,r4,r3'
	{standard input}:3895: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:3902: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:3909: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:3916: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:3923: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:3930: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:3937: Error: selected processor does not support Thumb mode `mla r1,r5,r6,r1'
	{standard input}:4018: Error: selected processor does not support Thumb mode `mla r3,r6,r2,r3'
	{standard input}:4034: Error: selected processor does not support Thumb mode `mla r3,r2,ip,r3'
	{standard input}:4045: Error: selected processor does not support Thumb mode `mla r3,r2,r6,r3'
	{standard input}:4061: Error: selected processor does not support Thumb mode `mla r3,r2,ip,r3'
	{standard input}:4072: Error: selected processor does not support Thumb mode `mla r3,r2,r6,r3'
	{standard input}:4088: Error: selected processor does not support Thumb mode `mla r3,r2,ip,r3'
	{standard input}:4099: Error: selected processor does not support Thumb mode `mla r3,r2,r6,r3'
	{standard input}:4114: Error: selected processor does not support Thumb mode `mla r3,r2,ip,r3'
	{standard input}:4125: Error: selected processor does not support Thumb mode `mla r3,r6,r2,r3'
	make[3]: *** [libbluetooth_sbc_la-sbc.lo] Error 1

Apply the same fix as in [2], which is similar to the patch applied in OpenEmbedded since commit 976ab4b5 [3].

[1] http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=051d82133f0ae6a57bf66fd200bc8e3591a7d5ca
[2] http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=12b900858ae82d435c100d6eb94cb7bb22fe5e29
[3] http://cgit.openembedded.org/cgit.cgi/openembedded/commit/?id=976ab4b4587d548c0483a274058c5359cb72bf1b

Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
CC: Marcel Holtmann <marcel at holtmann.org>
---
I do not know if these files are just copied from linux-bluetooth upstream, so I am adding Marcel to CC anyway because he is mentioned in the copyright section.
---
 src/modules/bluetooth/sbc_math.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/bluetooth/sbc_math.h b/src/modules/bluetooth/sbc_math.h
index b87bc81..b0f46e5 100644
--- a/src/modules/bluetooth/sbc_math.h
+++ b/src/modules/bluetooth/sbc_math.h
@@ -47,7 +47,7 @@ typedef int32_t sbc_fixed_t;
 
 #define SBC_FIXED_0(val) { val = 0; }
 #define MUL(a, b)        ((a) * (b))
-#ifdef __arm__
+#if defined(__arm__) && defined(HAVE_ARMV6)
 #define MULA(a, b, res) ({				\
 		int tmp = res;			\
 		__asm__(				\
@@ -57,4 +57,4 @@ typedef int32_t sbc_fixed_t;
 		tmp; })
 #else
 #define MULA(a, b, res)  ((a) * (b) + (res))
-#endif
+#endif /* defined (__arm__) && defined (HAVE_ARMV6) */
-- 
1.7.4.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20110220/5fbd30d4/attachment.pgp>


More information about the pulseaudio-discuss mailing list