Re: audio/jack does not compile under ARM/aarch64

From: Florian Walpen <dev_at_submerge.ch>
Date: Mon, 07 Feb 2022 20:58:31 UTC
Hi Jos,

On Monday, February 7, 2022 7:20:45 PM CET Jos Prez wrote:
> Hi,
> audio/jack does not compile under ARM/aarch64 and outputs:
> 
> 19:13:23 runner ['c++', '-O2', '-pipe', '-fPIC',
> '-fstack-protector-strong', '-fno-strict-aliasing', '-Wall',
> '-Wno-invalid-offsetof', '-std=gnu++11', '-fPIC', '-Ifreebsd',
> '-I../freebsd', '-Iposix', '-I../posix', '-Icommon', '-I../common',
> '-Icommon/jack', '-I../common/jack', '-I.', '-I..',
> '-I../compat/alloca', '-I../../../../../../local/include/opus',
> '-I../../../../../../local/include',
> '-I../../../../../../local/include/dbus-1.0',
> '-I../../../../../../local/lib/dbus-1.0/include', '-DEXECINFO=1',
> '-DHAVE_LIBSYSINFO=1', '-DHAVE_DOXYGEN=0', '-DHAVE_ALSA=1',
> '-DHAVE_FIREWIRE=0', '-DHAVE_IIO=0', '-DHAVE_PORTAUDIO=0',
> '-DHAVE_WINMME=0', '-DHAVE_CELT=0', '-DHAVE_EXAMPLE_TOOLS=0',
> '-DHAVE_OPUS_OPUS_CUSTOM_H=1', '-DHAVE_OPUS_PKG=1', '-DHAVE_OPUS=1',
> '-DHAVE_SAMPLERATE=1', '-DHAVE_SNDFILE=0', '-DHAVE_READLINE=0',
> '-DHAVE_SYSTEMD=0', '-DHAVE_DB_H=1', '-DHAVE_DB=0', '-DHAVE_ZALSA=0',
> '-DHAVE_PPOLL=1', '-DHAVE_EXECINFO_H=1', '-DJACK_VERSION="[]"',
> '-DHAVE_DBUS_1=1', '-DHAVE_EXPAT=1', '-DUSE_LIBDBUS_AUTOLAUNCH=1',
> '-DCLIENT_NUM=256', '-DPORT_NUM_FOR_CLIENT=2048',
> '-DADDON_DIR="/usr/local/lib/jack"', '-DJACK_LOCATION="/usr/local/bin"',
> '-DUSE_POSIX_SHM=1', '-DJACKMP=1', '-DJACK_DBUS=1', '-DHAVE_CONFIG_H',
> '-DSERVER_SIDE', '../posix/JackSocketServerNotifyChannel.cpp', '-c',
> '-o/usr/ports/audio/jack/work/jack2-1.9.20/build/posix/JackSocketServerNotif
> yChannel.cpp.2.o', '-I/usr/local/include']
> In file included from ../common/JackTransportEngine.cpp:24:
> ../common/JackEngineControl.h:67:5: error: requested alignment is less
> than minimum alignment of 8 for type 'Jack::JackTransportEngine'
>      alignas(UInt32) JackTransportEngine fTransport;
>      ^
> ../common/JackEngineControl.h:89:5: error: requested alignment is less
> than minimum alignment of 8 for type 'Jack::JackFrameTimer'
>      alignas(UInt32) JackFrameTimer fFrameTimer;
>      ^

thanks for the report, this is a known problem and I am working on it:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261508

Still waiting for upstream to test my solution on MacOS with rosetta. In the 
meantime you can download my patch there (apply with "git am"):
https://bz-attachments.freebsd.org/attachment.cgi?id=231525

> 
> There is a mention to a similar issue under powerpc and powerpc64, but
> there is no indication on how to solve it.

The powerpc architectures use GCC as a workaround, in current ports tree.

> 
> Can someone point me toward a solution?
> 
> Thank you.
> 
> BR,

Regards,

Flo