breakfastquay / rubberband

Official mirror of Rubber Band Library, an audio time-stretching and pitch-shifting library.
http://breakfastquay.com/rubberband/
GNU General Public License v2.0
561 stars 89 forks source link

llvm mingw arm64 build error #96

Closed Andarwinux closed 5 months ago

Andarwinux commented 8 months ago
rubberband/src -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++11 -O3 -pthread -DUSE_BUILTIN_FFT -DUSE_BQRESAMPLER -DNO_THREAD_CHECKS -DNO_TIMING -DNDEBUG -D_WIN32 -DNOMINMAX -D_USE_MATH_DEFINES -DGETOPT_API= -MD -MQ librubberband_objlib.a.p/src_common_sysutils.cpp.obj -MF librubberband_objlib.a.p/src_common_sysutils.cpp.obj.d -o librubberband_objlib.a.p/src_common_sysutils.cpp.obj -c ../../../../src_packages/rubberband/src/common/sysutils.cpp
../../../../src_packages/rubberband/src/common/sysutils.cpp:177:34: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
  177 |                          : "=r" (Barrier));
      |                                  ^
../../../../src_packages/rubberband/src/common/sysutils.cpp:176:39: note: use constraint modifier "w"
  176 |     __asm__ __volatile__("xchgl %%eax,%0 "
      |                                       ^~
      |                                       %w0
../../../../src_packages/rubberband/src/common/sysutils.cpp:176:26: error: unknown token in expression
  176 |     __asm__ __volatile__("xchgl %%eax,%0 "
      |                          ^
<inline asm>:1:8: note: instantiated into assembly here
    1 |         xchgl %eax,x8
      |               ^
../../../../src_packages/rubberband/src/common/sysutils.cpp:176:26: error: invalid operand
  176 |     __asm__ __volatile__("xchgl %%eax,%0 "
      |                          ^
<inline asm>:1:8: note: instantiated into assembly here
    1 |         xchgl %eax,x8
      |               ^
1 warning and 2 errors generated.

aarch64-w64-mingw32-clang. should make sure to use these inline asm only when compiling for x86.

cannam commented 8 months ago

Good point, thanks. In fact we shouldn't be doing this anywhere any more, it dates from before C++11 atomics.