On 14/06/2019 09:07, Ser, Simon wrote: > On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote: >> Add conditional dependency on libatomic in order to be able to use the >> __atomic_* functions instead of the older __sync_* ones. The >> libatomic library is only needed when there aren't any native support >> on the current architecture, so a linker test is used for this >> purpose. This enables atomic operations to be on a wider number of >> architectures including MIPS. >> >> Signed-off-by: Guillaume Tucker <guillaume.tucker@xxxxxxxxxxxxx> >> --- >> meson.build | 13 +++++++++++++ >> 1 file changed, 13 insertions(+) >> >> diff --git a/meson.build b/meson.build >> index 6268c58d3634..da25a28f3268 100644 >> --- a/meson.build >> +++ b/meson.build >> @@ -179,6 +179,19 @@ math = cc.find_library('m') >> realtime = cc.find_library('rt') >> dlsym = cc.find_library('dl') >> zlib = cc.find_library('z') >> +if cc.links(''' >> +#include <stdint.h> >> +int main(void) { >> + uint32_t x32 = 0; >> + uint64_t x64 = 0; >> + __atomic_load_n(&x32, __ATOMIC_SEQ_CST); >> + __atomic_load_n(&x64, __ATOMIC_SEQ_CST); > > Minor: maybe we could've used stdatomic.h's atomic_* functions (without > the "__" prefix) for consistency with the actual IGT code? I actually thought it was more correct to use the __atomic_* functions directly from the libatomic library as this is a linker test. If for any reason stdatomic.h changes between versions or compilers and uses something else than libatomic, then this test would become invalid. >> + return 0; >> +}''', name : 'built-in atomics') >> + libatomic = [] > > We could use null_dep instead, to make it consistent with the other > branch. Ack, will fix that in v3. >> +else >> + libatomic = cc.find_library('atomic') >> +endif >> >> if cc.has_header('linux/kd.h') >> config.set('HAVE_LINUX_KD_H', 1) Thanks, Guillaume _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx