master: Delete immobile space sigsegv handler

snuglas via Sbcl-commits <[email protected]>
Newsgroups gmane.lisp.steel-bank.cvs
Message-ID <[email protected]>
The branch "master" has been updated in SBCL:
       via  b5150429f79f3a9a8baff3378ed63e20edaa1f84 (commit)
      from  315d1ee56861ec6d4d22a3816163b406a64c4aff (commit)

- Log -----------------------------------------------------------------
commit b5150429f79f3a9a8baff3378ed63e20edaa1f84
Author: Douglas Katzman <[email protected]>
Date:   Wed Apr 22 12:29:11 2026 -0400

    Delete immobile space sigsegv handler
---
 src/runtime/gencgc.c         |  6 ------
 src/runtime/immobile-space.c | 32 --------------------------------
 src/runtime/win32-os.c       |  6 ------
 3 files changed, 44 deletions(-)

diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c
index 5d2e5b80e..cc52b7f5f 100644
--- a/src/runtime/gencgc.c
+++ b/src/runtime/gencgc.c
@@ -4259,12 +4259,6 @@ int gencgc_handle_wp_violation(__attribute__((unused)) void* context, void* faul
 
     /* Check whether the fault is within the dynamic space. */
     if (page_index == (-1)) {
-#ifdef LISP_FEATURE_IMMOBILE_SPACE
-        extern int immobile_space_handle_wp_violation(void*);
-        if (immobile_space_handle_wp_violation(fault_addr))
-            return 1;
-#endif
-
         /* It can be helpful to be able to put a breakpoint on this
          * case to help diagnose low-level problems. */
         unhandled_sigmemoryfault(fault_addr);
diff --git a/src/runtime/immobile-space.c b/src/runtime/immobile-space.c
index de396634e..55fd44df3 100644
--- a/src/runtime/immobile-space.c
+++ b/src/runtime/immobile-space.c
@@ -1372,38 +1372,6 @@ void prepare_immobile_space_for_save(bool verbose)
 
 //// Interface
 
-int immobile_space_handle_wp_violation(void* fault_addr)
-{
-    low_page_index_t page = find_fixedobj_page_index(fault_addr);
-    if (page < 0)
-      return 0; // unhandled
-
-#if 0
-    if (fixedobj_pages[page].attr.parts.obj_align == SYMBOL_SIZE) { // good
-        // Should only experience sigsegv on symbols and not layouts
-        int byte_offset = (char*)fault_addr - (char*)PTR_ALIGN_DOWN(fault_addr, IMMOBILE_CARD_BYTES);
-        int object_offset = byte_offset / 48;
-        struct symbol*s = (void*)((object_offset * 48) +
-                                  (char*)PTR_ALIGN_DOWN(fault_addr, IMMOBILE_CARD_BYTES));
-        fprintf(stderr, "fault @ %p page %d object %p\n",
-                fault_addr, page, s /*, (char*)VECTOR(s->name)->data*/);
-    } else {
-        /* Needed for tracking down logic errors in software marking.
-         * To reach here you of course must use mprotect */
-        lose("Unexpected fault on fixedobj page @ %p. Dropping to ldb", fault_addr);
-    }
-#endif
-    os_protect(PTR_ALIGN_DOWN(fault_addr, IMMOBILE_CARD_BYTES),
-               IMMOBILE_CARD_BYTES, OS_VM_PROT_READ|OS_VM_PROT_WRITE);
-
-    // FIXME: the _CLEARED flag doesn't achieve much if anything.
-    if (!(fixedobj_pages[page].attr.parts.flags & (WRITE_PROTECT|WRITE_PROTECT_CLEARED)))
-        return 0;
-    SET_WP_FLAG(page, WRITE_PROTECT_CLEARED);
-
-    return 1;
-}
-
 /// For defragmentation
 
 static struct tempspace {
diff --git a/src/runtime/win32-os.c b/src/runtime/win32-os.c
index 55438439f..37327c913 100644
--- a/src/runtime/win32-os.c
+++ b/src/runtime/win32-os.c
@@ -956,12 +956,6 @@ handle_access_violation(os_context_t *ctx,
     }
 #endif
 
-#ifdef LISP_FEATURE_IMMOBILE_SPACE
-    extern int immobile_space_handle_wp_violation(void*);
-    if (immobile_space_handle_wp_violation(fault_address)) {
-        return 0;
-    }
-#endif
 #ifdef LISP_FEATURE_TLS_LOAD_INDIRECT
     if (handle_tls_deref_trap(ctx, fault_address)) return 0;
 #endif

-----------------------------------------------------------------------


hooks/post-receive
-- 
SBCL
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.