From 57a224f51d6c019e4ce5d75efb22f34a8330423e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 31 Jul 2020 07:26:11 +0000 Subject: Add Meson build system See https://mesonbuild.com --- meson-cc-tests/flexible-array-member-test.c | 14 ++++++++++++++ meson-cc-tests/intel-atomic-primitives-test.c | 6 ++++++ meson-cc-tests/solaris-atomic-operations.c | 8 ++++++++ 3 files changed, 28 insertions(+) create mode 100644 meson-cc-tests/flexible-array-member-test.c create mode 100644 meson-cc-tests/intel-atomic-primitives-test.c create mode 100644 meson-cc-tests/solaris-atomic-operations.c (limited to 'meson-cc-tests') diff --git a/meson-cc-tests/flexible-array-member-test.c b/meson-cc-tests/flexible-array-member-test.c new file mode 100644 index 0000000..5f96756 --- /dev/null +++ b/meson-cc-tests/flexible-array-member-test.c @@ -0,0 +1,14 @@ +#include +#include +#include + +struct s { int n; double d[]; }; + +int main(void) +{ + int m = getchar (); + struct s *p = malloc (offsetof (struct s, d) + + m * sizeof (double)); + p->d[0] = 0.0; + return p->d != (double *) NULL; +} diff --git a/meson-cc-tests/intel-atomic-primitives-test.c b/meson-cc-tests/intel-atomic-primitives-test.c new file mode 100644 index 0000000..a5c8040 --- /dev/null +++ b/meson-cc-tests/intel-atomic-primitives-test.c @@ -0,0 +1,6 @@ +void memory_barrier (void) { __sync_synchronize (); } +int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); } +int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); } +void mutex_unlock (int *m) { __sync_lock_release (m); } + +int main(void) { return 0;} diff --git a/meson-cc-tests/solaris-atomic-operations.c b/meson-cc-tests/solaris-atomic-operations.c new file mode 100644 index 0000000..fae0acd --- /dev/null +++ b/meson-cc-tests/solaris-atomic-operations.c @@ -0,0 +1,8 @@ +#include +/* This requires Solaris Studio 12.2 or newer: */ +#include +void memory_barrier (void) { __machine_rw_barrier (); } +int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); } +void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); } + +int main(void) { return 0; } -- cgit v1.2.1