diff --git a/.github/macos-12-expected.txt b/.github/macos-12-expected.txt index 0ca908f4f..e515b7f74 100644 --- a/.github/macos-12-expected.txt +++ b/.github/macos-12-expected.txt @@ -156,7 +156,6 @@ memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/varinforestrict (stderr) -memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wcpncpy (stderr) memcheck/tests/wrap1 (stdout) memcheck/tests/wrap2 (stdout) @@ -392,7 +391,6 @@ none/tests/amd64/avx-vmovq (stdout) none/tests/async-sigs (stderr) none/tests/bug234814 (stdout) none/tests/bug234814 (stderr) -none/tests/cmd-with-special (stderr) none/tests/coolo_sigaction (stdout) none/tests/darwin/apple-main-arg (stderr) none/tests/darwin/rlimit (stderr) diff --git a/.github/macos-13-expected.txt b/.github/macos-13-expected.txt index c158bc006..3bd9d25ce 100644 --- a/.github/macos-13-expected.txt +++ b/.github/macos-13-expected.txt @@ -96,7 +96,6 @@ memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) -memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wcpncpy (stderr) memcheck/tests/wrap5 (stdout) memcheck/tests/wrap6 (stdout) @@ -327,7 +326,6 @@ none/tests/bigcode (stdout) none/tests/bigcode (stderr) none/tests/bug234814 (stdout) none/tests/bug234814 (stderr) -none/tests/cmd-with-special (stderr) none/tests/coolo_sigaction (stdout) none/tests/darwin/apple-main-arg (stderr) none/tests/darwin/rlimit (stderr) diff --git a/.github/macos-14-expected.txt b/.github/macos-14-expected.txt index 63c858e61..8b85dd155 100644 --- a/.github/macos-14-expected.txt +++ b/.github/macos-14-expected.txt @@ -82,7 +82,6 @@ memcheck/tests/noisy_child (stderr) memcheck/tests/origin1-yes (stderr) memcheck/tests/origin2-not-quite (stderr) memcheck/tests/origin3-no (stderr) -memcheck/tests/origin5-bz2 (stdout) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/origin6-fp (stderr) memcheck/tests/overlap (stderr) @@ -116,11 +115,8 @@ memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) -memcheck/tests/varinfo6 (stdout) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) -memcheck/tests/vcpu_bz2 (stdout) -memcheck/tests/vcpu_bz2 (stderr) memcheck/tests/wcpncpy (stderr) memcheck/tests/wrap1 (stdout) memcheck/tests/wrap1 (stderr) @@ -375,7 +371,6 @@ none/tests/bigcode (stdout) none/tests/bigcode (stderr) none/tests/bug234814 (stdout) none/tests/bug234814 (stderr) -none/tests/cmd-with-special (stderr) none/tests/darwin/access_extended (stderr) none/tests/darwin/apple-main-arg (stderr) none/tests/darwin/bug228343 (stdout) diff --git a/coregrind/m_aspacemgr/aspacemgr-linux.c b/coregrind/m_aspacemgr/aspacemgr-linux.c index e28975b6d..dff749bbc 100644 --- a/coregrind/m_aspacemgr/aspacemgr-linux.c +++ b/coregrind/m_aspacemgr/aspacemgr-linux.c @@ -2774,12 +2774,6 @@ SysRes VG_(am_mmap_anon_float_valgrind)( SizeT length ) if (!ok) return VG_(mk_SysRes_Error)( VKI_EINVAL ); -// On Darwin, for anonymous maps you can pass in a tag which is used by -// programs like vmmap for statistical purposes. -#ifndef VM_TAG_VALGRIND -# define VM_TAG_VALGRIND 0 -#endif - /* We have been advised that the mapping is allowable at the specified address. So hand it off to the kernel, and propagate any resulting failure immediately. */ diff --git a/coregrind/m_dispatch/dispatch-arm64-darwin.S b/coregrind/m_dispatch/dispatch-arm64-darwin.S index 31ba6a93b..817c904b1 100644 --- a/coregrind/m_dispatch/dispatch-arm64-darwin.S +++ b/coregrind/m_dispatch/dispatch-arm64-darwin.S @@ -71,8 +71,7 @@ VG_(disp_run_translations): stp x25, x26, [sp, #-16]! stp x23, x24, [sp, #-16]! stp x21, x22, [sp, #-16]! - stp x19, x20, [sp, #-16]! - stp x0, xzr, [sp, #-16]! + stp x0, x20, [sp, #-16]! /* set FPSCR to vex-required default value */ // FIXME @@ -118,8 +117,7 @@ postamble: remove_frame: /* Restore int regs, including importantly x0 (two_words), but not x1 */ - ldp x0, xzr, [sp], #16 - ldp x19, x20, [sp], #16 + ldp x0, x20, [sp], #16 ldp x21, x22, [sp], #16 ldp x23, x24, [sp], #16 ldp x25, x26, [sp], #16 diff --git a/coregrind/m_gdbserver/server.c b/coregrind/m_gdbserver/server.c index f1dc81ff9..f03a387c7 100644 --- a/coregrind/m_gdbserver/server.c +++ b/coregrind/m_gdbserver/server.c @@ -1329,8 +1329,7 @@ static void handle_j_requests (char *arg_own_buf, Bool* skip_reply) { #if defined(VGO_darwin) - // We limit to vgdb=full because it can be quite slow to get all the images - if (VG_(clo_vgdb) == Vg_VgdbFull && strncmp("jGetLoadedDynamicLibrariesInfos:", arg_own_buf, 32) == 0) { + if (strncmp("jGetLoadedDynamicLibrariesInfos:", arg_own_buf, 32) == 0) { HChar *p = arg_own_buf + 32; unsigned char csum = 0; Int counter = 0; @@ -1362,7 +1361,9 @@ void handle_j_requests (char *arg_own_buf, Bool* skip_reply) *skip_reply = True; } return; - } else if (VG_(strncmp)(p, "{\"solib_addresses\":[", 20) == 0) { + + // We limit to vgdb=full because lldb takes forever to load the images + } else if (VG_(strncmp)(p, "{\"solib_addresses\":[", 20) == 0 && VG_(clo_vgdb) == Vg_VgdbFull) { // assumption: we are getting {"solib_addresses":[1234,5678]} // we might get a lot of images at once (easily in the 100s) which might be bigger than PBUFSIZ // so we stream it in chunks (1 image per chunk) diff --git a/coregrind/m_libcsetjmp.c b/coregrind/m_libcsetjmp.c index 23a22265c..ecfe2ea1b 100644 --- a/coregrind/m_libcsetjmp.c +++ b/coregrind/m_libcsetjmp.c @@ -387,33 +387,31 @@ __asm__( ".globl _VG_MINIMAL_SETJMP" "\n" "_VG_MINIMAL_SETJMP:" "\n" // x0 = jmp_buf " mov x1, sp\n" /* can't STP from sp */ -" stp x19, x20, [x0, #0x00]\n" +" stp x1, x20, [x0, #0x00]\n" " stp x21, x22, [x0, #0x10]\n" " stp x23, x24, [x0, #0x20]\n" " stp x25, x26, [x0, #0x30]\n" " stp x27, x28, [x0, #0x40]\n" " stp x29, x30, [x0, #0x50]\n" -" stp x1, xzr, [x0, #0x60]\n" -" stp d8, d9, [x0, #0x70]\n" -" stp d10, d11, [x0, #0x80]\n" -" stp d12, d13, [x0, #0x90]\n" -" stp d14, d15, [x0, #0xA0]\n" +" stp d8, d9, [x0, #0x60]\n" +" stp d10, d11, [x0, #0x70]\n" +" stp d12, d13, [x0, #0x80]\n" +" stp d14, d15, [x0, #0x90]\n" " mov x0, #0\n" // return 0 on the first return " ret\n" ".globl _VG_MINIMAL_LONGJMP" "\n" "_VG_MINIMAL_LONGJMP:" "\n" // x0 = jmp_buf -" ldp x19, x20, [x0, #0x00]\n" +" ldp x1, x20, [x0, #0x00]\n" " ldp x21, x22, [x0, #0x10]\n" " ldp x23, x24, [x0, #0x20]\n" " ldp x25, x26, [x0, #0x30]\n" " ldp x27, x28, [x0, #0x40]\n" " ldp x29, x30, [x0, #0x50]\n" -" ldp x1, xzr, [x0, #0x60]\n" -" ldp d8, d9, [x0, #0x70]\n" -" ldp d10, d11, [x0, #0x80]\n" -" ldp d12, d13, [x0, #0x90]\n" -" ldp d14, d15, [x0, #0xA0]\n" +" ldp d8, d9, [x0, #0x60]\n" +" ldp d10, d11, [x0, #0x70]\n" +" ldp d12, d13, [x0, #0x80]\n" +" ldp d14, d15, [x0, #0x90]\n" " mov sp, x1\n" " mov x0, #1\n" // return non-zero on the second return " br lr\n" diff --git a/coregrind/m_transtab.c b/coregrind/m_transtab.c index 4eafb50a5..cd9d01f5b 100644 --- a/coregrind/m_transtab.c +++ b/coregrind/m_transtab.c @@ -2451,10 +2451,12 @@ void VG_(add_to_unredir_transtab)( const VexGuestExtents* vge, if (i > unredir_tt_highwater) unredir_tt_highwater = i; + ALLOW_RWX_WRITE((Addr) unredir_tc, N_UNREDIR_TT * UNREDIR_SZB); dstP = (HChar*)&unredir_tc[unredir_tc_used]; srcP = (HChar*)code; for (j = 0; j < code_len; j++) dstP[j] = srcP[j]; + ALLOW_RWX_EXECUTE((Addr) unredir_tc, N_UNREDIR_TT * UNREDIR_SZB); VG_(invalidate_icache)( dstP, code_len ); diff --git a/memcheck/mc_machine.c b/memcheck/mc_machine.c index 3deda2ea8..6091de279 100644 --- a/memcheck/mc_machine.c +++ b/memcheck/mc_machine.c @@ -1115,6 +1115,7 @@ static Int get_otrack_shadow_offset_wrk ( Int offset, Int szB ) if (o == GOF(CMSTART) && sz == 8) return -1; // untracked if (o == GOF(CMLEN) && sz == 8) return -1; // untracked + if (o == GOF(NRADDR) && sz == 8) return -1; // untracked if (o == GOF(LLSC_SIZE) && sz == 8) return -1; // untracked if (o == GOF(LLSC_ADDR) && sz == 8) return o;