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