rhasspy / webrtc-noise-gain

Tiny wrapper around webrtc-audio-processing for noise suppression/auto gain only
MIT License
10 stars 17 forks source link

Build fails on rpi4 - Raspbian 6bit (bookworm) Python 3.12.1 #16

Open prairiesnpr opened 5 months ago

prairiesnpr commented 5 months ago

Build fails on rpi4 with Raspbian 64bit bookworm and python3.12.1, with /usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:6940:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vmovq_n_f32(float32_t)’: target specific option mismatch If you could point me in the right direction, I'd appreciate it.

Followed build instructions from readme.

user@boaz:~ $ git clone http://github.com/rhasspy/webrtc-noise-gain.git
Cloning into 'webrtc-noise-gain'...
warning: redirecting to https://github.com/rhasspy/webrtc-noise-gain.git/
remote: Enumerating objects: 2460, done.
remote: Counting objects: 100% (77/77), done.
remote: Compressing objects: 100% (69/69), done.
remote: Total 2460 (delta 20), reused 20 (delta 7), pack-reused 2383
Receiving objects: 100% (2460/2460), 3.68 MiB | 8.08 MiB/s, done.
Resolving deltas: 100% (433/433), done.
user@boaz:~ $ cd  webrtc-noise-gain
user@boaz:~/webrtc-noise-gain $ python3 -m venv .venv
user@boaz:~/webrtc-noise-gain $ source .venv/bin/activate
(.venv) user@boaz:~/webrtc-noise-gain $ pip3 install --upgrade pip
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: pip in ./.venv/lib/python3.12/site-packages (23.2.1)
Collecting pip
  Using cached https://www.piwheels.org/simple/pip/pip-23.3.2-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.2.1
    Uninstalling pip-23.2.1:
      Successfully uninstalled pip-23.2.1
Successfully installed pip-23.3.2
(.venv) user@boaz:~/webrtc-noise-gain $ pip3 install --upgrade wheel build
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting wheel
  Using cached https://www.piwheels.org/simple/wheel/wheel-0.42.0-py3-none-any.whl (65 kB)
Collecting build
  Using cached https://www.piwheels.org/simple/build/build-1.0.3-py3-none-any.whl (18 kB)
Collecting packaging>=19.0 (from build)
  Using cached https://www.piwheels.org/simple/packaging/packaging-23.2-py3-none-any.whl (53 kB)
Collecting pyproject_hooks (from build)
  Using cached https://www.piwheels.org/simple/pyproject-hooks/pyproject_hooks-1.0.0-py3-none-any.whl (9.3 kB)
Installing collected packages: wheel, pyproject_hooks, packaging, build
Successfully installed build-1.0.3 packaging-23.2 pyproject_hooks-1.0.0 wheel-0.42.0

Build attempt

(.venv) user@boaz:~/webrtc-noise-gain $ python -m build --wheel
* Creating venv isolated environment...
* Installing packages in isolated environment... (pybind11, setuptools)
* Getting build dependencies for wheel...
running egg_info
writing webrtc_noise_gain.egg-info/PKG-INFO
writing dependency_links to webrtc_noise_gain.egg-info/dependency_links.txt
writing top-level names to webrtc_noise_gain.egg-info/top_level.txt
reading manifest file 'webrtc_noise_gain.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE.md'
writing manifest file 'webrtc_noise_gain.egg-info/SOURCES.txt'
* Installing packages in isolated environment... (wheel)
* Building wheel...
running bdist_wheel
running build
running build_py
copying webrtc_noise_gain/__init__.py -> build/lib.linux-aarch64-cpython-312/webrtc_noise_gain
running build_ext
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 flagcheck.cpp -o flagcheck.o -std=c++17
building 'webrtc_noise_gain_cpp' extension
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/python.cpp -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/python.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio/audio_frame.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio/audio_frame.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio/channel_layout.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio/channel_layout.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio/echo_canceller3_config.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio/echo_canceller3_config.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio_codecs/audio_decoder.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio_codecs/audio_decoder.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio_codecs/audio_encoder.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/audio_codecs/audio_encoder.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/rtp_headers.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/rtp_headers.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/rtp_packet_info.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/rtp_packet_info.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/task_queue/task_queue_base.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/task_queue/task_queue_base.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/data_rate.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/data_rate.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/data_size.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/data_size.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/frequency.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/frequency.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/time_delta.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/time_delta.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/timestamp.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/units/timestamp.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/color_space.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/color_space.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/hdr_metadata.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/hdr_metadata.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/video_content_type.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/video_content_type.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/video_timing.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/api/video/video_timing.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/audio_converter.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/audio_converter.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/audio_util.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/audio_util.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/channel_buffer.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/channel_buffer.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_c.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_c.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_factory.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_factory.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -DVERSION_INFO=1.2.3 -I/home/user/webrtc-noise-gain/webrtc-audio-processing -I/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1 -I/home/user/webrtc-noise-gain/webrtc-audio-processing/subprojects/abseil-cpp-20230125.1 -I/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/include -I/tmp/build-env-aiab0xbq/include -I/usr/local/include/python3.12 -c -std=c++17 /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc -o build/temp.linux-aarch64-cpython-312/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.o -fvisibility=hidden -g0 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_SYMBOL_EXPORT -DNDEBUG -DWEBRTC_APM_DEBUG_DUMP=0 -D_GNU_SOURCE -DWEBRTC_LINUX -DWEBRTC_THREAD_RR -DWEBRTC_POSIX -DWEBRTC_ARCH_LITTLE_ENDIAN -DWEBRTC_ARCH_ARM64 -DWEBRTC_ARCH_ARM_FAMILY -DWEBRTC_ARCH_64_BITS -DWEBRTC_HAS_NEON
In file included from /home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:13:
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h: In member function ‘virtual void webrtc::FIRFilterNEON::Filter(const float*, size_t, float*)’:
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:6940:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vmovq_n_f32(float32_t)’: target specific option mismatch
 6940 | vmovq_n_f32 (float32_t __a)
      | ^~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:57:36: note: called from here
   57 |     float32x4_t m_sum = vmovq_n_f32(0);
      |                         ~~~~~~~~~~~^~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:1481:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vmlaq_f32(float32x4_t, float32x4_t, float32x4_t)’: target specific option mismatch
 1481 | vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:62:24: note: called from here
   62 |       m_sum = vmlaq_f32(m_sum, m_in, vld1q_f32(coef_ptr + j));
      |               ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:10446:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vld1q_f32(const float32_t*)’: target specific option mismatch
10446 | vld1q_f32 (const float32_t * __a)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:62:24: note: called from here
   62 |       m_sum = vmlaq_f32(m_sum, m_in, vld1q_f32(coef_ptr + j));
      |               ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:10446:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vld1q_f32(const float32_t*)’: target specific option mismatch
10446 | vld1q_f32 (const float32_t * __a)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:61:23: note: called from here
   61 |       m_in = vld1q_f32(in_ptr + j);
      |              ~~~~~~~~~^~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:6210:1: error: inlining failed in call to ‘always_inline’ ‘float32_t vget_lane_f32(float32x2_t, int)’: target specific option mismatch
 6210 | vget_lane_f32 (float32x2_t __a, const int __b)
      | ^~~~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:66:27: note: called from here
   66 |     out[i] = vget_lane_f32(vpadd_f32(m_half, m_half), 0);
      |              ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:3684:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vpadd_f32(float32x2_t, float32x2_t)’: target specific option mismatch
 3684 | vpadd_f32 (float32x2_t __a, float32x2_t __b)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:66:27: note: called from here
   66 |     out[i] = vget_lane_f32(vpadd_f32(m_half, m_half), 0);
      |              ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:552:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vadd_f32(float32x2_t, float32x2_t)’: target specific option mismatch
  552 | vadd_f32 (float32x2_t __a, float32x2_t __b)
      | ^~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:65:34: note: called from here
   65 |     float32x2_t m_half = vadd_f32(vget_high_f32(m_sum), vget_low_f32(m_sum));
      |                          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:7392:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vget_low_f32(float32x4_t)’: target specific option mismatch
 7392 | vget_low_f32 (float32x4_t __a)
      | ^~~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:65:34: note: called from here
   65 |     float32x2_t m_half = vadd_f32(vget_high_f32(m_sum), vget_low_f32(m_sum));
      |                          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:7313:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vget_high_f32(float32x4_t)’: target specific option mismatch
 7313 | vget_high_f32 (float32x4_t __a)
      | ^~~~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:65:34: note: called from here
   65 |     float32x2_t m_half = vadd_f32(vget_high_f32(m_sum), vget_low_f32(m_sum));
      |                          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:6940:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vmovq_n_f32(float32_t)’: target specific option mismatch
 6940 | vmovq_n_f32 (float32_t __a)
      | ^~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:57:36: note: called from here
   57 |     float32x4_t m_sum = vmovq_n_f32(0);
      |                         ~~~~~~~~~~~^~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:6940:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vmovq_n_f32(float32_t)’: target specific option mismatch
 6940 | vmovq_n_f32 (float32_t __a)
      | ^~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:57:36: note: called from here
   57 |     float32x4_t m_sum = vmovq_n_f32(0);
      |                         ~~~~~~~~~~~^~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:1481:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vmlaq_f32(float32x4_t, float32x4_t, float32x4_t)’: target specific option mismatch
 1481 | vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:62:24: note: called from here
   62 |       m_sum = vmlaq_f32(m_sum, m_in, vld1q_f32(coef_ptr + j));
      |               ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:10446:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vld1q_f32(const float32_t*)’: target specific option mismatch
10446 | vld1q_f32 (const float32_t * __a)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:62:24: note: called from here
   62 |       m_sum = vmlaq_f32(m_sum, m_in, vld1q_f32(coef_ptr + j));
      |               ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:10446:1: error: inlining failed in call to ‘always_inline’ ‘float32x4_t vld1q_f32(const float32_t*)’: target specific option mismatch
10446 | vld1q_f32 (const float32_t * __a)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:61:23: note: called from here
   61 |       m_in = vld1q_f32(in_ptr + j);
      |              ~~~~~~~~~^~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:6210:1: error: inlining failed in call to ‘always_inline’ ‘float32_t vget_lane_f32(float32x2_t, int)’: target specific option mismatch
 6210 | vget_lane_f32 (float32x2_t __a, const int __b)
      | ^~~~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:66:27: note: called from here
   66 |     out[i] = vget_lane_f32(vpadd_f32(m_half, m_half), 0);
      |              ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:3684:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vpadd_f32(float32x2_t, float32x2_t)’: target specific option mismatch
 3684 | vpadd_f32 (float32x2_t __a, float32x2_t __b)
      | ^~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:66:27: note: called from here
   66 |     out[i] = vget_lane_f32(vpadd_f32(m_half, m_half), 0);
      |              ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:552:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vadd_f32(float32x2_t, float32x2_t)’: target specific option mismatch
  552 | vadd_f32 (float32x2_t __a, float32x2_t __b)
      | ^~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:65:34: note: called from here
   65 |     float32x2_t m_half = vadd_f32(vget_high_f32(m_sum), vget_low_f32(m_sum));
      |                          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:7392:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vget_low_f32(float32x4_t)’: target specific option mismatch
 7392 | vget_low_f32 (float32x4_t __a)
      | ^~~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:65:34: note: called from here
   65 |     float32x2_t m_half = vadd_f32(vget_high_f32(m_sum), vget_low_f32(m_sum));
      |                          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:7313:1: error: inlining failed in call to ‘always_inline’ ‘float32x2_t vget_high_f32(float32x4_t)’: target specific option mismatch
 7313 | vget_high_f32 (float32x4_t __a)
      | ^~~~~~~~~~~~~
/home/user/webrtc-noise-gain/webrtc-audio-processing/webrtc-audio-processing-1/common_audio/fir_filter_neon.cc:65:34: note: called from here
   65 |     float32x2_t m_half = vadd_f32(vget_high_f32(m_sum), vget_low_f32(m_sum));
      |                          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 185, in _compile
    self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py", line 1041, in spawn
    spawn(cmd, dry_run=self.dry_run, **kwargs)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn
    raise DistutilsExecError(
setuptools._distutils.errors.DistutilsExecError: command '/usr/bin/gcc' failed with exit code 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/webrtc-noise-gain/.venv/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
    main()
  File "/home/user/webrtc-noise-gain/.venv/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/webrtc-noise-gain/.venv/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/build_meta.py", line 404, in build_wheel
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
    self.run_setup()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/build_meta.py", line 480, in run_setup
    super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
    exec(code, locals())
  File "<string>", line 565, in <module>
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
    super().run_command(command)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/wheel/bdist_wheel.py", line 368, in run
    self.run_command("build")
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
    super().run_command(command)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 131, in run
    self.run_command(cmd_name)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
    self.distribution.run_command(command)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
    super().run_command(command)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 88, in run
    _build_ext.run(self)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
    self.build_extensions()
  File "<string>", line 513, in build_extensions
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/pybind11/setup_helpers.py", line 285, in build_extensions
    super().build_extensions()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
    self._build_extensions_serial()
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
    self.build_extension(ext)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 249, in build_extension
    _build_ext.build_extension(self, ext)
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
    objects = self.compiler.compile(
              ^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py", line 600, in compile
    self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
  File "<string>", line 500, in _compile
  File "/tmp/build-env-aiab0xbq/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 187, in _compile
    raise CompileError(msg)
setuptools._distutils.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1

ERROR Backend subprocess exited when trying to invoke build_wheel
prairiesnpr commented 5 months ago

Worked on this more last night, overriding the architecture in setup.py to armv7 allows the compile to complete. Home Assistant now starts, but since I don't use voice, I don't know if it's actually functional beyond allowing the import.

mrumpf commented 5 months ago

So the workaround is to set the machine to "armv7" but the Python 3.12.1 platform.machine() call returns "aarch64" on the RPi4 using Raspbian based on Debian 11 Bullseye:

Python 3.12.1 (main, Jan 27 2024, 15:54:44) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.machine()
'aarch64'

When webrtc-noise-gain is compiled by overriding the machine in setup.py

machine="armv7" # platform.machine().lower()

I installed the wheel from the dist folder like this into the homeassistant's venv:

pip install webrtc-noise-gain/dist/webrtc_noise_gain-1.2.3-cp312-cp312-linux_armv7l.whl
darkskiez commented 2 months ago

Based on the description above, this was how I applied the workaround to my pi (for homeassistant use)

. yourvenvpath/bin/activate
pip download webrtc-noise-gain
tar xfz ./webrtc_noise_gain-1.2.3.tar.gz
sed -i 's/machine = platform.machine().lower()/machine="armv7"/'  webrtc_noise_gain-1.2.3/setup.py 
pip install ./webrtc_noise_gain-1.2.3
peppe-terra commented 1 month ago

I have an armv7 processor but build fails using python 3.12.3. Platform.machine() gives "armv7l". Building on Alpine 3.20.

osirisinferi commented 2 weeks ago

It's also possible to set have_neon to False in setup.py (line 360) and disable Neon some more in webrtc-audio-processing/webrtc-audio-processing-1/third_party/pffft/src/pffft.c on line 154. Just make the #elif fail somehow and it'll compile :slightly_smiling_face:

Not sure what's wise though, with regard to performance: disable Neon or downgrade to 32 bits with ARMv7. :man_shrugging: