Divert LCC compiler as a new one, instead of treating it as GNU.
Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).
This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.
Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
LCC (Elbrus C Compiler) doesn't understand some of
GCC pragmas, despite of declaring itself GCC-aware.
The pragma of subject is the one that forbids vectorizing.
Actually, LCC don't vectorize anything unless explicitly
said to, so this pragma may be safely omitted and thus
not cause an error. This patch does this.
Our nightly and release binaries build in an environment that does not
support these instructions. Disable them everywhere for simplicity
because CMake's application of this library is not performance-critical.
Although the upstream has a CMake build system, it is meant for the
complete package. Add a simple one to build just the static library
we need within CMake.