From: Paul Floyd Date: Mon, 5 Feb 2024 12:21:28 +0000 (+0100) Subject: FreeBSD: updates for FreeBSD 14.0 X-Git-Tag: VALGRIND_3_23_0~187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb24fa5ac349be7a1629c3087a1d408aadca34d6;p=thirdparty%2Fvalgrind.git FreeBSD: updates for FreeBSD 14.0 Added some filtering. Removed a few compiler warnings. memcheck manuel1 has an extra error somewhere within the printf calltree - sensitive to libc changes. I still get == 853 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/descr_belowsp (stderr) memcheck/tests/varinfo5 (stderr) descr_belowsp no longer mentions the guard page. Back in commit 121374b287ce39ef0e42e45dfc27ae0949e6f528 I said about FreeBSD 14 adding ASLR " Some more work will be needed for the stack size." Looks like that has now come home to roost. varinfo5 has lost some inline info but gained info on variable names. --- diff --git a/gdbserver_tests/Makefile.am b/gdbserver_tests/Makefile.am index 8d2638fb5e..6b73a24e94 100755 --- a/gdbserver_tests/Makefile.am +++ b/gdbserver_tests/Makefile.am @@ -182,3 +182,5 @@ AM_CFLAGS += $(AM_FLAG_M3264_PRI) AM_CXXFLAGS += $(AM_FLAG_M3264_PRI) LDADD = -lpthread + +sleepers_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_UNUSED_BUT_SET_VARIABLE@ diff --git a/gdbserver_tests/filter_vgdb.in b/gdbserver_tests/filter_vgdb.in index b71835cda2..b8208ab8c9 100755 --- a/gdbserver_tests/filter_vgdb.in +++ b/gdbserver_tests/filter_vgdb.in @@ -31,6 +31,10 @@ $SED -e '/^1 rtld.c: No such file or directory\./d' | $SED -e '/rtld.c: Inappropriate ioctl for device\./d' | # similar for Debian 11.0 arm64 $SED -e '/_exit.c: Inappropriate ioctl for device\./d' | +# On FreeBSD, the opional core source package gets +# installed after binaries so gdb complains that rtld_start.S +# is more recent than ld-elf.so.1 +$SED -e "/^warning: Source file is more recent than executable./d" | # filter python loading denied error message (see also filter_gdb.in) $SED -e '/warning: File .*valgrind-monitor.py.*declined.*/d' | diff --git a/memcheck/tests/freebsd/Makefile.am b/memcheck/tests/freebsd/Makefile.am index d9efd74a99..5476203a95 100644 --- a/memcheck/tests/freebsd/Makefile.am +++ b/memcheck/tests/freebsd/Makefile.am @@ -191,10 +191,10 @@ if HAVE_CLOSE_RANGE check_PROGRAMS += close_range endif -scalar_CFLAGS = ${AM_CFLAGS} -g - aligned_alloc_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_NON_POWER_OF_TWO_ALIGNMENT@ +close_range_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_UNUSED_BUT_SET_VARIABLE@ + delete_sized_mismatch_CXXFLAGS = ${AM_CXXFLAGS} --std=c++14 delete_sized_mismatch_SOURCES = delete_sized_mismatch.cpp @@ -205,3 +205,5 @@ extattr_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_UNUSED_BUT_SET_VARIABLE@ memalign_CFLAGS = ${AM_CFLAGS} @FLAG_W_NO_NON_POWER_OF_TWO_ALIGNMENT@ openpty_LDFLAGS = ${AM_LDFLAGS} -lutil + +scalar_CFLAGS = ${AM_CFLAGS} -g diff --git a/memcheck/tests/freebsd/aiov.c b/memcheck/tests/freebsd/aiov.c index 12d434c7e7..2a21e205bf 100644 --- a/memcheck/tests/freebsd/aiov.c +++ b/memcheck/tests/freebsd/aiov.c @@ -15,7 +15,7 @@ int main(void) char buf2[LEN]; char buf3[LEN]; struct iovec vec_array[] = {{buf1, LEN}, {buf2, LEN}, {buf3, LEN}}; - struct iovec bad_array[] = {{NULL, LEN}, {buf2, LEN}, {buf3, LEN}}; + //struct iovec bad_array[] = {{NULL, LEN}, {buf2, LEN}, {buf3, LEN}}; struct aiocb a; diff --git a/memcheck/tests/manuel1.stderr.exp-freebsd-clang b/memcheck/tests/manuel1.stderr.exp-freebsd-clang index de86817836..e658adb7e3 100644 --- a/memcheck/tests/manuel1.stderr.exp-freebsd-clang +++ b/memcheck/tests/manuel1.stderr.exp-freebsd-clang @@ -18,6 +18,11 @@ Conditional jump or move depends on uninitialised value(s) ... by 0x........: main (manuel1.c:7) +[[[ +Conditional jump or move depends on uninitialised value(s) + ... + by 0x........: main (manuel1.c:7) + [[[ Syscall param write(buf) points to uninitialised byte(s) ... diff --git a/memcheck/tests/new_override.cpp b/memcheck/tests/new_override.cpp index f462a9cccd..3331225205 100644 --- a/memcheck/tests/new_override.cpp +++ b/memcheck/tests/new_override.cpp @@ -18,7 +18,7 @@ void *operator new[](size_t size) int main(int argc, char *argv[]) { Test *toto; int i; - int j = 0; + volatile int j = 0; toto = new Test[2];