On Fri, Apr 27, 2018 at 05:56:26PM +0200, Jeremie Courreges-Anglas wrote:
> On Fri, Apr 27 2018, Solene Rapenne <sol...@perso.pw> wrote:
> > CC maintainer
> >
> > Solene Rapenne writes:
> >
> >> bump sbcl 1.4.5 -> 1.4.6
> >>
> >> including <pthread.h> is mandatory in this new version, patch
> >> provided. patch on x86-64-arch.c fix the build for amd64. I also patched
> >> x64-arch.c for i386 but I didn't test it (don't have an i386 system)
> 
> Works fine on amd64.  Please patch ppc-arch.c preemptively and it's ok jca@

I'd patch amd64 this way in patches/patch-src_runtime_x86-64-arch_c:


$OpenBSD$

Index: src/runtime/x86-64-arch.c
--- src/runtime/x86-64-arch.c.orig
+++ src/runtime/x86-64-arch.c
@@ -580,7 +580,9 @@ lispobj fdefn_callee_lispobj(struct fdefn* fdefn) {
 
 extern unsigned int alloc_profile_n_counters;
 extern unsigned int max_alloc_point_counters;
+#ifdef LISP_FEATURE_SB_THREAD
 extern pthread_mutex_t alloc_profiler_lock;
+#endif
 
 static unsigned int claim_index(int qty)
 {


Patching the i386 and ppc *-arch.c files isn't necessary. However i386
didn't build for me (in a VM). I think we need to do this in
patches/patch-src_runtime_bsd-os_c:


$OpenBSD$

MAP_TRYFIXED is needed to allow SBCL to relocate its heap if the
hardcoded virtual address is unavailable.

Index: src/runtime/bsd-os.c
--- src/runtime/bsd-os.c.orig
+++ src/runtime/bsd-os.c
@@ -157,7 +157,11 @@ os_validate(int movable, os_vm_address_t addr, os_vm_s
          * the hint address, and moreover that it "is the default behavior") */
         // FALLTHROUGH_INTENDED
     case NOT_MOVABLE:
+#ifdef MAP_TRYFIXED
+        flags = MAP_TRYFIXED;
+#else
         flags = MAP_FIXED;
+#endif
     }
 #ifdef MAP_EXCL // not defined in OpenBSD, NetBSD, DragonFlyBSD
     if (flags & MAP_FIXED) flags |= MAP_EXCL;

Reply via email to