This is a list of problems that we expect people to run in to when working with GNU Radio and the VOLK submodule. Each problem has a probable cause, the error message, and a solution.
Checkout commit that has in-tree volk after initializing submodule
git checkout master
error: The following untracked working tree files would be overwritten by checkout:
volk/CMakeLists.txt
volk/apps/CMakeLists.txt
volk/apps/volk-config-info.cc
volk/apps/volk_profile.cc
volk/cmake/msvc/config.h
volk/cmake/msvc/inttypes.h
volk/cmake/msvc/stdbool.h
volk/cmake/msvc/stdint.h
volk/gen/archs.xml
volk/gen/machines.xml
volk/gen/volk_arch_defs.py
volk/gen/volk_compile_utils.py
volk/gen/volk_kernel_defs.py
volk/gen/volk_machine_defs.py
volk/gen/volk_tmpl_utils.py
volk/include/volk/constants.h
volk/include/volk/volk_common.h
volk/include/volk/volk_complex.h
volk/include/volk/volk_malloc.h
volk/include/volk/volk_prefs.h
volk/kernels/README.txt
volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s
volk/kernels/volk/asm/neon/volk_32f_s32f_multiply_32f_neonasm.s
volk/kernels/volk/asm/neon/volk_32f_x2_add_32f_a_neonasm.s
volk/kernels/volk/asm/neon/volk_32f_x2_add_32f_a_neonpipeline.s
volk/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_neonasm.s
volk/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_neonasm_opts.s
volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasm.s
volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s
volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmvmla.s
volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_unrollasm.s
volk/kernels/volk/asm/neon/volk_32fc_x2_dot_prod_32fc_neonasm.s
volk/kernels/volk/asm/neon/volk_32fc_x2_dot_prod_32fc_neonasm_opttests.s
volk/kernels/volk/asm/neon/volk_32fc_x2_multiply_32fc_neonasm.s
volk/kernels/volk/asm/neon/volk_arm_32fc_32f_dot_prod_32fc_a_neonpipeline.s
volk/kernels/volk/volk_16i_32fc_dot_prod_32fc.h
volk/kernels/volk/volk_16i_branch_4_state_8.h
volk/kernels/volk/volk_16i_convert_8i.h
volk/kernels/volk/volk_16i_max_star_16i.h
volk/kernels/volk/volk_16i_max_star_horizontal_16i.h
volk/kernels/volk/volk_16i_permute_and_scalar_add.h
volk/kernels/volk/volk_16i_s32f_convert_32f.h
volk/kernels/volk/volk_16i_x4_quad_max_star_16i.h
volk/kernels/volk/volk_16i_x5_add_quad_16i_x4.h
volk/kernels/volk/volk_16ic_deinterleave_16i_x2.h
volk/kernels/volk/volk_16ic_deinterleave_real_16i.h
volk/kernels/volk/volk_16ic_deinterleave_real_8i.h
volk/kernels/volk/volk_16ic_magnitude_16i.h
volk/kernels/volk/volk_16ic_s32f_deinterleave_32f_x2.h
volk/kernels/volk/volk_16ic_s32f_deinterleave_real_32f.h
volk/kernels/volk/volk_16ic_s32f_magnitude_32f.h
volk/kernels/volk/volk_16u_byteswap.h
volk/kernels/volk/volk_16u_byteswappuppet_16u.h
volk/kernels/volk/volk_32f_accumulator_s32f.h
volk/kernels/volk/volk_32f_acos_32f.h
volk/kernels/volk/volk_32f_asin_32f.h
volk/kernels/volk/volk_32f_atan_32f.h
volk/kernels/volk/volk_32f_binary_slicer_32i.h
volk/kernels/volk/volk_32f_binary_slicer_8i.h
volk/kernels/volk/volk_32f_convert_64f.h
volk/kernels/volk/volk_32f_cos_32f.h
volk/kernels/volk/volk_32f_expfast_32f.h
volk/kernels/volk/volk_32f_index_max_16u.h
volk/kernels/volk/volk_32f_invsqrt_32f.h
volk/kernels/volk/volk_32f_log2_32f.h
volk/kernels/volk/volk_32f_s32f_32f_fm_detect_32f.h
volk/kernels/volk/volk_32f_s32f_calc_spectral_noise_floor_32f.h
volk/kernels/volk/volk_32f_s32f_convert_16i.h
volk/kernels/volk/volk_32f_s32f_convert_32i.h
volk/kernels/volk/volk_32f_s32f_convert_8i.h
volk/kernels/volk/volk_32f_s32f_multiply_32f.h
volk/kernels/volk/volk_32f_s32f_normalize.h
volk/kernels/volk/volk_32f_s32f_power_32f.h
volk/kernels/volk/volk_32f_s32f_stddev_32f.h
volk/kernels/volk/volk_32f_sin_32f.h
volk/kernels/volk/volk_32f_sqrt_32f.h
volk/kernels/volk/volk_32f_stddev_and_mean_32f_x2.h
volk/kernels/volk/volk_32f_tan_32f.h
volk/kernels/volk/volk_32f_tanh_32f.h
volk/kernels/volk/volk_32f_x2_add_32f.h
volk/kernels/volk/volk_32f_x2_divide_32f.h
volk/kernels/volk/volk_32f_x2_dot_prod_16i.h
volk/kernels/volk/volk_32f_x2_dot_prod_32f.h
volk/kernels/volk/volk_32f_x2_interleave_32fc.h
volk/kernels/volk/volk_32f_x2_max_32f.h
volk/kernels/volk/volk_32f_x2_min_32f.h
volk/kernels/volk/volk_32f_x2_multiply_32f.h
volk/kernels/volk/volk_32f_x2_pow_32f.h
volk/kernels/volk/volk_32f_x2_s32f_int
Aborting
Deinitialize the submodule, then perform your checkout
git submodule deinit volk
We have an in-tree volk/ and checking out a branch with submodule volk
$ git checkout volk-split
error: Updating the following directories would lose untracked files in it:
volk
Aborting
Manually remove the volk directory and checkout the desired branch
$ rm -rf volk
$ git checkout volk-split
Switched to branch 'volk-split'
Your branch is up-to-date with 'nwest/volk-split'.
The VOLK submodule is not checked out
$ cmake ..
CMake Warning at CMakeLists.txt:279 (find_package):
By not providing "FindVolk.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Volk", but
CMake did not find one.
Could not find a package configuration file provided by "Volk" with any of
the following names:
VolkConfig.cmake
volk-config.cmake
Add the installation prefix of "Volk" to CMAKE_PREFIX_PATH or set
"Volk_DIR" to a directory containing one of the above files. If "Volk"
provides a separate development package or SDK, be sure it has been
installed.
CMake Error at CMakeLists.txt:287 (message):
VOLK submodule is not checked out
-- Configuring incomplete, errors occurred!
See also "/opt/code/sandbox/gnuradio/build/CMakeFiles/CMakeOutput.log".
Initialize and update your submodule
$ git submodule update --init --recursive