From: Bart Van Assche Date: Thu, 14 Jun 2018 20:39:30 +0000 (-0700) Subject: Add a test program for the membarrier() system call X-Git-Tag: VALGRIND_3_14_0~101 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e9a82f3d759189868f7bdb33729dfe4c0bbc119c;p=thirdparty%2Fvalgrind.git Add a test program for the membarrier() system call Signed-off-by: Bart Van Assche --- diff --git a/configure.ac b/configure.ac index 306fbc78e7..71c96ed52b 100644 --- a/configure.ac +++ b/configure.ac @@ -1727,6 +1727,20 @@ if test "$sys_user_has_user_regs" = "yes"; then [Define to 1 if defines struct user_regs_struct]) fi +AC_MSG_CHECKING([for __NR_membarrier]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +]], [[ +return __NR_membarrier +]])], [ +ac_have_nr_membarrier=yes +AC_MSG_RESULT([yes]) +], [ +ac_have_nr_membarrier=no +AC_MSG_RESULT([no]) +]) + +AM_CONDITIONAL(HAVE_NR_MEMBARRIER, [test x$ac_have_nr_membarrier = xyes]) #---------------------------------------------------------------------------- # Checking for supported compiler flags. diff --git a/none/tests/linux/Makefile.am b/none/tests/linux/Makefile.am index 299476dfd9..d16ac4d0f4 100644 --- a/none/tests/linux/Makefile.am +++ b/none/tests/linux/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = \ brk-overflow1.stderr.exp brk-overflow1.vgtest \ brk-overflow2.stderr.exp brk-overflow2.vgtest \ clonev.stdout.exp clonev.stderr.exp clonev.vgtest \ + membarrier.sterr.exp membarrier.vgtest \ mremap.stderr.exp mremap.stderr.exp-glibc27 mremap.stdout.exp \ mremap.vgtest \ mremap2.stderr.exp mremap2.stdout.exp mremap2.vgtest \ @@ -32,6 +33,10 @@ check_PROGRAMS = \ pthread-stack \ stack-overflow +if HAVE_NR_MEMBARRIER + check_PROGRAMS += membarrier +endif + AM_CFLAGS += $(AM_FLAG_M3264_PRI) AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) diff --git a/none/tests/linux/membarrier.c b/none/tests/linux/membarrier.c new file mode 100644 index 0000000000..f7199ac5cc --- /dev/null +++ b/none/tests/linux/membarrier.c @@ -0,0 +1,10 @@ +#include +#include +#include + +int main(int argc, char **argv) +{ + syscall(__NR_membarrier, 0/*query*/); + fprintf(stderr, "Done.\n"); + return 0; +} diff --git a/none/tests/linux/membarrier.stderr.exp b/none/tests/linux/membarrier.stderr.exp new file mode 100644 index 0000000000..eb9b6c15c3 --- /dev/null +++ b/none/tests/linux/membarrier.stderr.exp @@ -0,0 +1,3 @@ + +Done. + diff --git a/none/tests/linux/membarrier.vgtest b/none/tests/linux/membarrier.vgtest new file mode 100644 index 0000000000..542e2ca265 --- /dev/null +++ b/none/tests/linux/membarrier.vgtest @@ -0,0 +1 @@ +prog: membarrier