[Jack-Devel] jack-headers merge ( the future of JACK(2))

John Emmas johne53 at tiscali.co.uk
Wed Jan 25 15:04:36 CET 2017


On 25/01/2017 09:41, Ralf Mattes wrote:
>   
> Am Mittwoch, 25. Januar 2017 09:24 CET, John Emmas <johne53 at tiscali.co.uk> schrieb:
>   
>> IIRC Jack2 currently has some structs which need to get built with
>> 1-byte alignment for the various struct fields (except on one particular
>> platform).  Let's say the Jack1 & Jack2 headers got merged...  wouldn't
>> that problem get amplified and possibly break compatibility for either
>> Jack1 or Jack2?
> I think that that "public" jack header would only contain declarations for
> jack's public API, and that should be the same for all implementations
>

A very quick search through the source files suggests that there are 2 
such structs in the public header file (jack/types.h) - namely:-

       _jack_latency_range
       _jack_position

Whoever's doing the merge will need to be aware that the above structs 
require 1-byte alignment in Jack2 which is probably different from their 
alignment in Jack1 (assuming they're also present in Jack1).

For some background...  the above structs (plus several others) 
originally used the more conventional, 8-byte alignment.  But it turned 
out that gcc and msvc couldn't agree on what constituted 8-byte 
alignment.  This meant that a Jack2 client built with msvc would crash 
if the server was built with gcc (or vice versa).  This got fixed by 
changing the alignment to 1-byte.

John



More information about the Jackaudio mailing list