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

Paul Menzel paulepanter at users.sourceforge.net
Mon Mar 28 16:00:57 PDT 2011


Dear BlueZ folks,


Am Montag, den 28.03.2011, 18:41 +0300 schrieb Luiz Augusto von Dentz:

> On Fri, Mar 25, 2011 at 1:34 PM, Paul Menzel wrote:

> > Am Samstag, den 19.03.2011, 16:14 +0530 schrieb Arun Raghavan:
> >
> >> On Wed, 2011-02-23 at 01:07 +0530, Arun Raghavan wrote:
> >> [...]
> >> > The correct fix for this, imo, is in bluez (there is a new
> >> > sbc_primitives_armv6.h that can probably be used at least as a
> >> > template). We need to do an sbc-udpate on the PA side anyway, and can
> >> > pull this when we do.
> >>
> >> Could you see if the attached patch works for you? If it does, I can
> >> push this to the bluez folks.
> >
> > My tag on the other thread [1] is ambiguous. The error is indeed caused
> > by your patch. I will try to implement your recommended changes but will
> > probably not get to it before Sunday.
> 
> Im including Siarhei Siamashka since he did most, if not all, of this
> code and linux-bluetooth to cc.

to fix [1] I tried to add `#include "sbc_tables.h"` to
`src/modules/bluetooth/sbc/sbc_primitives.h`

        diff --git a/src/modules/bluetooth/sbc/sbc_primitives.h b/src/modules/bluetooth/
        index 3fec8d5..9544826 100644
        --- a/src/modules/bluetooth/sbc/sbc_primitives.h
        +++ b/src/modules/bluetooth/sbc/sbc_primitives.h
        @@ -24,6 +24,8 @@
          *
          */
         
        +#include "sbc_tables.h"
        +
         #ifndef __SBC_PRIMITIVES_H
         #define __SBC_PRIMITIVES_H

But this seems to result in a need for `sbc_math.h` which leads to a
circular inclusion.

        […]
        In file included from modules/bluetooth/sbc/sbc_primitives.h:27:0,
                         from modules/bluetooth/sbc/sbc_primitives_armv6.h:30,
                         from modules/bluetooth/sbc/sbc_math.h:27,
                         from modules/bluetooth/sbc/sbc.c:46:
        modules/bluetooth/sbc/sbc_tables.h:50:2: warning: implicit declaration of function 'ASR' [-Wimplicit-function-declaration]
        modules/bluetooth/sbc/sbc_tables.h:50:2: error: 'SCALE_SPROTO4_TBL' undeclared here (not in a function)
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: (near initialization for 'sbc_proto_4_40m1[0]')
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: (near initialization for 'sbc_proto_4_40m1[1]')
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: (near initialization for 'sbc_proto_4_40m1[2]')
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:58:2: error: (near initialization for 'sbc_proto_4_40m1[3]')
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: (near initialization for 'sbc_proto_4_40m1[4]')
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: (near initialization for 'sbc_proto_4_40m1[5]')
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: (near initialization for 'sbc_proto_4_40m1[6]')
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:59:2: error: (near initialization for 'sbc_proto_4_40m1[7]')
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: (near initialization for 'sbc_proto_4_40m1[8]')
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: (near initialization for 'sbc_proto_4_40m1[9]')
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: (near initialization for 'sbc_proto_4_40m1[10]')
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:60:2: error: (near initialization for 'sbc_proto_4_40m1[11]')
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: (near initialization for 'sbc_proto_4_40m1[12]')
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: (near initialization for 'sbc_proto_4_40m1[13]')
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: (near initialization for 'sbc_proto_4_40m1[14]')
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:61:2: error: (near initialization for 'sbc_proto_4_40m1[15]')
        modules/bluetooth/sbc/sbc_tables.h:62:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:62:2: error: (near initialization for 'sbc_proto_4_40m1[16]')
        modules/bluetooth/sbc/sbc_tables.h:62:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:62:2: error: (near initialization for 'sbc_proto_4_40m1[17]')
        modules/bluetooth/sbc/sbc_tables.h:62:2: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:62:2: error: (near initialization for 'sbc_proto_4_40m1[18]')
        modules/bluetooth/sbc/sbc_tables.h:63:1: error: initializer element is not constant
        modules/bluetooth/sbc/sbc_tables.h:63:1: error: (near initialization for 'sbc_proto_4_40m1[19]')
        [ goes on … ]

> Btw, the sbc subdir should be in sync with sbc subdir in BlueZ tree.

The question is how often should the updates be made. As far as I know
`make update-sbc` is only run once in a while.

        commit b676f89d8579c7ec1629892342a330f1e4c35657
        Author: Colin Guthrie <cguthrie at mandriva.org>
        Date:   Sun Mar 20 11:44:53 2011 +0000
        
            bluetooth: Run 'make update-sbc'
            
            Note that changes to ipc.h from 8f3ef04b had to be manually reapplied.


Thanks,

Paul


[1] https://tango.0pointer.de/pipermail/pulseaudio-discuss/2011-March/009594.html
-------------- 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/20110329/f003ca40/attachment.pgp>


More information about the pulseaudio-discuss mailing list