if per_target.cc becomes header only, then library cannot be built as there are no longer any .cc files
Here is the error:
CMake Error: Cannot determine link language for target "hwy".
CMake Error: CMake can not determine linker language for target: hwy
CMake Error in CMakeLists.txt:
Exporting the target "hwy" is not allowed since its linker language cannot
be determined
Even with current commit, we get errors in tests:
/home//src/highway/hwy/tests/mask_mem_test.cc:35:8: error: redefinition of ‘struct hwy::N_EMU128::TestMaskedLoad’
35 | struct TestMaskedLoad {
| ^~~~~~~~~~~~~~
In file included from /home//src/highway/hwy/foreach_target.h:316,
from /home//src/highway/hwy/tests/mask_mem_test.cc:27:
/home//src/highway/hwy/tests/mask_mem_test.cc:35:8: note: previous definition of ‘struct hwy::N_EMU128::TestMaskedLoad’
35 | struct TestMaskedLoad {
| ^~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:69:19: error: redefinition of ‘void hwy::N_EMU128::TestAllMaskedLoad()’
69 | HWY_NOINLINE void TestAllMaskedLoad() {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:69:19: note: ‘void hwy::N_EMU128::TestAllMaskedLoad()’ previously defined here
69 | HWY_NOINLINE void TestAllMaskedLoad() {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:73:8: error: redefinition of ‘struct hwy::N_EMU128::TestMaskedScatter’
73 | struct TestMaskedScatter {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:73:8: note: previous definition of ‘struct hwy::N_EMU128::TestMaskedScatter’
73 | struct TestMaskedScatter {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:111:19: error: redefinition of ‘void hwy::N_EMU128::TestAllMaskedScatter()’
111 | HWY_NOINLINE void TestAllMaskedScatter() {
| ^~~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:111:19: note: ‘void hwy::N_EMU128::TestAllMaskedScatter()’ previously defined here
111 | HWY_NOINLINE void TestAllMaskedScatter() {
| ^~~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:115:8: error: redefinition of ‘struct hwy::N_EMU128::TestScatterIndexN’
115 | struct TestScatterIndexN {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:115:8: note: previous definition of ‘struct hwy::N_EMU128::TestScatterIndexN’
115 | struct TestScatterIndexN {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:167:19: error: redefinition of ‘void hwy::N_EMU128::TestAllScatterIndexN()’
167 | HWY_NOINLINE void TestAllScatterIndexN() {
| ^~~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:167:19: note: ‘void hwy::N_EMU128::TestAllScatterIndexN()’ previously defined here
167 | HWY_NOINLINE void TestAllScatterIndexN() {
| ^~~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:171:8: error: redefinition of ‘struct hwy::N_EMU128::TestMaskedGather’
171 | struct TestMaskedGather {
| ^~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:171:8: note: previous definition of ‘struct hwy::N_EMU128::TestMaskedGather’
171 | struct TestMaskedGather {
| ^~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:210:19: error: redefinition of ‘void hwy::N_EMU128::TestAllMaskedGather()’
210 | HWY_NOINLINE void TestAllMaskedGather() {
| ^~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:210:19: note: ‘void hwy::N_EMU128::TestAllMaskedGather()’ previously defined here
210 | HWY_NOINLINE void TestAllMaskedGather() {
| ^~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:214:8: error: redefinition of ‘struct hwy::N_EMU128::TestGatherIndexN’
214 | struct TestGatherIndexN {
| ^~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:214:8: note: previous definition of ‘struct hwy::N_EMU128::TestGatherIndexN’
214 | struct TestGatherIndexN {
| ^~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:258:19: error: redefinition of ‘void hwy::N_EMU128::TestAllGatherIndexN()’
258 | HWY_NOINLINE void TestAllGatherIndexN() {
| ^~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:258:19: note: ‘void hwy::N_EMU128::TestAllGatherIndexN()’ previously defined here
258 | HWY_NOINLINE void TestAllGatherIndexN() {
| ^~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:262:8: error: redefinition of ‘struct hwy::N_EMU128::TestBlendedStore’
262 | struct TestBlendedStore {
| ^~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:262:8: note: previous definition of ‘struct hwy::N_EMU128::TestBlendedStore’
262 | struct TestBlendedStore {
| ^~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:293:19: error: redefinition of ‘void hwy::N_EMU128::TestAllBlendedStore()’
293 | HWY_NOINLINE void TestAllBlendedStore() {
| ^~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:293:19: note: ‘void hwy::N_EMU128::TestAllBlendedStore()’ previously defined here
293 | HWY_NOINLINE void TestAllBlendedStore() {
| ^~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:297:7: error: redefinition of ‘class hwy::N_EMU128::TestStoreMaskBits’
297 | class TestStoreMaskBits {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:297:7: note: previous definition of ‘class hwy::N_EMU128::TestStoreMaskBits’
297 | class TestStoreMaskBits {
| ^~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:377:19: error: redefinition of ‘void hwy::N_EMU128::TestAllStoreMaskBits()’
377 | HWY_NOINLINE void TestAllStoreMaskBits() {
| ^~~~~~~~~~~~~~~~~~~~
/home//src/highway/hwy/tests/mask_mem_test.cc:377:19: note: ‘void hwy::N_EMU128::TestAllStoreMaskBits()’ previously defined here
377 | HWY_NOINLINE void TestAllStoreMaskBits() {
| ^~~~~~~~~~~~~~~~~~~~
In file included from /home//src/highway/hwy/targets.cc:23,
from /home//src/highway/hwy/targets.h:345,
from /home//src/highway/hwy/highway.h:22,
from /home//src/highway/hwy/timer-inl.h:26,
from /home//src/highway/hwy/timer.cc:25,
from /home//src/highway/hwy/timer.h:67,
from /home//src/highway/hwy/nanobenchmark.h:52,
from /home//src/highway/hwy/tests/mask_mem_test.cc:23:
/home//src/highway/hwy/highway.h:226:38: error: ‘N_SSSE3’ has not been declared
if
per_target.cc
becomes header only, then library cannot be built as there are no longer any .cc filesHere is the error:
Even with current commit, we get errors in tests: