opus
opus copied to clipboard
CMake configure fails on arm MacOs
If I try to configure using CMake on an arm Mac, then the configure will fail. The sequence is:
- OpusConfig.cmake will set OPUS_MAY_HAVE_NEON to ON.
- OpusFunctions.cmake will set RUNTIME_CPU_CAPABILITY_DETECTION to 0.
- CMakeLists.txt will complain that these are not compatible and fail with message(ERROR "Runtime cpu capability detection needed for MAY_HAVE_NEON")
cmake and make seems to work on Macbook M1 with macOS 13.7.8:
$ cmake .
-- Found Git: /opt/local/bin/git (found version "2.51.0")
fatal: No names found, cannot describe anything.
CMake Warning at cmake/OpusPackageVersion.cmake:61 (message):
Could not get package version.
Call Stack (most recent call first):
CMakeLists.txt:5 (get_package_version)
-- Opus project version: 0
-- The C compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Setting build type to 'Release' as none was specified and no CFLAGS was exported.
-- 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 floor in m
-- Looking for floor in m - found
-- Looking for lrintf
-- Looking for lrintf - found
-- Looking for lrint
-- Looking for lrint - found
-- Looking for elf_aux_info
-- Looking for elf_aux_info - 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_DNN_FLOAT_DEBUG, Run DNN computations as float for debugging purposes.
* OPUS_DRED, enable DRED.
* OPUS_OSCE, enable OSCE.
* OPUS_BUILD_FRAMEWORK, build Framework bundle for Apple systems.
* 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).
ERRORRuntime cpu capability detection needed for MAY_HAVE_NEON
-- Configuring done (2.9s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/alfredh/tmp/opus
$ make
[ 0%] Building C object CMakeFiles/opus.dir/src/opus.c.o
[ 1%] Building C object CMakeFiles/opus.dir/src/opus_decoder.c.o
[ 2%] Building C object CMakeFiles/opus.dir/src/opus_encoder.c.o
[ 2%] Building C object CMakeFiles/opus.dir/src/extensions.c.o
/Users/alfredh/tmp/opus/src/extensions.c:504:18: warning: variable 'trailing_short_len' set but not used [-Wunused-but-set-variable]
opus_int32 trailing_short_len;
^
1 warning generated.
[ 3%] Building C object CMakeFiles/opus.dir/src/opus_multistream.c.o
[ 4%] Building C object CMakeFiles/opus.dir/src/opus_multistream_encoder.c.o
[ 4%] Building C object CMakeFiles/opus.dir/src/opus_multistream_decoder.c.o
[ 5%] Building C object CMakeFiles/opus.dir/src/repacketizer.c.o
[ 6%] Building C object CMakeFiles/opus.dir/src/opus_projection_encoder.c.o
[ 6%] Building C object CMakeFiles/opus.dir/src/opus_projection_decoder.c.o
[ 7%] Building C object CMakeFiles/opus.dir/src/mapping_matrix.c.o
[ 8%] Building C object CMakeFiles/opus.dir/src/analysis.c.o
[ 9%] Building C object CMakeFiles/opus.dir/src/mlp.c.o
[ 9%] Building C object CMakeFiles/opus.dir/src/mlp_data.c.o
[ 10%] Building C object CMakeFiles/opus.dir/silk/CNG.c.o
[ 11%] Building C object CMakeFiles/opus.dir/silk/code_signs.c.o
[ 11%] Building C object CMakeFiles/opus.dir/silk/init_decoder.c.o
[ 12%] Building C object CMakeFiles/opus.dir/silk/decode_core.c.o
[ 13%] Building C object CMakeFiles/opus.dir/silk/decode_frame.c.o
[ 13%] Building C object CMakeFiles/opus.dir/silk/decode_parameters.c.o
[ 14%] Building C object CMakeFiles/opus.dir/silk/decode_indices.c.o
[ 15%] Building C object CMakeFiles/opus.dir/silk/decode_pulses.c.o
[ 15%] Building C object CMakeFiles/opus.dir/silk/decoder_set_fs.c.o
[ 16%] Building C object CMakeFiles/opus.dir/silk/dec_API.c.o
[ 17%] Building C object CMakeFiles/opus.dir/silk/enc_API.c.o
[ 18%] Building C object CMakeFiles/opus.dir/silk/encode_indices.c.o
[ 18%] Building C object CMakeFiles/opus.dir/silk/encode_pulses.c.o
[ 19%] Building C object CMakeFiles/opus.dir/silk/gain_quant.c.o
[ 20%] Building C object CMakeFiles/opus.dir/silk/interpolate.c.o
[ 20%] Building C object CMakeFiles/opus.dir/silk/LP_variable_cutoff.c.o
[ 21%] Building C object CMakeFiles/opus.dir/silk/NLSF_decode.c.o
[ 22%] Building C object CMakeFiles/opus.dir/silk/NSQ.c.o
[ 22%] Building C object CMakeFiles/opus.dir/silk/NSQ_del_dec.c.o
[ 23%] Building C object CMakeFiles/opus.dir/silk/PLC.c.o
[ 24%] Building C object CMakeFiles/opus.dir/silk/shell_coder.c.o
[ 25%] Building C object CMakeFiles/opus.dir/silk/tables_gain.c.o
[ 25%] Building C object CMakeFiles/opus.dir/silk/tables_LTP.c.o
[ 26%] Building C object CMakeFiles/opus.dir/silk/tables_NLSF_CB_NB_MB.c.o
[ 27%] Building C object CMakeFiles/opus.dir/silk/tables_NLSF_CB_WB.c.o
[ 27%] Building C object CMakeFiles/opus.dir/silk/tables_other.c.o
[ 28%] Building C object CMakeFiles/opus.dir/silk/tables_pitch_lag.c.o
[ 29%] Building C object CMakeFiles/opus.dir/silk/tables_pulses_per_block.c.o
[ 29%] Building C object CMakeFiles/opus.dir/silk/VAD.c.o
[ 30%] Building C object CMakeFiles/opus.dir/silk/control_audio_bandwidth.c.o
[ 31%] Building C object CMakeFiles/opus.dir/silk/quant_LTP_gains.c.o
[ 31%] Building C object CMakeFiles/opus.dir/silk/VQ_WMat_EC.c.o
[ 32%] Building C object CMakeFiles/opus.dir/silk/HP_variable_cutoff.c.o
[ 33%] Building C object CMakeFiles/opus.dir/silk/NLSF_encode.c.o
[ 34%] Building C object CMakeFiles/opus.dir/silk/NLSF_VQ.c.o
[ 34%] Building C object CMakeFiles/opus.dir/silk/NLSF_unpack.c.o
[ 35%] Building C object CMakeFiles/opus.dir/silk/NLSF_del_dec_quant.c.o
[ 36%] Building C object CMakeFiles/opus.dir/silk/process_NLSFs.c.o
[ 36%] Building C object CMakeFiles/opus.dir/silk/stereo_LR_to_MS.c.o
[ 37%] Building C object CMakeFiles/opus.dir/silk/stereo_MS_to_LR.c.o
[ 38%] Building C object CMakeFiles/opus.dir/silk/check_control_input.c.o
[ 38%] Building C object CMakeFiles/opus.dir/silk/control_SNR.c.o
[ 39%] Building C object CMakeFiles/opus.dir/silk/init_encoder.c.o
[ 40%] Building C object CMakeFiles/opus.dir/silk/control_codec.c.o
[ 40%] Building C object CMakeFiles/opus.dir/silk/A2NLSF.c.o
[ 41%] Building C object CMakeFiles/opus.dir/silk/ana_filt_bank_1.c.o
[ 42%] Building C object CMakeFiles/opus.dir/silk/biquad_alt.c.o
[ 43%] Building C object CMakeFiles/opus.dir/silk/bwexpander_32.c.o
[ 43%] Building C object CMakeFiles/opus.dir/silk/bwexpander.c.o
[ 44%] Building C object CMakeFiles/opus.dir/silk/debug.c.o
[ 45%] Building C object CMakeFiles/opus.dir/silk/decode_pitch.c.o
[ 45%] Building C object CMakeFiles/opus.dir/silk/inner_prod_aligned.c.o
[ 46%] Building C object CMakeFiles/opus.dir/silk/lin2log.c.o
[ 47%] Building C object CMakeFiles/opus.dir/silk/log2lin.c.o
[ 47%] Building C object CMakeFiles/opus.dir/silk/LPC_analysis_filter.c.o
[ 48%] Building C object CMakeFiles/opus.dir/silk/LPC_inv_pred_gain.c.o
[ 49%] Building C object CMakeFiles/opus.dir/silk/table_LSF_cos.c.o
[ 50%] Building C object CMakeFiles/opus.dir/silk/NLSF2A.c.o
[ 50%] Building C object CMakeFiles/opus.dir/silk/NLSF_stabilize.c.o
[ 51%] Building C object CMakeFiles/opus.dir/silk/NLSF_VQ_weights_laroia.c.o
[ 52%] Building C object CMakeFiles/opus.dir/silk/pitch_est_tables.c.o
[ 52%] Building C object CMakeFiles/opus.dir/silk/resampler.c.o
[ 53%] Building C object CMakeFiles/opus.dir/silk/resampler_down2_3.c.o
[ 54%] Building C object CMakeFiles/opus.dir/silk/resampler_down2.c.o
[ 54%] Building C object CMakeFiles/opus.dir/silk/resampler_private_AR2.c.o
[ 55%] Building C object CMakeFiles/opus.dir/silk/resampler_private_down_FIR.c.o
[ 56%] Building C object CMakeFiles/opus.dir/silk/resampler_private_IIR_FIR.c.o
[ 56%] Building C object CMakeFiles/opus.dir/silk/resampler_private_up2_HQ.c.o
[ 57%] Building C object CMakeFiles/opus.dir/silk/resampler_rom.c.o
[ 58%] Building C object CMakeFiles/opus.dir/silk/sigm_Q15.c.o
[ 59%] Building C object CMakeFiles/opus.dir/silk/sort.c.o
[ 59%] Building C object CMakeFiles/opus.dir/silk/sum_sqr_shift.c.o
[ 60%] Building C object CMakeFiles/opus.dir/silk/stereo_decode_pred.c.o
[ 61%] Building C object CMakeFiles/opus.dir/silk/stereo_encode_pred.c.o
[ 61%] Building C object CMakeFiles/opus.dir/silk/stereo_find_predictor.c.o
[ 62%] Building C object CMakeFiles/opus.dir/silk/stereo_quant_pred.c.o
[ 63%] Building C object CMakeFiles/opus.dir/silk/LPC_fit.c.o
[ 63%] Building C object CMakeFiles/opus.dir/celt/bands.c.o
[ 64%] Building C object CMakeFiles/opus.dir/celt/celt.c.o
[ 65%] Building C object CMakeFiles/opus.dir/celt/celt_encoder.c.o
[ 65%] Building C object CMakeFiles/opus.dir/celt/celt_decoder.c.o
[ 66%] Building C object CMakeFiles/opus.dir/celt/cwrs.c.o
[ 67%] Building C object CMakeFiles/opus.dir/celt/entcode.c.o
[ 68%] Building C object CMakeFiles/opus.dir/celt/entdec.c.o
[ 68%] Building C object CMakeFiles/opus.dir/celt/entenc.c.o
[ 69%] Building C object CMakeFiles/opus.dir/celt/kiss_fft.c.o
[ 70%] Building C object CMakeFiles/opus.dir/celt/laplace.c.o
[ 70%] Building C object CMakeFiles/opus.dir/celt/mathops.c.o
[ 71%] Building C object CMakeFiles/opus.dir/celt/mdct.c.o
[ 72%] Building C object CMakeFiles/opus.dir/celt/modes.c.o
[ 72%] Building C object CMakeFiles/opus.dir/celt/pitch.c.o
[ 73%] Building C object CMakeFiles/opus.dir/celt/celt_lpc.c.o
[ 74%] Building C object CMakeFiles/opus.dir/celt/quant_bands.c.o
[ 75%] Building C object CMakeFiles/opus.dir/celt/rate.c.o
[ 75%] Building C object CMakeFiles/opus.dir/celt/vq.c.o
[ 76%] Building C object CMakeFiles/opus.dir/silk/float/apply_sine_window_FLP.c.o
[ 77%] Building C object CMakeFiles/opus.dir/silk/float/corrMatrix_FLP.c.o
[ 77%] Building C object CMakeFiles/opus.dir/silk/float/encode_frame_FLP.c.o
[ 78%] Building C object CMakeFiles/opus.dir/silk/float/find_LPC_FLP.c.o
[ 79%] Building C object CMakeFiles/opus.dir/silk/float/find_LTP_FLP.c.o
[ 79%] Building C object CMakeFiles/opus.dir/silk/float/find_pitch_lags_FLP.c.o
[ 80%] Building C object CMakeFiles/opus.dir/silk/float/find_pred_coefs_FLP.c.o
[ 81%] Building C object CMakeFiles/opus.dir/silk/float/LPC_analysis_filter_FLP.c.o
[ 81%] Building C object CMakeFiles/opus.dir/silk/float/LTP_analysis_filter_FLP.c.o
[ 82%] Building C object CMakeFiles/opus.dir/silk/float/LTP_scale_ctrl_FLP.c.o
[ 83%] Building C object CMakeFiles/opus.dir/silk/float/noise_shape_analysis_FLP.c.o
[ 84%] Building C object CMakeFiles/opus.dir/silk/float/process_gains_FLP.c.o
[ 84%] Building C object CMakeFiles/opus.dir/silk/float/regularize_correlations_FLP.c.o
[ 85%] Building C object CMakeFiles/opus.dir/silk/float/residual_energy_FLP.c.o
[ 86%] Building C object CMakeFiles/opus.dir/silk/float/warped_autocorrelation_FLP.c.o
[ 86%] Building C object CMakeFiles/opus.dir/silk/float/wrappers_FLP.c.o
[ 87%] Building C object CMakeFiles/opus.dir/silk/float/autocorrelation_FLP.c.o
[ 88%] Building C object CMakeFiles/opus.dir/silk/float/burg_modified_FLP.c.o
[ 88%] Building C object CMakeFiles/opus.dir/silk/float/bwexpander_FLP.c.o
[ 89%] Building C object CMakeFiles/opus.dir/silk/float/energy_FLP.c.o
[ 90%] Building C object CMakeFiles/opus.dir/silk/float/inner_product_FLP.c.o
[ 90%] Building C object CMakeFiles/opus.dir/silk/float/k2a_FLP.c.o
[ 91%] Building C object CMakeFiles/opus.dir/silk/float/LPC_inv_pred_gain_FLP.c.o
[ 92%] Building C object CMakeFiles/opus.dir/silk/float/pitch_analysis_core_FLP.c.o
[ 93%] Building C object CMakeFiles/opus.dir/silk/float/scale_copy_vector_FLP.c.o
[ 93%] Building C object CMakeFiles/opus.dir/silk/float/scale_vector_FLP.c.o
[ 94%] Building C object CMakeFiles/opus.dir/silk/float/schur_FLP.c.o
[ 95%] Building C object CMakeFiles/opus.dir/silk/float/sort_FLP.c.o
[ 95%] Building C object CMakeFiles/opus.dir/celt/arm/celt_neon_intr.c.o
[ 96%] Building C object CMakeFiles/opus.dir/celt/arm/pitch_neon_intr.c.o
[ 97%] Building C object CMakeFiles/opus.dir/silk/arm/biquad_alt_neon_intr.c.o
[ 97%] Building C object CMakeFiles/opus.dir/silk/arm/LPC_inv_pred_gain_neon_intr.c.o
[ 98%] Building C object CMakeFiles/opus.dir/silk/arm/NSQ_del_dec_neon_intr.c.o
[ 99%] Building C object CMakeFiles/opus.dir/silk/arm/NSQ_neon.c.o
[100%] Linking C static library libopus.a
[100%] Built target opus