string: change build system to avoid fragile includes

Including multiple asm source files into a single top level file
can cause problems, this can be fixed by having one top level
file per target specific source file, but for maintenance and
clarity it's better to use the sub directory structure for selecting
which files to build.

This requires a new ARCH make variable setting in config.mk which
must be consistent with the target of CC.

Note: the __ARM_FEATURE_SVE checks are moved into the SVE asm code.
This is not entirely right: the feature test macro is for ACLE, not
asm support, but this patch is not supposed to change the produced
binaries and some toolchains (e.g. older clang) does not support SVE
instructions.  The intention is to remove these checks eventually
and always build all asm code and only support new toolchains (the
test code will only test the SVE variants if there is target support
for it though).
31 files changed