roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.03k stars 205 forks source link

roc-toolkit fails to build on aarch64 with libunwind #481

Closed yarda closed 1 year ago

yarda commented 1 year ago

roc-toolkit uses C++98 standard, but recent changes to libunwind are C++11 which causes roc-toolkit build to fail with error:

In file included from /usr/include/libunwind.h:5,
                 from src/modules/roc_core/target_libunwind/roc_core/backtrace.cpp:10:
/usr/include/libunwind-aarch64.h:198:17: error: expected identifier before numeric constant
  198 |         alignas(16) uint8_t __reserved[(66 * 8)];
      |                 ^~
/usr/include/libunwind-aarch64.h:198:17: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/libunwind-aarch64.h:198:19: error: expected ‘;’ at end of member declaration
  198 |         alignas(16) uint8_t __reserved[(66 * 8)];
      |                   ^
      |                    ;

It's due to the following libunwind upstream change: https://github.com/libunwind/libunwind/pull/186/commits/e72fe5376e7084017d8f56ecdfea3d4766e5e3fb

It seems that just dropping the explicit C++98 requirement from the scons SConstruct file and compiling with the Fedora (f38) default C++11 did the trick.

yarda commented 1 year ago

libunwind PR: https://github.com/libunwind/libunwind/pull/186

gavv commented 1 year ago

Hi, thanks for report.

This is now fixed in ff4bcd430f36fdaf9ffe28336c7affd3cf6ca466 and included into v0.2.0.

Feel free to reopen if you encounter any problems.

gavv commented 1 year ago

See also #472