cmake: add check for explicit linking against libatomic
To use atomics functions, some toolchains requires to explicitly add
-latomic to the linker flags (because they are not provided by libc,
but libatomic).
This change adds a helper function trying to build/link a test program
using atomics, then calls it to:
* first check if atomics are directly available in the libc;
* if not and libatomic has been found, then run the same test with
"-latomic" added to the linker flags.
The pulseview link library list is updated according to the results of
these tests.
This issue was triggered by the Buildroot farms:
http://autobuild.buildroot.org/results/1e3/
1e3101261252d5f30fdf842cc99604e4f4c25eef/build-end.log
Notes:
1- CMAKE_REQUIRED_* variables are only used in check functions. They
are not automatically forwarded to/handled by the target commands
(such as target_link_library), because the check functions are
implemented as macro in CMake code, whereas many target commands
are native.
2- Because of note #1, CMAKE_REQUIRED_LIBRARIES (or its value) must be
explicitly passed to the target_link_library command when this is
needed.
3- In this implementation, LIBATOMIC_LIBRARY is only set when it is
needed; so, unconditionally appending it to PULSEVIEW_LINK_LIBS
will produce the expected behavior.
This fixes bug #810.
Signed-off-by: Samuel Martin <redacted>