Summary: | media-sound/ardour[-cpu_flags_x86_sse]: sse_functions_avx_linux.cc:337:17: error: ‘x86_sse_mix_buffers_with_gain’ was not declared in this scope; did you mean ‘x86_sse_avx_mix_buffers_with_gain’? | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Sam James <sam> |
Component: | Current packages | Assignee: | Professional Audio Applications Maintainers <proaudio> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | fordfrog |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log |
Description
Sam James
2023-06-10 18:19:22 UTC
7.5-r1 compiles fine for me, but 9999 fails with this error. looking at the code, the function is mentioned here: # grep x86_sse_mix_buffers_with_gain * -r libs/ardour/ardour/mix.h: LIBARDOUR_API void x86_sse_mix_buffers_with_gain(float* dst, float const* src, uint32_t nframes, float gain); libs/ardour/globals.cc: mix_buffers_with_gain = x86_sse_mix_buffers_with_gain; libs/ardour/mix.cc: x86_sse_mix_buffers_with_gain(dst, src, nframes, gain); libs/ardour/sse_functions.s:#; void x86_sse_mix_buffers_with_gain (float *dst, float *src, long nframes, float gain); libs/ardour/sse_functions.s:.globl x86_sse_mix_buffers_with_gain libs/ardour/sse_functions.s: .type x86_sse_mix_buffers_with_gain,@function libs/ardour/sse_functions.s:x86_sse_mix_buffers_with_gain: libs/ardour/sse_functions.s:.size x86_sse_mix_buffers_with_gain, .-x86_sse_mix_buffers_with_gain libs/ardour/sse_functions_64bit.s:#; void x86_sse_mix_buffers_with_gain (float *dst, float *src, unsigned int nframes, float gain); libs/ardour/sse_functions_64bit.s:.globl x86_sse_mix_buffers_with_gain libs/ardour/sse_functions_64bit.s: .type x86_sse_mix_buffers_with_gain,@function libs/ardour/sse_functions_64bit.s:x86_sse_mix_buffers_with_gain: libs/ardour/sse_functions_64bit.s:.size x86_sse_mix_buffers_with_gain, .-x86_sse_mix_buffers_with_gain libs/ardour/sse_functions_64bit_win.s:#; void x86_sse_mix_buffers_with_gain (float *dst, float *src, unsigned int nframes, float gain); libs/ardour/sse_functions_64bit_win.s:.globl x86_sse_mix_buffers_with_gain libs/ardour/sse_functions_64bit_win.s: .def x86_sse_mix_buffers_with_gain; .scl 2; .type 32; libs/ardour/sse_functions_64bit_win.s:x86_sse_mix_buffers_with_gain: libs/ardour/sse_functions_avx_linux.cc: x86_sse_mix_buffers_with_gain(dst, src, nframes, gain); libs/ardour/test/fpu_test.cc: mix_buffers_with_gain = x86_sse_mix_buffers_with_gain; file libs/ardour/sse_functions_avx_linux.cc contains #include "ardour/mix.h" so it should see the declaration of the function. here is where my knowledge ends... any help or insight would be appreciated. here's the code where the compilation fails: x86_sse_avx_mix_buffers_with_gain(float *dst, const float *src, uint32_t nframes, float gain) { if (IS_ALIGNED_TO(dst, 32) && IS_ALIGNED_TO(src, 32)) { // Pointers are both aligned to 32 bit boundaries, this can be processed with AVX x86_sse_avx_mix_buffers_with_gain_aligned(dst, src, nframes, gain); } else if (IS_ALIGNED_TO(dst, 16) && IS_ALIGNED_TO(src, 16)) { // This can still be processed with SSE x86_sse_mix_buffers_with_gain(dst, src, nframes, gain); // THIS FAILS } else { // Pointers are unaligned, so process them with unaligned load/store AVX x86_sse_avx_mix_buffers_with_gain_unaligned(dst, src, nframes, gain); } } here's the error from 9999: ../libs/ardour/sse_functions_avx_linux.cc: In function ‘void x86_sse_avx_mix_buffers_with_gain(float*, const float*, uint32_t, float)’: ../libs/ardour/sse_functions_avx_linux.cc:337:17: error: ‘x86_sse_mix_buffers_with_gain’ was not declared in this scope; did you mean ‘x86_sse_avx_mix_buffers_with_gain’? 337 | x86_sse_mix_buffers_with_gain(dst, src, nframes, gain); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | x86_sse_avx_mix_buffers_with_gain ../libs/ardour/sse_functions_avx_linux.cc: In function ‘void x86_sse_avx_mix_buffers_no_gain(float*, const float*, uint32_t)’: ../libs/ardour/sse_functions_avx_linux.cc:363:17: error: ‘x86_sse_mix_buffers_no_gain’ was not declared in this scope; did you mean ‘x86_sse_avx_mix_buffers_no_gain’? 363 | x86_sse_mix_buffers_no_gain(dst, src, nframes); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | x86_sse_avx_mix_buffers_no_gain |