mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.37k stars 1.12k forks source link

Compiling latest 1.4 version OPUS errors #5262

Closed krutzy62 closed 3 years ago

krutzy62 commented 3 years ago

When I compile on a Pi4, using cmake 3.21.2 I am getting errors. After downloading mumble and then going into the mumble directory I then do

git submodule init
git submodule update

Create a build directory then proceed with the cmake (cmake .. -Dspeechd=OFF -Dplugins=OFF) I get the warnings:

  CMake Warning at src/mumble/CMakeLists.txt:458 (message):
    libsndfile is missing Opus-support -> No Opus-format recording

Followed by all of this:

-- The following features have been disabled:

 * OPUS_BUILD_TESTING, build tests.
 * OPUS_CUSTOM_MODES, enable non-Opus modes, e.g. 44.1 kHz & 2^n frames.
 * OPUS_BUILD_PROGRAMS, build programs.
 * OPUS_DISABLE_INTRINSICS, disable all intrinsics optimizations.
 * OPUS_FIXED_POINT, compile as fixed-point (for machines without a fast enough FPU).
 * OPUS_FLOAT_APPROX, enable floating point approximations (Ensure your platform supports IEEE 754 before enabling).
 * OPUS_ASSERTIONS, additional software error checking.
 * OPUS_FUZZING, causes the encoder to make random decisions (do not use in production).
 * OPUS_CHECK_ASM, enable bit-exactness checks between optimized and c implementations.
 * OPUS_FIXED_POINT_DEBUG, debug fixed-point implementation.
 * OPUS_USE_ALLOCA, use alloca for stack arrays (on non-C99 compilers).
 * OPUS_NONTHREADSAFE_PSEUDOSTACK, use a non threadsafe pseudostack when neither variable length arrays or alloca is supported.
 * OPUS_FAST_MATH, enable fast math (unsupported and discouraged use, as code is not well tested with this build option).

-- OPUS_MAY_HAVE_NEON enabling runtime detection
-- Disabling warnings for targets: opus
INSTALL TARGETS - target opus has PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION.
-- Disabling warnings for targets: celt
-- Disabling warnings for targets: speex
-- Disabling warnings for targets: rnnoise
-- Qt5 component found: DBus | Version: 5.11.3
-- Qt5 component found: LinguistTools | Version: 5.11.3
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/mumble/build

Of course the make step fails with a bunch of these:

In file included from /home/pi/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/home/pi/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c: In function ‘xcorr_kernel_neon_float’:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘vdupq_n_f32’: target specific option mismatch
 vdupq_n_f32 (float32_t __a)
 ^~~~~~~~~~~
/home/pi/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:118:11: note: called from here
    SUMM = vdupq_n_f32(0);
           ^~~~~~~~~~~~~~

Obviously something is missing. Any help?

Kevin

Krzmbrzl commented 3 years ago

The warning you are seeing is not related to the error. To me it seems that Opus does not build on your Raspberry. From a first glance this seems like it is unrelated to how we actually make use of Opus :thinking:

Have you tried cloning the Opus repo directly and building that separately? If that works without errors then the issue is on our side, otherwise it's up to Opus to support your build env :eyes:

krutzy62 commented 3 years ago

Robert,

Thank you for that information. I will dig into that side a little deeper.

Kevin

krutzy62 commented 3 years ago

A follow up. I had a previous build of 1.4 specifically 1.4.0 from what looks like April of this year. I redid the cmake and make steps with no significant errors. So something changed between then or now that I am missing.

The previous version prerequisite of libsndfile1-dev. I don't know if there are other or updated prerequisites or not.

If there are please let me know.

davidebeatrici commented 3 years ago

We updated the Opus submodule: #5229

krutzy62 commented 3 years ago

Great! Thank you very much.

krutzy62 commented 3 years ago

So from what I see I have download the git from https://gitlab.xiph.org/xiph/opus.git and make that myself? Sorry if that sounds a little dumb.

Krzmbrzl commented 3 years ago

Yes exactly

krutzy62 commented 3 years ago

Ok I was able to compile opus fine. It did get rid of the opus messages. But I am still getting these neon errors.

In file included from /home/pi/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/home/pi/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c: In function ‘xcorr_kernel_neon_float’:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘vdupq_n_f32’: target specific option mismatch
 vdupq_n_f32 (float32_t __a)
 ^~~~~~~~~~~
/home/pi/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:118:11: note: called from here
    SUMM = vdupq_n_f32(0);
           ^~~~~~~~~~~~~~

So is there another library I need to compile as well?

davidebeatrici commented 3 years ago

xiph/opus#203

krutzy62 commented 3 years ago

So it won't compile yet on the raspberry pi 4 which is what I am using.

Thank you for that. Hope that gets resolved.

davidebeatrici commented 3 years ago

There's a workaround: pass -DOPUS_DISABLE_INTRINSICS=ON to CMake.

krutzy62 commented 3 years ago

Oh ok – thank you!

krutzy62 commented 3 years ago

Well that helped! I am not that versed in that I don't know what turning things on and off do.

I almost got there when I ran into these errors. So something is still missing. Do in need to figure install a different libsndfile and does this error cause the ogg errors too?

So close got to 93% in the make step after cmake. Thanks for the help.

/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `sf_flac_meta_get_vorbiscomments':
flac.c:(.text+0x1074): undefined reference to `FLAC__metadata_object_vorbiscomment_find_entry_from'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `sf_flac_error_callback':
flac.c:(.text+0x158c): undefined reference to `FLAC__StreamDecoderErrorStatusString'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_write_strings':
flac.c:(.text+0x1780): undefined reference to `FLAC__metadata_object_new'
/usr/bin/ld: flac.c:(.text+0x18f8): undefined reference to `FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair'
/usr/bin/ld: flac.c:(.text+0x1910): undefined reference to `FLAC__metadata_object_vorbiscomment_append_comment'
/usr/bin/ld: flac.c:(.text+0x197c): undefined reference to `FLAC__stream_encoder_set_metadata'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_write_header':
flac.c:(.text+0x1a40): undefined reference to `FLAC__stream_encoder_init_stream'
/usr/bin/ld: flac.c:(.text+0x1b00): undefined reference to `FLAC__StreamEncoderInitStatusString'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_close':
flac.c:(.text+0x1d84): undefined reference to `FLAC__metadata_object_delete'
/usr/bin/ld: flac.c:(.text+0x1da8): undefined reference to `FLAC__stream_encoder_finish'
/usr/bin/ld: flac.c:(.text+0x1db8): undefined reference to `FLAC__stream_encoder_delete'
/usr/bin/ld: flac.c:(.text+0x1dec): undefined reference to `FLAC__stream_decoder_finish'
/usr/bin/ld: flac.c:(.text+0x1dfc): undefined reference to `FLAC__stream_decoder_delete'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_enc_init':
flac.c:(.text+0x1f6c): undefined reference to `FLAC__stream_encoder_delete'
/usr/bin/ld: flac.c:(.text+0x1f70): undefined reference to `FLAC__stream_encoder_new'
/usr/bin/ld: flac.c:(.text+0x1fb4): undefined reference to `FLAC__stream_encoder_set_channels'
/usr/bin/ld: flac.c:(.text+0x2004): undefined reference to `FLAC__stream_encoder_set_sample_rate'
/usr/bin/ld: flac.c:(.text+0x2048): undefined reference to `FLAC__stream_encoder_set_bits_per_sample'
/usr/bin/ld: flac.c:(.text+0x2088): undefined reference to `FLAC__stream_encoder_set_compression_level'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_read_header':
flac.c:(.text+0x2134): undefined reference to `FLAC__stream_decoder_delete'
/usr/bin/ld: flac.c:(.text+0x2138): undefined reference to `FLAC__stream_decoder_new'
/usr/bin/ld: flac.c:(.text+0x216c): undefined reference to `FLAC__stream_decoder_set_metadata_respond_all'
/usr/bin/ld: flac.c:(.text+0x21b4): undefined reference to `FLAC__stream_decoder_init_stream'
/usr/bin/ld: flac.c:(.text+0x21d8): undefined reference to `FLAC__stream_decoder_process_until_end_of_metadata'
/usr/bin/ld: flac.c:(.text+0x2208): undefined reference to `FLAC__stream_decoder_delete'
/usr/bin/ld: flac.c:(.text+0x2224): undefined reference to `FLAC__stream_decoder_get_decode_position'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_read_loop':
flac.c:(.text+0x2610): undefined reference to `FLAC__stream_decoder_get_state'
/usr/bin/ld: flac.c:(.text+0x2690): undefined reference to `FLAC__stream_decoder_process_single'
/usr/bin/ld: flac.c:(.text+0x26ac): undefined reference to `FLAC__stream_decoder_get_state'
/usr/bin/ld: flac.c:(.text+0x272c): undefined reference to `FLAC__StreamDecoderStateString'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_write_s2flac':
flac.c:(.text+0x2c98): undefined reference to `FLAC__stream_encoder_process_interleaved'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_write_i2flac':
flac.c:(.text+0x2e8c): undefined reference to `FLAC__stream_encoder_process_interleaved'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_write_f2flac':
flac.c:(.text+0x30e0): undefined reference to `FLAC__stream_encoder_process_interleaved'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_write_d2flac':
flac.c:(.text+0x3700): undefined reference to `FLAC__stream_encoder_process_interleaved'
/usr/bin/ld: /usr/local/lib/libsndfile.a(flac.c.o): in function `flac_seek':
flac.c:(.text+0x3c68): undefined reference to `FLAC__stream_decoder_seek_absolute'
/usr/bin/ld: /usr/local/lib/libsndfile.a(ogg.c.o): in function `ogg_read_first_page':
ogg.c:(.text+0x6c): undefined reference to `ogg_sync_buffer'
/usr/bin/ld: ogg.c:(.text+0xb4): undefined reference to `ogg_sync_wrote'
/usr/bin/ld: ogg.c:(.text+0x164): undefined reference to `ogg_page_bos'
davidebeatrici commented 3 years ago

Try to link manually to the FLAC and OGG libraries by appending to src/mumble/CMakeLists.txt:

target_link_libraries(mumble PRIVATE "-lFLAC" "-logg")
krutzy62 commented 3 years ago

Well I appended that line to the file you indicated. Same errors. I am attaching the entire build so you might examine the warnings that occurred before the errors. Hopefully I am helping you as much as you are helping. Thank you all.

mumble compile errors.txt

Krzmbrzl commented 3 years ago

Okay so first of all regarding all these warnings telling you something has changed in GCC 7.1: See https://stackoverflow.com/questions/48149323/what-does-the-gcc-warning-project-parameter-passing-for-x-changed-in-gcc-7-1-m

Therefore the first thing I would try to figure out is whether the libraries that are producing link errors (especially libsndfile) have been built with an earlier GCC version.

Otherwise it seems to me as if somehow the libsndfile static library on your system is broken since it's missing all these components. Afaik these components are supposed to be included in it :thinking:

krutzy62 commented 3 years ago

Robert understood. I will investigate and get back to you.

PianetaRadio commented 3 years ago

Same issue for my RPi4:

make[2]: *** [src/mumble/opus/CMakeFiles/opus.dir/build.make:1876: src/mumble/opus/CMakeFiles/opus.dir/celt/arm/celt_neon_intr.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:356: src/mumble/opus/CMakeFiles/opus.dir/all] Error 2
krutzy62 commented 3 years ago

I did some research and it leaves me more puzzled. "Libsndfile didn't exist since I had the error CMake Warning at src/mumble/CMakeLists.txt:458 (message): libsnfile is missing Opus-support -> No Opus-format recording" so I built libsndfile myself using version 1.0.31. Not saying I built it correctly.

I uninstalled the version of libsndfile I built. I am getting the "No Opus-format" warning again in the cmake step, (flag is still off) I am not getting the libsndfile compatibility error, but still failing at the start of the linking. (I still have the line instructed in the mumble/src/CMakeLists. I have attached the last half of the make step.

link errors.txt

Krzmbrzl commented 3 years ago

Libsndfile didn't exist since I had the error CMake Warning at src/mumble/CMakeLists.txt:458 (message): libsnfile is missing Opus-support -> No Opus-format recording

Uhm no. The warning is telling you that your libsndfile version (which has been found) is not recent enough to support the Opus codec. This is only relevant for the brand new feature of being able to record audio and save it in Opus format.

This is unrelated to Opus being used as the voice codec within Mumble. For that we explicitly include the Opus library itself.

"No Opus-format" warning again in the cmake step, (flag is still off)

What flag?

not getting the libsndfile compatibility error

What error?

For the linker errors maybe this help: https://stackoverflow.com/q/21973748/3907364

Also have you tried completely deleting your build directory and restart the build from scratch? Sometimes cmake has a tendency to cache things one wants to change...

davidebeatrici commented 3 years ago

Uhm no. The warning is telling you that your libsndfile version (which has been found) is not recent enough to support the Opus codec.

It's actually a compile-time option: https://github.com/libsndfile/libsndfile/blob/f65e8bc9d1f880e0834ceb7aa10738ba6de891ee/CMakeLists.txt#L80

Assuming Raspbian is the distribution that is being used, libsndfile should be compiled with Opus support: https://packages.debian.org/bullseye/libsndfile1

Krzmbrzl commented 3 years ago

What I was also wondering: If you are performing a regular build of Mumble (not static), why is the static library of libsndfile linked? As I see it, it should instead use the shared library. Maybe this is the underlying error here?

krutzy62 commented 3 years ago

Ok I will try to answer these all. As for the "flag" early it was suggested to all -DOPUS_DISABLE_INTRINSICS=ON when I made the build.

When building it, these are the steps I am using, whether it is regular or static I don't know.

cmake .. -Dspeechd=OFF -Dplugins=OFF -DOPUS_DISABLE_INTRINSICS=ON
make 

As for the dependencies installed it appears using find /usr/ -name [lib prefix] they are all installed. What versions are installed, I don't know. I can say I using the Buster version of rasbian. Please understand, I am an old coder, but not in the linux world. I have gotten better but at my age understanding the intricacies of all this - I am not there. I appreciate the assistance in trying to nail down the issue.

Krzmbrzl commented 3 years ago

Could you list the output of find -type f -iname "*sndfile*" I'm curious to see whether you also have the shared library installed

krutzy62 commented 3 years ago

Sure! I had do delete my source and build of libsndfile-1.0.31 out because that showed everything in the build.

What the result is:

./Downloads/libsndfile-1.0.31.tar.bz2
./mumble4/3rdPartyLicenses/libsndfile_license.txt
./mumble/3rdPartyLicenses/libsndfile_license.txt
krutzy62 commented 3 years ago

Given the question should there be a result for libsndfile? If I try to do just a plain sudo apt install libsndfile I get Unable to locate package libsndfile. Is that to be expected? Just trying to figure out what is suppose to be installed and give it another try.

davidebeatrici commented 3 years ago

The name is libsndfile1, the development package is libsndfile1-dev.

krutzy62 commented 3 years ago

My system says they both are already installed and up to date. Both are version 1.0.28-6+deb10u1. Is that the required release or does it need to be a newer version?

Krzmbrzl commented 3 years ago

Could you list the output of find -type f -iname "sndfile"

Whoopsie I forgot the important bits - the command should be find /usr/ -type f -iname "*sndfile*"

ve9gj commented 3 years ago

Also failing to build here with Raspbian Buster on a pi4 I know just enough about autotools to be dangerous and even less about cmake! opus will build with autotools but not cmake

What I have tried after git clone

git submodule init
git submodule update
cd 3rdparty/opus

This works: (autotools) with only 1 warning warning and no errors

./autogen.sh
./configure
make

but this does not (cmake)

mkdir build
cd build
~/src/mumble/3rdparty/opus/build $ cmake ..
-- Found Git: /usr/bin/git (found version "2.20.1")
-- Opus package version from git repo: 1.3.1-97-g6b6035ae
-- Opus project version: 1.3.1
-- The C compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Setting build type to 'Release' as none was specified and no CFLAGS was exported.
-- Looking for floor in m
-- Looking for floor in m - found
-- Performing Test VLA_SUPPORTED
-- Performing Test VLA_SUPPORTED -- success
-- Looking for alloca.h
-- Looking for alloca.h - found
-- Looking for alloca
-- Looking for alloca - found
-- Looking for lrintf
-- Looking for lrintf - not found
-- Looking for lrint
-- Looking for lrint - not found
-- Looking for cpuid.h
-- Looking for cpuid.h - not found
-- Check NEON support by compiler
-- Looking for arm_neon.h
-- Looking for arm_neon.h - found
-- Performing Test FAST_MATH_SUPPORTED
-- Performing Test FAST_MATH_SUPPORTED - Success
-- Performing Test STACK_PROTECTOR_SUPPORTED
-- Performing Test STACK_PROTECTOR_SUPPORTED - Success
-- Performing Test HIDDEN_VISIBILITY_SUPPORTED
-- Performing Test HIDDEN_VISIBILITY_SUPPORTED - Success
-- Performing Test Wall_SUPPORTED
-- Performing Test Wall_SUPPORTED - Success
-- Performing Test W_SUPPORTED
-- Performing Test W_SUPPORTED - Success
-- Performing Test Wstrictprototypes_SUPPORTED
-- Performing Test Wstrictprototypes_SUPPORTED - Success
-- Performing Test Wextra_SUPPORTED
-- Performing Test Wextra_SUPPORTED - Success
-- Performing Test Wcastalign_SUPPORTED
-- Performing Test Wcastalign_SUPPORTED - Success
-- Performing Test Wnestedexterns_SUPPORTED
-- Performing Test Wnestedexterns_SUPPORTED - Success
-- Performing Test Wshadow_SUPPORTED
-- Performing Test Wshadow_SUPPORTED - Success
-- The following features have been enabled:

 * OPUS_ENABLE_FLOAT_API, compile with the floating point API (for machines with float library).
 * OPUS_HARDENING, run-time checks that are cheap and safe for use in production.
 * OPUS_INSTALL_PKG_CONFIG_MODULE, install pkg-config module.
 * OPUS_INSTALL_CMAKE_CONFIG_MODULE, install CMake package config module.
 * OPUS_VAR_ARRAYS, use variable length arrays for stack arrays.
 * OPUS_STACK_PROTECTOR, use stack protection.
 * OPUS_FORTIFY_SOURCE, add protection against buffer overflows.

-- The following OPTIONAL packages have been found:

 * Git

-- The following features have been disabled:

 * OPUS_BUILD_SHARED_LIBRARY, build shared library.
 * OPUS_BUILD_TESTING, build tests.
 * OPUS_CUSTOM_MODES, enable non-Opus modes, e.g. 44.1 kHz & 2^n frames.
 * OPUS_BUILD_PROGRAMS, build programs.
 * OPUS_DISABLE_INTRINSICS, disable all intrinsics optimizations.
 * OPUS_FIXED_POINT, compile as fixed-point (for machines without a fast enough FPU).
 * OPUS_FLOAT_APPROX, enable floating point approximations (Ensure your platform supports IEEE 754 before enabling).
 * OPUS_ASSERTIONS, additional software error checking.
 * OPUS_FUZZING, causes the encoder to make random decisions (do not use in production).
 * OPUS_CHECK_ASM, enable bit-exactness checks between optimized and c implementations.
 * OPUS_FIXED_POINT_DEBUG, debug fixed-point implementation.
 * OPUS_USE_ALLOCA, use alloca for stack arrays (on non-C99 compilers).
 * OPUS_NONTHREADSAFE_PSEUDOSTACK, use a non threadsafe pseudostack when neither variable length arrays or alloca is supported.
 * OPUS_FAST_MATH, enable fast math (unsupported and discouraged use, as code is not well tested with this build option).

-- OPUS_MAY_HAVE_NEON enabling runtime detection
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/src/mumble/3rdparty/opus/build

make fails

[ 95%] Building C object CMakeFiles/opus.dir/celt/arm/celt_neon_intr.c.o
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c: In function ‘xcorr_kernel_neon_float’:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6740:1: error: inlining failed in call to always_inline ‘vdupq_n_f32’: target specific option mismatch
 vdupq_n_f32 (float32_t __a)
 ^~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:118:11: note: called from here
    SUMM = vdupq_n_f32(0);
           ^~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:117:12: note: called from here
    YY[0] = vld1q_f32(yi);
            ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:151:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[2], vget_high_f32(XX[1]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7267:1: error: inlining failed in call to always_inline ‘vget_high_f3 ’: target specific option mismatch
 vget_high_f32 (float32x4_t __a)
 ^~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:151:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[2], vget_high_f32(XX[1]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:150:17: note: called from here
       YEXT[2] = vextq_f32(YY[1], YY[2], 3);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:149:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[1], vget_high_f32(XX[1]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7267:1: error: inlining failed in call to always_inline ‘vget_high_f3 ’: target specific option mismatch
 vget_high_f32 (float32x4_t __a)
 ^~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:149:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[1], vget_high_f32(XX[1]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:148:17: note: called from here
       YEXT[1] = vextq_f32(YY[1], YY[2], 2);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:147:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[0], vget_low_f32(XX[1]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7346:1: error: inlining failed in call to always_inline ‘vget_low_f32’: target specific option mismatch
 vget_low_f32 (float32x4_t __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:147:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[0], vget_low_f32(XX[1]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:146:17: note: called from here
       YEXT[0] = vextq_f32(YY[1], YY[2], 1);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:145:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[1], vget_low_f32(XX[1]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7346:1: error: inlining failed in call to always_inline ‘vget_low_f32’: target specific option mismatch
 vget_low_f32 (float32x4_t __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:145:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[1], vget_low_f32(XX[1]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:143:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[2], vget_high_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7267:1: error: inlining failed in call to always_inline ‘vget_high_f3 ’: target specific option mismatch
 vget_high_f32 (float32x4_t __a)
 ^~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:143:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[2], vget_high_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:142:17: note: called from here
       YEXT[2] = vextq_f32(YY[0], YY[1], 3);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:141:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[1], vget_high_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7267:1: error: inlining failed in call to always_inline ‘vget_high_f3 ’: target specific option mismatch
 vget_high_f32 (float32x4_t __a)
 ^~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:141:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[1], vget_high_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:140:17: note: called from here
       YEXT[1] = vextq_f32(YY[0], YY[1], 2);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:139:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[0], vget_low_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7346:1: error: inlining failed in call to always_inline ‘vget_low_f32’: target specific option mismatch
 vget_low_f32 (float32x4_t __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:139:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[0], vget_low_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:138:17: note: called from here
       YEXT[0] = vextq_f32(YY[0], YY[1], 1);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:137:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[0], vget_low_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7346:1: error: inlining failed in call to always_inline ‘vget_low_f32’: target specific option mismatch
 vget_low_f32 (float32x4_t __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:137:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[0], vget_low_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:134:15: note: called from here
       XX[1] = vld1q_f32(xi);
               ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:132:15: note: called from here
       XX[0] = vld1q_f32(xi);
               ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:130:15: note: called from here
       YY[2] = vld1q_f32(yi);
               ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:128:15: note: called from here
       YY[1] = vld1q_f32(yi);
               ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:176:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[2], vget_high_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7267:1: error: inlining failed in call to always_inline ‘vget_high_f3 ’: target specific option mismatch
 vget_high_f32 (float32x4_t __a)
 ^~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:176:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[2], vget_high_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:175:17: note: called from here
       YEXT[2] = vextq_f32(YY[0], YY[1], 3);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:174:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[1], vget_high_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7267:1: error: inlining failed in call to always_inline ‘vget_high_f3 ’: target specific option mismatch
 vget_high_f32 (float32x4_t __a)
 ^~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:174:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[1], vget_high_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:173:17: note: called from here
       YEXT[1] = vextq_f32(YY[0], YY[1], 2);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:172:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[0], vget_low_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7346:1: error: inlining failed in call to always_inline ‘vget_low_f32’: target specific option mismatch
 vget_low_f32 (float32x4_t __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:172:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YEXT[0], vget_low_f32(XX[0]), 1);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:8845:1: error: inlining failed in call to always_inline ‘vextq_f32’: target specific option mismatch
 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:171:17: note: called from here
       YEXT[0] = vextq_f32(YY[0], YY[1], 1);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:170:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[0], vget_low_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7346:1: error: inlining failed in call to always_inline ‘vget_low_f32’: target specific option mismatch
 vget_low_f32 (float32x4_t __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:170:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[0], vget_low_f32(XX[0]), 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:167:15: note: called from here
       XX[0] = vld1q_f32(xi);
               ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:165:15: note: called from here
       YY[1] = vld1q_f32(yi);
               ^~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10392:1: error: inlining failed in call to always_inline ‘vld1q_f32’: target specific option mismatch
 vld1q_f32 (const float32_t * __a)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:185:14: note: called from here
       YY[0]= vld1q_f32(++yi);
              ^~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:184:14: note: called from here
       SUMM = vmlaq_lane_f32(SUMM, YY[0], XX_2, 0);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10664:1: error: inlining failed in call to always_inline ‘vld1_dup_f3 ’: target specific option mismatch
 vld1_dup_f32 (const float32_t * __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:183:14: note: called from here
       XX_2 = vld1_dup_f32(xi++);
              ^~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10970:1: error: inlining failed in call to always_inline ‘vst1q_f32’: target specific option mismatch
 vst1q_f32 (float32_t * __a, float32x4_t __b)
 ^~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:191:4: note: called from here
    vst1q_f32(sum, SUMM);
    ^~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:7997:1: error: inlining failed in call to always_inline ‘vmlaq_lane_f32’: target specific option mismatch
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d)
 ^~~~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:189:11: note: called from here
    SUMM = vmlaq_lane_f32(SUMM, YY[0], XX_2, 0);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:37:
/usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10664:1: error: inlining failed in call to always_inline ‘vld1_dup_f3 ’: target specific option mismatch
 vld1_dup_f32 (const float32_t * __a)
 ^~~~~~~~~~~~
/home/pi/src/mumble/3rdparty/opus/celt/arm/celt_neon_intr.c:188:11: note: called from here
    XX_2 = vld1_dup_f32(xi);
           ^~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/opus.dir/build.make:1857: CMakeFiles/opus.dir/celt/arm/celt_neon_intr.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/opus.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
krutzy62 commented 3 years ago

Robert,

Sure! Funny, that is a typo I would make. Here it is:

***@***.***:~ $ find /usr/ -type f -iname "*sndfile*"
/usr/local/lib/cmake/SndFile/SndFileConfigVersion.cmake
/usr/local/lib/cmake/SndFile/SndFileConfig.cmake
/usr/local/lib/cmake/SndFile/SndFileTargets.cmake
/usr/local/lib/cmake/SndFile/SndFileTargets-noconfig.cmake
/usr/local/lib/libsndfile.a
/usr/share/doc/libsamplerate0-dev/examples/sndfile-resample.c.gz
/usr/share/doc/libsndfile1-dev/html/sndfile_info.html
/usr/share/doc/libsndfile1-dev/html/libsndfile.jpg
/usr/share/doc/libsndfile1-dev/html/libsndfile.css
/usr/share/doc/libsndfile1-dev/examples/sndfile-to-text.c
/usr/share/doc/libsndfile1-dev/examples/sndfile-loopify.c
/usr/share/fpcsrc/3.0.4/packages/sndfile/src/sndfile.pp
/usr/share/doc-base/libsndfile
/usr/include/sndfile.h
/usr/include/libmodplug/sndfile.h
/usr/include/sndfile.hh
/usr/lib/arm-linux-gnueabihf/pkgconfig/sndfile.pc
/usr/lib/arm-linux-gnueabihf/libsndfile.so.1.0.28
/usr/lib/arm-linux-gnueabihf/libsndfile.a
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstsndfile.so
krutzy62 commented 3 years ago

Glenn, Not sure what you are saying but I am assuming that your

./autogen.sh
./configure
make

in the opus directory builds opus ok but then the entire build does not.

Just to add additional information I am using cmake version 3.21.2.

Krzmbrzl commented 3 years ago

@ve9gj I assume you are missing the -DOPUS_DISABLE_INTRINSICS=ON switch when invoking cmake.

@krutzy62 okay then furthermore the outputs of these commands would be interesting: find /usr/lib/ -type f -iname "*flac*" find /usr/lib/ -type f -iname "*ogg*"

krutzy62 commented 3 years ago

No. I am running the cmake with -DOPUS_DISABLE_INTRINSICS=ON

Results of the first find:

pi@rigpi2:~ $ find /usr/lib/ -type f -iname "*flac*"
/usr/lib/arm-linux-gnueabihf/libFLAC++.so.6.3.0
/usr/lib/arm-linux-gnueabihf/pkgconfig/flac.pc
/usr/lib/arm-linux-gnueabihf/libFLAC.a
/usr/lib/arm-linux-gnueabihf/libFLAC.so.8.3.0
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstflac.so

Results of the second find unfortunately pics up a lot of "logger" files too:

pi@rigpi2:~ $ find /usr/lib/ -type f -iname "*ogg*"
/usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qml
/usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick/Controls/Styles/Base/ToggleButtonStyle.qmlc
/usr/lib/arm-linux-gnueabihf/pkgconfig/ogg.pc
/usr/lib/arm-linux-gnueabihf/openmpi/include/openmpi/oshmem/shmem/shmem_api_logger.h
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/fpmkinst/arm-linux/oggvorbis.fpm
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/oggvorbis/ogg.o
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/oggvorbis/ogg.ppu
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/googleapi/googleblogger.ppu
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/googleapi/googlelogging.ppu
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/googleapi/googleblogger.o
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/googleapi/googlelogging.o
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/sdl/logger.o
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/sdl/logger.ppu
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/fcl-sdo/sdo_logger_intf.o
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/fcl-sdo/sdo_logger_intf.ppu
/usr/lib/arm-linux-gnueabihf/libogg.a
/usr/lib/arm-linux-gnueabihf/libogg.so.0.8.2
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstogg.so
/usr/lib/libalogg.so.1.3.7
/usr/lib/ruby/vendor_ruby/vim/addon_manager/logger.rb
/usr/lib/ruby/2.5.0/logger.rb
/usr/lib/ruby/2.5.0/syslog/logger.rb
/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png
/usr/lib/ruby/2.5.0/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png
/usr/lib/python3/dist-packages/thonny/plugins/event_logging.py
/usr/lib/python3/dist-packages/thonny/plugins/__pycache__/event_logging.cpython-37.pyc
/usr/lib/python3/dist-packages/reportlab/lib/__pycache__/logger.cpython-37.pyc
/usr/lib/python3/dist-packages/reportlab/lib/logger.py
/usr/lib/python3/dist-packages/IPython/core/__pycache__/logger.cpython-37.pyc
/usr/lib/python3/dist-packages/IPython/core/magics/logging.py
/usr/lib/python3/dist-packages/IPython/core/magics/__pycache__/logging.cpython-37.pyc
/usr/lib/python3/dist-packages/IPython/core/logger.py
/usr/lib/python3/dist-packages/pylint/checkers/logging.py
/usr/lib/python3/dist-packages/pylint/checkers/__pycache__/logging.cpython-37.pyc
/usr/lib/python3/dist-packages/pylint/test/input/func_logging_not_lazy_with_logger.py
/usr/lib/python3/dist-packages/pylint/test/functional/logging_format_interpolation_py36.rc
/usr/lib/python3/dist-packages/pylint/test/functional/logging_format_interpolation.py
/usr/lib/python3/dist-packages/pylint/test/functional/logging_fstring_interpolation_py36.txt
/usr/lib/python3/dist-packages/pylint/test/functional/logging_format_interpolation.txt
/usr/lib/python3/dist-packages/pylint/test/functional/logging_fstring_interpolation_py36.py
/usr/lib/python3/dist-packages/pylint/test/functional/logging_fstring_interpolation_py36.rc
/usr/lib/python3/dist-packages/pylint/test/functional/logging_format_interpolation_py36.txt
/usr/lib/python3/dist-packages/pylint/test/functional/logging_not_lazy.py
/usr/lib/python3/dist-packages/pylint/test/functional/logging_not_lazy.txt
/usr/lib/python3/dist-packages/pylint/test/functional/logging_format_interpolation_py36.py
/usr/lib/python3/dist-packages/pylint/test/unittest_checker_logging.py
/usr/lib/python3/dist-packages/pylint/test/messages/func_logging_not_lazy_with_logger.txt
/usr/lib/python3/dist-packages/flask/logging.py
/usr/lib/python3/dist-packages/flask/__pycache__/logging.cpython-37.pyc
/usr/lib/python3/dist-packages/mypy/typeshed/third_party/2and3/flask/logging.pyi
/usr/lib/python3/dist-packages/mypy/typeshed/third_party/2and3/boto/s3/bucketlogging.pyi
/usr/lib/python3/dist-packages/mypy/gclogger.py
/usr/lib/python3/dist-packages/mypy/__pycache__/gclogger.cpython-37.pyc
/usr/lib/python3/dist-packages/devscripts/__pycache__/logger.cpython-37.pyc
/usr/lib/python3/dist-packages/devscripts/test/test_logger.py
/usr/lib/python3/dist-packages/devscripts/logger.py
/usr/lib/python3/dist-packages/pip/_internal/utils/logging.py
/usr/lib/python3/dist-packages/pip/_internal/utils/__pycache__/logging.cpython-37.pyc
/usr/lib/python3/dist-packages/logilab/common/logging_ext.py
/usr/lib/python3/dist-packages/logilab/common/__pycache__/logging_ext.cpython-37.pyc
/usr/lib/jvm/java-11-openjdk-armhf/jmods/java.logging.jmod
/usr/lib/lazarus/2.0.0/packager/globallinks/idelazlogger-1.lpl
/usr/lib/lazarus/2.0.0/components/lazdebuggers/lazdebugtestbase/testoutputlogger.pas
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/idelazlogger.pas
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/idelogger.pas
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/idelogger.lfm
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/idelazlogger.lpk
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.ru.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.es.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.lt.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.uk.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.pt_BR.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.pl.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.zh_CN.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.hu.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.fr.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.cs.po
/usr/lib/lazarus/2.0.0/components/IdeLazLogger/languages/idelogger.it.po
/usr/lib/lazarus/2.0.0/components/lazutils/LazLoggerImpl.inc
/usr/lib/lazarus/2.0.0/components/lazutils/lazlogger.pas
/usr/lib/lazarus/2.0.0/components/lazutils/LazLoggerIntf.inc
/usr/lib/lazarus/2.0.0/components/lazutils/lazloggerdummy.pas
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazloggerprofiling.ppu
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazlogger.ppu
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazloggerbase.ppu
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazlogger.o
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazloggerprofiling.o
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazloggerdummy.ppu
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazloggerbase.o
/usr/lib/lazarus/2.0.0/components/lazutils/lib/arm-linux/lazloggerdummy.o
/usr/lib/lazarus/2.0.0/components/lazutils/lazloggerprofiling.pas
/usr/lib/lazarus/2.0.0/components/lazutils/lazloggerbase.pas
/usr/lib/lazarus/2.0.0/components/virtualtreeview/vtlogger.pas
/usr/lib/lazarus/2.0.0/lcl/include/togglebox.inc
/usr/lib/lazarus/2.0.0/test/lazutils/TestLazLogger.lpr
/usr/lib/lazarus/2.0.0/test/lazutils/testlazloggercase.pas
/usr/lib/python2.7/dist-packages/dbtexmf/core/logger.pyc
/usr/lib/python2.7/dist-packages/dbtexmf/core/logger.py
/usr/lib/python2.7/dist-packages/flask/logging.pyc
/usr/lib/python2.7/dist-packages/flask/logging.py
/usr/lib/python2.7/dist-packages/scipy/special/_precompute/loggamma.py
/usr/lib/python2.7/dist-packages/scipy/special/_precompute/loggamma.pyc
/usr/lib/python2.7/dist-packages/scipy/special/tests/test_loggamma.py
/usr/lib/python2.7/dist-packages/scipy/special/tests/test_loggamma.pyc
/usr/lib/python2.7/dist-packages/pip/_internal/utils/logging.pyc
/usr/lib/python2.7/dist-packages/pip/_internal/utils/logging.py

I really appreciate your assistance!

ve9gj commented 3 years ago

This does build and runs successfully!

cmake -Dspeechd=OFF -Dplugins=OFF -DOPUS_DISABLE_INTRINSICS=ON ..

Thanks!

krutzy62 commented 3 years ago

Glenn, This worked for you? You put the flags before the ".." ?

krutzy62 commented 3 years ago

Well I tried the cmake as above and no difference (I didn't think it would). However I did notice a couple of lines that I have no idea if it helps in my case. They are from the cmake step which I entered cmake -Dspeechd=OFF -Dplugins=OFF -DOPUS_DISABLE_INTRINSICS=ON ... I put ** before them.

-- Detecting CXX compile features
-- Detecting CXX compile features - done
** -- Performing Test COMPILER_HAS_MBIG_OBJ
** -- Performing Test COMPILER_HAS_MBIG_OBJ - Failed
-- ##################################################
-- Mumble release ID:
-- Mumble version:          1.5.0.0
-- Architecture:            armv6
-- Build type:              Release
-- ##################################################
-- Qt5 component found: Core | Version: 5.11.3
-- Qt5 component found: Network | Version: 5.11.3
-- Qt5 component found: Xml | Version: 5.11.3
-- OpenSSL component found: Crypto | Version: 1.1.1d
-- OpenSSL component found: SSL | Version: 1.1.1d
-- Protobuf found | Version: 3.6.1
-- Qt5 component found: Concurrent | Version: 5.11.3
-- Qt5 component found: Sql | Version: 5.11.3
-- Qt5 component found: Svg | Version: 5.11.3
-- Qt5 component found: Widgets | Version: 5.11.3
-- Poco component found: Zip | Version: 1.9.0
-- sndfile found | Version: 1.0.28
**  CMake Warning at src/mumble/CMakeLists.txt:458 (message):
**    libsnfile is missing Opus-support -> No Opus-format recording
-- X11 component found: Xext
-- X11 component found: Xi
-- Found Git: /usr/bin/git (found version "2.20.1")
-- Opus package version from git repo: 1.3.1-97-g6b6035ae
-- Opus project version: 1.3.1
Krzmbrzl commented 3 years ago

@ve9gj Okay it seems libFLAC and libogg are installed. Then the final check would be vor libvorbis: find /usr/lib/ -type f -iname "*vorbis*"

@krutzy62 These messages should have nothing to do with the issue. The first one only tells you that there is a compiler (linker actually) option that is not used because it is not supported and the second one is telling you that your libsndfile library is too old to support the Opus file format and thus the feature to record to that file format will be disabled.

krutzy62 commented 3 years ago

I figured those messages mean that - like I said I am an old coder so I know a lot of them have bogus errors. Here is the result of the find:

/usr/lib/arm-linux-gnueabihf/libvorbis.a
/usr/lib/arm-linux-gnueabihf/pkgconfig/vorbisenc.pc
/usr/lib/arm-linux-gnueabihf/pkgconfig/vorbisfile.pc
/usr/lib/arm-linux-gnueabihf/pkgconfig/vorbis.pc
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/fpmkinst/arm-linux/oggvorbis.fpm
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/oggvorbis/vorbis.ppu
/usr/lib/arm-linux-gnueabihf/fpc/3.0.4/units/arm-linux/oggvorbis/vorbis.o
/usr/lib/arm-linux-gnueabihf/libvorbis.la
/usr/lib/arm-linux-gnueabihf/libvorbisfile.la
/usr/lib/arm-linux-gnueabihf/libvorbisfile.so.3.3.7
/usr/lib/arm-linux-gnueabihf/libvorbisenc.so.2.0.11
/usr/lib/arm-linux-gnueabihf/libvorbisenc.la
/usr/lib/arm-linux-gnueabihf/libvorbisenc.a
/usr/lib/arm-linux-gnueabihf/libvorbis.so.0.4.8
/usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstvorbis.so
/usr/lib/arm-linux-gnueabihf/libvorbisfile.a

Keep in mind this likely has to do with what changed in August. The mumble 4 prior to that compiled fine and runs well. So to me it has to do with that change (3rd Party)?

ve9gj commented 3 years ago

Yes

On September 16, 2021 11:02:53 PM ADT, krutzy62 @.***> wrote:

Glenn, This worked for you? You put the flags before the ".." ?

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/mumble-voip/mumble/issues/5262#issuecomment-921396225

krutzy62 commented 3 years ago

Do you know what CMAKE version you used? I am grasping for ideas. It has to be something stupid I am doing.

ve9gj commented 3 years ago

Not at home at the moment but I used cmake from apt (buster rasbian).

On September 17, 2021 4:37:05 PM ADT, krutzy62 @.***> wrote:

Do you know what CMAKE version you used? I am grasping for ideas. It has to be something stupid I am doing.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/mumble-voip/mumble/issues/5262#issuecomment-922035220

krutzy62 commented 3 years ago

OK Thanks.

krutzy62 commented 3 years ago

I did find something I think. I have Pi3 running one application and a remote Pi4 running another. So to compare I rebuilt the two at about the same time (+- 15 min). The Pi3 compile fine, actually linked fine. The Pi4 did not.

What I then did is compare the two terminal outputs looking for differences, from bottom to top. The only differences were actually in the git clone step.

Pi3

git clone https://github.com/mumble-voip/mumble.git
Cloning into 'mumble'...
remote: Enumerating objects: 71976, done.
remote: Counting objects: 100% (1794/1794), done.
remote: Compressing objects: 100% (689/689), done.
remote: Total 71976 (delta 1310), reused 1466 (delta 1105), pack-reused 70182
Receiving objects: 100% (71976/71976), 71.66 MiB | 1.94 MiB/s, done.
Resolving deltas: 100% (55929/55929), done.
Checking out files: 100% (1426/1426), done.

Pi4

git clone https://github.com/mumble-voip/mumble.git
Cloning into 'mumble'...
remote: Enumerating objects: 71976, done.
remote: Counting objects: 100% (1794/1794), done.
remote: Compressing objects: 100% (684/684), done.
remote: Total 71976 (delta 1308), reused 1475 (delta 1110), pack-reused 70182
Receiving objects: 100% (71976/71976), 72.52 MiB | 224.00 KiB/s, done.
Resolving deltas: 100% (55931/55931), done.

There is a difference of 5 between the two Compressing Objects, 3 in the Resolving Deltas. The biggest thing to me is that the Pi3 has "Checking out files". The Pi4 does not.

This is way above my skillset but those are the only two differences until until the linking, which tells me the build is not getting the files it wants to resolve the link to.

davidebeatrici commented 3 years ago

The changes in the output are due to a different Git version and connection speed.

krutzy62 commented 3 years ago

Thanks - it was a shot.

Krzmbrzl commented 3 years ago

Okay so on the RPi3 everything works as expected whereas on RPi4 tue linking errors occur? And both are using the latest master branch of Mumble upstream?

And also on the RPi4 you had Mumble compiling fine not too long ago?

In that case I suggest the following:

  1. Go into the Mumble dir on your RPi4
  2. git checkout a33fcec775d6817ff9d2dbf5b3f6e26627cccbdf
  3. rm -rf 3rdParty/opus
  4. git submodule update --init --recursive
  5. Try to perform a fresh build of Mumble

This uses the state of the code before we made changes to the Opus git submodule. If this build succeeds it really means that there was a regression between then and now. If the build fails just the same then we might have to go back even further or assume that the packages on your RPi4 broke in the meantime.

krutzy62 commented 3 years ago

I understand what you are doing here however for some reason step 4 is getting a fatal error.

pi@rigpi2:~ $ cd mumble
pi@rigpi2:~/mumble $ git checkout a33fcec775d6817ff9d2dbf5b3f6e26627cccbdf
M   3rdparty/opus
HEAD is now at a33fcec77 Merge PR #5227: MAINT(dockerfile): Pin base images to Ubuntu Focal (LTS)
pi@rigpi2:~/mumble $ rm -rf 3rdParty/opus
pi@rigpi2:~/mumble $ git submodule update --init --recursive
fatal: remote error: upload-pack: not our ref 296d213da679eea977a869583b59f1e5a51b9ff5
fatal: the remote end hung up unexpectedly
Fetched in submodule path '3rdparty/opus', but it did not contain 296d213da679eea977a869583b59f1e5a51b9ff5. Direct fetching of that commit failed.

I don't know what the issue is with the update - to me it is doing a compare with what is specified in the in the build. I built anyway with the following.

rm -rf build
mkdir build
pi@rigpi2:~/mumble $ cd build
pi@rigpi2:~/mumble/build $ cmake .. -Dspeechd=OFF -Dplugins=OFF -DOPUS_DISABLE_INTRINSICS=ON

Failed with the same link errors. Is there something missing in the step - an update list somewhere?

davidebeatrici commented 3 years ago

The error is because our fork of Opus does not exist anymore.

Could you check where the libsndfile1 package comes from?

krutzy62 commented 3 years ago

Is this what will tell you want to see:

Package: libsndfile1
Version: 1.0.28-6+deb10u1
Priority: optional
Section: libs
Source: libsndfile
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Installed-Size: 543 kB
Depends: libc6 (>= 2.4), libflac8 (>= 1.3.0), libogg0 (>= 1.0rc3), libvorbis0a (>= 1.2.3), libvorbisenc2 (>= 1.2.3)
Homepage: http://www.mega-nerd.com/libsndfile/
Download-Size: 238 kB
APT-Manual-Installed: no
APT-Sources: http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
Description: Library for reading/writing audio files
 libsndfile is a library of C routines for reading and writing files containing
 sampled audio data.
 .
 Various versions of WAV (integer, floating point, GSM, and compressed formats);
 Microsoft PCM, A-law and u-law formats; AIFF, AIFC and RIFX; various AU/SND
 formats (Sun/NeXT, Dec AU, G721 and G723 ADPCM); RAW header-less PCM files;
 Amiga IFF/8SVX/16SV PCM files; Ensoniq PARIS  (.PAF); Apple's Core Audio Format
 (CAF) and others.