On 25/01/2017 09:41, Ralf Mattes wrote:
Am Mittwoch, 25. Januar 2017 09:24 CET, John Emmas <johne53(a)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