Backport KWIML commit 6fc81d8816 (abi.h: Update RISC-V support for
revised macro names, 2017-12-30) to the CMake 3.10 release branch.
The upstream RISC-V project changed some compiler symbols so `__riscv__`
must now be renamed `__riscv`.
Patch-by: Richard W.M. Jones <rjones@redhat.com>
Code extracted from:
https://gitlab.kitware.com/utils/kwiml.git
at commit 9c2d6caecd8cd937b891009c681f90748df85dfd (master).
Upstream Shortlog
-----------------
Brad King (5):
fc9d607a Use static_cast when compiling as C++
ea9336bc Update copyright year
7db8b884 Suppress MSVC static_cast warnings in verification and test code
340af24d Update copyright year
9c2d6cae Fix compilation on Borland C++ 5.8
Richard W.M. Jones (1):
6fc81d88 abi.h: Update RISC-V support for revised macro names
This removes duplicated code for per-config variable initialization by
providing a `cmake_initialize_per_config_variable(<PREFIX> <DOCSTRING>)`
function.
This function initializes a `<PREFIX>` cache variable from `<PREFIX>_INIT`
and unless the `CMAKE_NOT_USING_CONFIG_FLAGS` variable is defined, does
the same with `<PREFIX>_<CONFIG>` from `<PREFIX>_<CONFIG>_INIT` for every
`<CONFIG>` in `CMAKE_CONFIGURATION_TYPES` for multi-config generators or
`CMAKE_BUILD_TYPE` for single-config generators.
If `StartTestProcess` does not start a test, propagate this information
back up to the `StartNextTests` loop so that it can move on to another
candidate without allocating processors to a test that didn't run.
Otherwise we have to wait for the next time `RunTests` loops around and
calls `StartNextTests` again.
Avoid creating a cmCTestRunTest instance if the stop time has been
reached. If the stop time occurs in the small time between creating an
instance and computing the child process timeout, we will simply compute
a zero timeout. This is already done for the case that we StartAgain
after the stop time.
This member was added by commit v2.8.2~285 (Better detection of
stop_time being passed, 2010-03-19), but its logic has no effect.
The member is only used for comparison against a value to which
it was just assigned.
BSD `signal(2)` semantics make some system calls (e.g. for `write`)
restartable when interrupted by a signal handler. Use `SA_RESTART` to
enable these semantics everywhere that supports them.
This is required by C++ stream libraries that interpret `EINTR` as any
other error, set `badbit`, and stop writing. I've observed this with
`libstdc++` during a `std::cout.flush()` call interrupted by `SIGCHLD`.
3c413e2a GENERATOR_IS_MULTI_CONFIG: Use for multi-config checks in Modules
c267ea1c GENERATOR_IS_MULTI_CONFIG: Use for multi-config checks in Tests
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1627