Source: sbcl Version: 2:1.5.6-1 Severity: normal Tags: patch User: [email protected] Usertags: alpha
Hi! While bootstrapping sbcl on alpha, I ran into an issue that was introduced in 3bdf881c145682c86b511af4117b0c617b28353d (Change heap-reloc test not to override mmap() via LD_PRELOAD). The attached patch fixes this issue, could you include it in the next upload? I have already posted it upstream on sbcl-devel/sbcl-bugs. Thanks, Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - [email protected] `. `' Freie Universitaet Berlin - [email protected] `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
>From b3b9603afd99ccbaa165e2daf088d28bdba29ae8 Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz <[email protected]> Date: Thu, 5 Sep 2019 23:07:52 +0200 Subject: [PATCH] alpha: Move os_set_cheneygc_spaces() to src/runtime/linux-mman.c --- src/runtime/linux-mman.c | 16 ++++++++++++++++ src/runtime/linux-os.c | 17 ----------------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/runtime/linux-mman.c b/src/runtime/linux-mman.c index 9b8928ba6..ff5316d7c 100644 --- a/src/runtime/linux-mman.c +++ b/src/runtime/linux-mman.c @@ -6,6 +6,22 @@ #include "os.h" #include "interr.h" +#ifdef LISP_FEATURE_ALPHA +/* The Alpha is a 64 bit CPU. SBCL is a 32 bit application. Due to all + * the places that assume we can get a pointer into a fixnum with no + * information loss, we have to make sure it allocates all its ram in the + * 0-2Gb region. */ + +static void * under_2gb_free_pointer; +os_set_cheneygc_spaces(uword_t space0_start, uword_t space1_start) +{ + uword_t max; + max = (space1_start > space0_start) ? space1_start : space0_start; + under_2gb_free_pointer = max + dynamic_space_size; +} + +#endif + os_vm_address_t os_validate(int movable, os_vm_address_t addr, os_vm_size_t len) { diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c index a033d69ee..37c166c48 100644 --- a/src/runtime/linux-os.c +++ b/src/runtime/linux-os.c @@ -333,23 +333,6 @@ int os_preinit(char *argv[], char *envp[]) return 0; } - -#ifdef LISP_FEATURE_ALPHA -/* The Alpha is a 64 bit CPU. SBCL is a 32 bit application. Due to all - * the places that assume we can get a pointer into a fixnum with no - * information loss, we have to make sure it allocates all its ram in the - * 0-2Gb region. */ - -static void * under_2gb_free_pointer; -os_set_cheneygc_spaces(uword_t space0_start, uword_t space1_start) -{ - uword_t max; - max = (space1_start > space0_start) ? space1_start : space0_start; - under_2gb_free_pointer = max + dynamic_space_size; -} - -#endif - void os_protect(os_vm_address_t address, os_vm_size_t length, os_vm_prot_t prot) { -- 2.23.0

