Possible JACK ABI changes between 0.118 and 1.9.5

Reinhard Tartler siretart at tauware.de
Thu Apr 8 12:34:37 UTC 2010


On Thu, Apr 08, 2010 at 13:06:18 (CEST), Adrian Knoth wrote:

> On Tue, Apr 06, 2010 at 07:29:51AM +0200, Reinhard Tartler wrote:
>
>> >>>> Can someone fluent in C/C++ please look at this?  Perhaps you, Adrian,
>> >>>> since you seem most knowledgeable in JACK around here?
>> I think I qualify.
>
> I'm not sure if I do. ;) Never used the debian symbol files...
>
>> Another source of problem is that presence of machine optimization. In
>> your buildlog I see symbols that indicate sse2 enabled functions. Has
>> anyone made sure that jackd2 really works on non-sse2 enabled machines?
>
> I haven't checked, yet, but I have a Debian 486 machine around, so I
> could try it. ;) Or I disassemble the library and check for SSE
> instructions.
>
> As long as nobody is calling -msse2 with the appropriate arch/cpu
> definition, no SSE2 enabled code would be compiled.

There seem to be some suspicious symbols that indicate sse2 specifics in
Jonas posted symbols listing.

>> What symbols are supposed to be exposed by libjack? I suppose only
>> globals and functions defined in these files are part of this:
>>
>> /usr/include/jack
>> /usr/include/jack/intclient.h
>> /usr/include/jack/jack.h
>> /usr/include/jack/ringbuffer.h
>> /usr/include/jack/statistics.h
>> /usr/include/jack/thread.h
>> /usr/include/jack/timestamps.h
>> /usr/include/jack/transport.h
>> /usr/include/jack/types.h
>> /usr/include/jack/midiport.h
>
> Exactly. That's the list each client application relies on.
>
>> But is there perhaps a more canonical list? 
>
> There is doxygen output available:
>
>    http://jackaudio.org/files/docs/html/index.html
>
> Don't know if this qualifies as "more canonical", but this file also
> refers to the above header files as "the full API"

Well, I think this counts as canonical list. 

>> Moreover, I see some functions marked as JACK_DEPRECATED in jack.h.
>> Are they still used by applications and does jack2 still provide them?
>
> The deprecated functions are still provided and even used by
> jackd{1,2}'s example clients. ;)
>
> This surely needs fixing, but that's upstream's responsibility. I'll
> file a ticket and provide some patches.

OK.

> Is there more I could do?

I think as long upstream not even makes efford to hide symbols not
defined in the JACK API as published at
http://jackaudio.org/files/docs/html/index.html, I don't think it makes
sense to think about symbol files. Ideally, every line in the symbol
file corresponds directly to an API function or global, but this is much
work that I don't think can be sensibly finished before squeeze release.

Next steps (just opinion):

 - revert the symbol files change
 - upload to experimental ASAP
 - test-rebuild applications against jack2
 - in paralell: review the license issues
 - upload to unstable if all OK

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4



More information about the pkg-multimedia-maintainers mailing list