/memcheck/tests/freebsd/realpathat
/memcheck/tests/freebsd/revoke
/memcheck/tests/freebsd/scalar
-/memcheck/tests/freebsd/scalar_15_plus
/memcheck/tests/freebsd/scalar_abort2
/memcheck/tests/freebsd/scalar_fork
/memcheck/tests/freebsd/scalar_pdfork
])
AM_CONDITIONAL(FREEBSD_TIMERFD_SYSCALL, test x$freebsd_timerfd_syscall = xyes)
-AC_MSG_CHECKING([for syscalls only in FreeBSD 15 and later])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <sys/syscall.h>
-]], [[
- return !SYS_getrlimitusage;
-]])], [
-freebsd_syscall15=yes
-AC_MSG_RESULT([yes])
-AC_DEFINE([FREEBSD_SYSCALL15], 1,
- [Define to 1 if you are using FreeBSD 15 or later.])
-], [
-freebsd_syscall15=no
-AC_MSG_RESULT([no])
-])
-AM_CONDITIONAL(FREEBSD_SYSCALL15, test x$freebsd_syscall15 = xyes)
-
else
AM_CONDITIONAL(FREEBSD_EVENTFD, false)
AM_CONDITIONAL(FREEBSD_REALPATHAT_SYSCALL, false)
AM_CONDITIONAL(FREEBSD_KQUEUEX_SYSCALL, false)
AM_CONDITIONAL(FREEBSD_TIMERFD_SYSCALL, false)
-AM_CONDITIONAL(FREEBSD_SYSCALL15, false)
fi # test "$VGCONF_OS" = "freebsd"
scalar.stderr.exp-x86 \
scalar.supp \
scalar_abort2.vgtest \
- scalar_15_plus.vgtest \
- scalar_15_plus.stderr.exp \
scalar_abort2.stderr.exp \
scalar_fork.vgtest \
scalar_fork.stderr.exp \
timerfd_LDFLAGS = -lm
endif
-if FREEBSD_SYSCALL15
-check_PROGRAMS += scalar_15_plus timerfd
-scalar_15_plus_CFLAGS = ${AM_CFLAGS} -g
-endif
-
aligned_alloc_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_NON_POWER_OF_TWO_ALIGNMENT@
delete_sized_mismatch_CXXFLAGS = ${AM_CXXFLAGS} --std=c++14
FAKE_SY("\n");
#endif
+ // FreeBSD 15 (and any backports)
+ /* SYS_kqueuex 583 */
+#if defined(SYS_kqueuex)
+ GO(SYS_kqueuex, " 1s 0m");
+ SY(SYS_kqueuex, x0+123); FAIL;
+#else
+#endif
+
+ /* SYS_membarrier 584 */
+#if defined(SYS_membarrier)
+ GO(SYS_membarrier, " 3s 0m");
+ SY(SYS_membarrier, x0+123, x0+456, x0+789); FAIL;
+#else
+#endif
+
+ /* SYS_timerfd_create 585 */
+#if defined(SYS_timerfd_create)
+ GO(SYS_timerfd_create, " 2s 0m");
+ SY(SYS_timerfd_create, x0+123, x0+23456); FAIL;
+#else
+#endif
+
+ /* SYS_timerfd_gettime 586 */
+#if defined(SYS_timerfd_gettime)
+ GO(SYS_timerfd_gettime, " 2s 1m");
+ SY(SYS_timerfd_gettime, x0+100, x0); FAIL;
+#else
+#endif
+
+ /* SYS_timerfd_settime 587 */
+#if defined(SYS_timerfd_settime)
+ GO(SYS_timerfd_settime, "4s 2m");
+ SY(SYS_timerfd_settime, x0+321, x0, x0+10, x0+5); FAIL;
+#else
+#endif
+
/* SYS_exit 1 */
GO(SYS_exit, "1s 0m");
SY(SYS_exit, x0); FAIL;
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
+---------------------------------------------------------
+583: SYS_kqueuex 1s 0m
+---------------------------------------------------------
+Syscall param kqueuex(flags) contains uninitialised byte(s)
+ ...
+
+---------------------------------------------------------
+584: SYS_membarrier 3s 0m
+---------------------------------------------------------
+Syscall param membarrier(cmd) contains uninitialised byte(s)
+ ...
+
+Syscall param membarrier(flags) contains uninitialised byte(s)
+ ...
+
+Syscall param membarrier(cpu_id) contains uninitialised byte(s)
+ ...
+
+---------------------------------------------------------
+585: SYS_timerfd_create 2s 0m
+---------------------------------------------------------
+Syscall param timerfd_create(clockid) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_create(flags) contains uninitialised byte(s)
+ ...
+
+---------------------------------------------------------
+586: SYS_timerfd_gettime 2s 1m
+---------------------------------------------------------
+Syscall param timerfd_gettime(fd) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_gettime(curr_value) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_gettime(curr_value) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+587: SYS_timerfd_settime 4s 2m
+---------------------------------------------------------
+Syscall param timerfd_settime(fd) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_settime(flags) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_settime(new_value) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_settime(old_value) contains uninitialised byte(s)
+ ...
+
+Syscall param timerfd_settime(new_value) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param timerfd_settime(old_value) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
---------------------------------------------------------
1: SYS_exit 1s 0m
---------------------------------------------------------
+++ /dev/null
-#include "scalar.h"
-#include <sys/mman.h>
-
-int main(void)
-{
- long *px = malloc(2*sizeof(long));
- x0 = px[0];
-
- /* SYS_kqueuex 583 */
- GO(SYS_kqueuex, " 1s 0m");
- SY(SYS_kqueuex, x0+123); FAIL;
-
- /* SYS_membarrier 584 */
- GO(SYS_membarrier, " 3s 0m");
- SY(SYS_membarrier, x0+123, x0+456, x0+789); FAIL;
-
- /* SYS_timerfd_create 585 */
- GO(SYS_timerfd_create, " 2s 0m");
- SY(SYS_timerfd_create, x0+123, x0+23456); FAIL;
-
- /* SYS_timerfd_gettime 586 */
- GO(SYS_timerfd_gettime, " 2s 1m");
- SY(SYS_timerfd_gettime, x0+100, x0); FAIL;
-
- /* SYS_timerfd_settime 587 */
- GO(SYS_timerfd_settime, "4s 2m");
- SY(SYS_timerfd_settime, x0+321, x0, x0+10, x0+5); FAIL;
-
- return(0);
-}
-
+++ /dev/null
----------------------------------------------------------
-583: SYS_kqueuex 1s 0m
----------------------------------------------------------
-Syscall param kqueuex(flags) contains uninitialised byte(s)
- ...
-
----------------------------------------------------------
-584: SYS_membarrier 3s 0m
----------------------------------------------------------
-Syscall param membarrier(cmd) contains uninitialised byte(s)
- ...
-
-Syscall param membarrier(flags) contains uninitialised byte(s)
- ...
-
-Syscall param membarrier(cpu_id) contains uninitialised byte(s)
- ...
-
----------------------------------------------------------
-585: SYS_timerfd_create 2s 0m
----------------------------------------------------------
-Syscall param timerfd_create(clockid) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_create(flags) contains uninitialised byte(s)
- ...
-
----------------------------------------------------------
-586: SYS_timerfd_gettime 2s 1m
----------------------------------------------------------
-Syscall param timerfd_gettime(fd) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_gettime(curr_value) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_gettime(curr_value) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
----------------------------------------------------------
-587: SYS_timerfd_settime 4s 2m
----------------------------------------------------------
-Syscall param timerfd_settime(fd) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_settime(flags) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_settime(new_value) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_settime(old_value) contains uninitialised byte(s)
- ...
-
-Syscall param timerfd_settime(new_value) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-Syscall param timerfd_settime(old_value) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
+++ /dev/null
-prereq: test -e ./scalar_15_plus
-prog: scalar_15_plus
-vgopts: -q --error-limit=no
-stderr_filter: filter_scalar
-# Remove all frames from the stack trace except the first one.
-# This is important because syscall() function on x86 isn't ABI conformant
-# which confuses the Valgrind stack unwinder.
-# Therefore x86 and amd64 stack traces are unified so that they contain only
-# 'syscall (in libc)' stack frame and this is then filtered out completely.
-stderr_filter_args: libc
-args: < scalar_13_plus.c
-