I am trying to build my system with -flto for fun and profit and hitting a snag with volk
Relevant CFLAGS are likely -flto and -Werror=lto-type-mismatch, you likely need both to reproduce.
[94/105] : && /usr/bin/x86_64-pc-linux-gnu-gcc -fPIC -mtune=core2 -O3 -frecord-gcc-switches -pipe -flto -Werror=strict-aliasing -Werror=odr -Werror=lto-type-mismatch -Wstringop-overread -Werror=stringop-overread -march=native -fcx-limited-range -Wall -Werror=incompatible-pointer-types -Werror=pointer-sign -fvisibility=hidden -Wno-deprecated-declarations -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -shared -Wl,-soname,libvolk.so.3.1 -o lib/libvolk.so.3.1.0 lib/CMakeFiles/volk_obj.dir/volk_16ic_deinterleave_16i_x2_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_16ic_deinterleave_real_8i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_16u_byteswap_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_s32f_add_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_s32f_multiply_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_s32f_normalize_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_add_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_divide_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_max_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_min_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_multiply_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_subtract_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32fc_32f_multiply_32fc_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32fc_x2_multiply_32fc_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32i_x2_and_32i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32i_x2_or_32i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_8i_convert_16i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_8i_s32f_convert_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/constants.c.o lib/CMakeFiles/volk_obj.dir/volk_prefs.c.o lib/CMakeFiles/volk_obj.dir/volk_rank_archs.c.o lib/CMakeFiles/volk_obj.dir/volk_malloc.c.o lib/CMakeFiles/volk_obj.dir/volk.c.o lib/CMakeFiles/volk_obj.dir/volk_cpu.c.o lib/CMakeFiles/volk_obj.dir/volk_machines.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_generic_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse2_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse3_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_ssse3_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse4_a_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse4_1_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse4_2_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx2_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx512f_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx512cd_64_mmx_orc.c.o -ldl cpu_features/libcpu_features.a /usr/lib64/liborc-0.4.so -lm -ldl && :
FAILED: lib/libvolk.so.3.1.0
: && /usr/bin/x86_64-pc-linux-gnu-gcc -fPIC -mtune=core2 -O3 -frecord-gcc-switches -pipe -flto -Werror=strict-aliasing -Werror=odr -Werror=lto-type-mismatch -Wstringop-overread -Werror=stringop-overread -march=native -fcx-limited-range -Wall -Werror=incompatible-pointer-types -Werror=pointer-sign -fvisibility=hidden -Wno-deprecated-declarations -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -shared -Wl,-soname,libvolk.so.3.1 -o lib/libvolk.so.3.1.0 lib/CMakeFiles/volk_obj.dir/volk_16ic_deinterleave_16i_x2_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_16ic_deinterleave_real_8i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_16u_byteswap_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_s32f_add_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_s32f_multiply_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_s32f_normalize_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_add_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_divide_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_max_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_min_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_multiply_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32f_x2_subtract_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32fc_32f_multiply_32fc_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32fc_x2_multiply_32fc_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32i_x2_and_32i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_32i_x2_or_32i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_8i_convert_16i_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/volk_8i_s32f_convert_32f_a_orc_impl.c.o lib/CMakeFiles/volk_obj.dir/constants.c.o lib/CMakeFiles/volk_obj.dir/volk_prefs.c.o lib/CMakeFiles/volk_obj.dir/volk_rank_archs.c.o lib/CMakeFiles/volk_obj.dir/volk_malloc.c.o lib/CMakeFiles/volk_obj.dir/volk.c.o lib/CMakeFiles/volk_obj.dir/volk_cpu.c.o lib/CMakeFiles/volk_obj.dir/volk_machines.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_generic_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse2_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse3_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_ssse3_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse4_a_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse4_1_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_sse4_2_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx2_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx512f_64_mmx_orc.c.o lib/CMakeFiles/volk_obj.dir/volk_machine_avx512cd_64_mmx_orc.c.o -ldl cpu_features/libcpu_features.a /usr/lib64/liborc-0.4.so -lm -ldl && :
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_8i_s32f_convert_32f.h:338:13: error: type of ‘volk_8i_s32f_convert_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
338 | extern void volk_8i_s32f_convert_32f_a_orc_impl(float* outputVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_s32f_convert_32f_a_orc_impl.c:222:1: note: type mismatch in parameter 4
222 | volk_8i_s32f_convert_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, float p1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_s32f_convert_32f_a_orc_impl.c:222:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_s32f_convert_32f_a_orc_impl.c:222:1: note: ‘volk_8i_s32f_convert_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_s32f_convert_32f_a_orc_impl.c:222:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_8i_convert_16i.h:257:13: error: type of ‘volk_8i_convert_16i_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
257 | extern void volk_8i_convert_16i_a_orc_impl(int16_t* outputVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_convert_16i_a_orc_impl.c:188:1: note: type mismatch in parameter 3
188 | volk_8i_convert_16i_a_orc_impl (orc_uint16 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_convert_16i_a_orc_impl.c:188:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_convert_16i_a_orc_impl.c:188:1: note: ‘volk_8i_convert_16i_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_8i_convert_16i_a_orc_impl.c:188:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32i_x2_or_32i.h:240:13: error: type of ‘volk_32i_x2_or_32i_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
240 | extern void volk_32i_x2_or_32i_a_orc_impl(int32_t* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_or_32i_a_orc_impl.c:192:1: note: type mismatch in parameter 4
192 | volk_32i_x2_or_32i_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_or_32i_a_orc_impl.c:192:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_or_32i_a_orc_impl.c:192:1: note: ‘volk_32i_x2_or_32i_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_or_32i_a_orc_impl.c:192:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32i_x2_and_32i.h:241:13: error: type of ‘volk_32i_x2_and_32i_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
241 | extern void volk_32i_x2_and_32i_a_orc_impl(int32_t* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_and_32i_a_orc_impl.c:192:1: note: type mismatch in parameter 4
192 | volk_32i_x2_and_32i_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_and_32i_a_orc_impl.c:192:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_and_32i_a_orc_impl.c:192:1: note: ‘volk_32i_x2_and_32i_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32i_x2_and_32i_a_orc_impl.c:192:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32fc_x2_multiply_32fc.h:448:13: error: type of ‘volk_32fc_x2_multiply_32fc_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
448 | extern void volk_32fc_x2_multiply_32fc_a_orc_impl(lv_32fc_t* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_x2_multiply_32fc_a_orc_impl.c:380:1: note: type mismatch in parameter 4
380 | volk_32fc_x2_multiply_32fc_a_orc_impl (orc_uint64 * ORC_RESTRICT d1, const orc_uint64 * ORC_RESTRICT s1, const orc_uint64 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_x2_multiply_32fc_a_orc_impl.c:380:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_x2_multiply_32fc_a_orc_impl.c:380:1: note: ‘volk_32fc_x2_multiply_32fc_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_x2_multiply_32fc_a_orc_impl.c:380:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32fc_32f_multiply_32fc.h:212:13: error: type of ‘volk_32fc_32f_multiply_32fc_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
212 | extern void volk_32fc_32f_multiply_32fc_a_orc_impl(lv_32fc_t* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_32f_multiply_32fc_a_orc_impl.c:248:1: note: type mismatch in parameter 4
248 | volk_32fc_32f_multiply_32fc_a_orc_impl (orc_uint64 * ORC_RESTRICT d1, const orc_uint64 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_32f_multiply_32fc_a_orc_impl.c:248:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_32f_multiply_32fc_a_orc_impl.c:248:1: note: ‘volk_32fc_32f_multiply_32fc_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32fc_32f_multiply_32fc_a_orc_impl.c:248:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_x2_subtract_32f.h:194:13: error: type of ‘volk_32f_x2_subtract_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
194 | extern void volk_32f_x2_subtract_32f_a_orc_impl(float* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_subtract_32f_a_orc_impl.c:208:1: note: type mismatch in parameter 4
208 | volk_32f_x2_subtract_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_subtract_32f_a_orc_impl.c:208:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_subtract_32f_a_orc_impl.c:208:1: note: ‘volk_32f_x2_subtract_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_subtract_32f_a_orc_impl.c:208:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_x2_multiply_32f.h:345:13: error: type of ‘volk_32f_x2_multiply_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
345 | extern void volk_32f_x2_multiply_32f_a_orc_impl(float* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_multiply_32f_a_orc_impl.c:208:1: note: type mismatch in parameter 4
208 | volk_32f_x2_multiply_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_multiply_32f_a_orc_impl.c:208:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_multiply_32f_a_orc_impl.c:208:1: note: ‘volk_32f_x2_multiply_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_multiply_32f_a_orc_impl.c:208:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_x2_min_32f.h:162:13: error: type of ‘volk_32f_x2_min_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
162 | extern void volk_32f_x2_min_32f_a_orc_impl(float* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_min_32f_a_orc_impl.c:208:1: note: type mismatch in parameter 4
208 | volk_32f_x2_min_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_min_32f_a_orc_impl.c:208:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_min_32f_a_orc_impl.c:208:1: note: ‘volk_32f_x2_min_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_min_32f_a_orc_impl.c:208:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_x2_max_32f.h:233:13: error: type of ‘volk_32f_x2_max_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
233 | extern void volk_32f_x2_max_32f_a_orc_impl(float* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_max_32f_a_orc_impl.c:208:1: note: type mismatch in parameter 4
208 | volk_32f_x2_max_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_max_32f_a_orc_impl.c:208:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_max_32f_a_orc_impl.c:208:1: note: ‘volk_32f_x2_max_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_max_32f_a_orc_impl.c:208:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_x2_divide_32f.h:253:13: error: type of ‘volk_32f_x2_divide_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
253 | extern void volk_32f_x2_divide_32f_a_orc_impl(float* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_divide_32f_a_orc_impl.c:208:1: note: type mismatch in parameter 4
208 | volk_32f_x2_divide_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_divide_32f_a_orc_impl.c:208:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_divide_32f_a_orc_impl.c:208:1: note: ‘volk_32f_x2_divide_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_divide_32f_a_orc_impl.c:208:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_x2_add_32f.h:379:13: error: type of ‘volk_32f_x2_add_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
379 | extern void volk_32f_x2_add_32f_a_orc_impl(float* cVector,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_add_32f_a_orc_impl.c:208:1: note: type mismatch in parameter 4
208 | volk_32f_x2_add_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_add_32f_a_orc_impl.c:208:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_add_32f_a_orc_impl.c:208:1: note: ‘volk_32f_x2_add_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_x2_add_32f_a_orc_impl.c:208:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_s32f_normalize.h:151:13: error: type of ‘volk_32f_s32f_normalize_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
151 | extern void volk_32f_s32f_normalize_a_orc_impl(float* dst,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_normalize_a_orc_impl.c:204:1: note: type mismatch in parameter 4
204 | volk_32f_s32f_normalize_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, float p1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_normalize_a_orc_impl.c:204:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_normalize_a_orc_impl.c:204:1: note: ‘volk_32f_s32f_normalize_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_normalize_a_orc_impl.c:204:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_s32f_multiply_32f.h:245:13: error: type of ‘volk_32f_s32f_multiply_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
245 | extern void volk_32f_s32f_multiply_32f_a_orc_impl(float* dst,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_multiply_32f_a_orc_impl.c:204:1: note: type mismatch in parameter 4
204 | volk_32f_s32f_multiply_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, float p1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_multiply_32f_a_orc_impl.c:204:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_multiply_32f_a_orc_impl.c:204:1: note: ‘volk_32f_s32f_multiply_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_multiply_32f_a_orc_impl.c:204:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_32f_s32f_add_32f.h:247:13: error: type of ‘volk_32f_s32f_add_32f_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
247 | extern void volk_32f_s32f_add_32f_a_orc_impl(float* dst,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_add_32f_a_orc_impl.c:204:1: note: type mismatch in parameter 4
204 | volk_32f_s32f_add_32f_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, float p1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_add_32f_a_orc_impl.c:204:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_add_32f_a_orc_impl.c:204:1: note: ‘volk_32f_s32f_add_32f_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_32f_s32f_add_32f_a_orc_impl.c:204:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_16ic_s32f_deinterleave_32f_x2.h:239:13: error: type of ‘volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
239 | extern void volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl(float* iBuffer,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl.c:266:1: note: type mismatch in parameter 5
266 | volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl (orc_uint32 * ORC_RESTRICT d1, orc_uint32 * ORC_RESTRICT d2, const orc_uint32 * ORC_RESTRICT s1, float p1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl.c:266:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl.c:266:1: note: ‘volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl.c:266:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_16ic_deinterleave_real_8i.h:276:13: error: type of ‘volk_16ic_deinterleave_real_8i_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
276 | extern void volk_16ic_deinterleave_real_8i_a_orc_impl(int8_t* iBuffer,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_real_8i_a_orc_impl.c:196:1: note: type mismatch in parameter 3
196 | volk_16ic_deinterleave_real_8i_a_orc_impl (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_real_8i_a_orc_impl.c:196:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_real_8i_a_orc_impl.c:196:1: note: ‘volk_16ic_deinterleave_real_8i_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_real_8i_a_orc_impl.c:196:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999/kernels/volk/volk_16ic_deinterleave_16i_x2.h:274:13: error: type of ‘volk_16ic_deinterleave_16i_x2_a_orc_impl’ does not match original declaration [-Werror=lto-type-mismatch]
274 | extern void volk_16ic_deinterleave_16i_x2_a_orc_impl(int16_t* iBuffer,
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_16i_x2_a_orc_impl.c:202:1: note: type mismatch in parameter 4
202 | volk_16ic_deinterleave_16i_x2_a_orc_impl (orc_uint16 * ORC_RESTRICT d1, orc_uint16 * ORC_RESTRICT d2, const orc_uint32 * ORC_RESTRICT s1, int n)
| ^
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_16i_x2_a_orc_impl.c:202:1: note: type ‘int’ should match type ‘unsigned int’
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_16i_x2_a_orc_impl.c:202:1: note: ‘volk_16ic_deinterleave_16i_x2_a_orc_impl’ was previously declared here
/var/tmp/portage/sci-libs/volk-9999/work/volk-9999_build/lib/volk_16ic_deinterleave_16i_x2_a_orc_impl.c:202:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
lto1: some warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/x86_64-pc-linux-gnu-gcc returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
I am trying to build my system with
-flto
for fun and profit and hitting a snag with volk Relevant CFLAGS are likely-flto
and-Werror=lto-type-mismatch
, you likely need both to reproduce.