Sébastien Villemot wrote:
> I gave it a try, but it fails to build on a plain Debian unstable/amd64 
> system,
> with:
> 
> gcc -I/tmp/clisp-2.49.90/src/gllib -g -O2 -no-integrated-cpp -W -Wswitch 
> -Wcomment -Wpointer-arith -Wreturn-type -Wmissing-declarations -Wimplicit 
> -Wno-sign-compare -Wno-format-nonliteral -Wno-shift-negative-value -O -fwrapv 
> -fno-strict-aliasing -DNO_ASM -DENABLE_UNICODE -DDYNAMIC_FFI 
> -DDYNAMIC_MODULES -I. -c spvw.c
> In file included from spvw.d:23:0:
> lispbibl.d:6554:6: error: #error oint_addr_mask does not cover 
> CODE_ADDRESS_RANGE !!
>      #error oint_addr_mask does not cover CODE_ADDRESS_RANGE !!
>       ^~~~~
> 
> I attach the configure log.

Thanks. I see the same thing on Ubuntu 17.10/x86_64. The memory map has
changed again, in recent Linux/x86_64 kernels.

This patch should fix it.

Bruno

diff -r a1e465822aa1 Makefile.devel
--- a/Makefile.devel	Tue Feb 13 10:37:57 2018 +0100
+++ b/Makefile.devel	Tue Feb 13 17:42:19 2018 +0100
@@ -1896,7 +1896,6 @@
   build-porting64-gcc-heapcodes-spvw_mixed_blocks \
   build-porting64-gcc-typecodes-spvw_mixed_blocks-malloc \
   build-porting64-gcc-typecodes-spvw_mixed_blocks-trivialmap \
-  build-porting64-gcc-spvw_pure_blocks \
   build-porting64-gcc-limited_memory \
   build-porting64-gcc-old_gc \
   build-porting64-gcc-multithread_gc \
diff -r a1e465822aa1 src/lispbibl.d
--- a/src/lispbibl.d	Tue Feb 13 10:37:57 2018 +0100
+++ b/src/lispbibl.d	Tue Feb 13 17:42:19 2018 +0100
@@ -2607,16 +2607,22 @@
   #if defined(UNIX_LINUX) && defined(AMD64)
     /* On Linux/x86_64:
        MMAP_FIXED_ADDRESS_HIGHEST_BIT = 46
-       CODE_ADDRESS_RANGE   = 0x0000000000000000UL
+       CODE_ADDRESS_RANGE   = 0x0000000000000000UL or 0x000055xxxx000000UL or 0x000056xxxx000000UL (in Linux 4.13)
        MALLOC_ADDRESS_RANGE = 0x000000000x000000UL
        SHLIB_ADDRESS_RANGE  = 0x00000034F5000000UL or 0x0000003844000000UL or 0x00007Fxxxx000000UL
                               or 0x0000002Axx000000UL or 0x0000002Bxx000000UL (in Linux 3.2, when invoked by 'make')
                               or 0x00007Fxxxx000000UL (in WSL)
        STACK_ADDRESS_RANGE  = 0x0000007FBF000000UL or 0x00007FFEBF000000UL
-       There is room from 0x010000000000UL to 0x2A0000000000UL
-       and           from 0x400000000000UL to 0x7E0000000000UL. */
-    #define MAPPABLE_ADDRESS_RANGE_START 0x400000000000UL
-    #define MAPPABLE_ADDRESS_RANGE_END   0x7DFFFFFFFFFFUL
+       There is room from 0x008000000000UL to 0x2A0000000000UL
+       and           from 0x400000000000UL to 0x540000000000UL
+       and           from 0x580000000000UL to 0x7E0000000000UL. */
+    /* Force the same CODE_ADDRESS_RANGE across platforms. */
+    #if (CODE_ADDRESS_RANGE == 0x0000000000000000UL || (CODE_ADDRESS_RANGE >= 0x0000550000000000UL && CODE_ADDRESS_RANGE < 0x0000570000000000UL))
+      #undef CODE_ADDRESS_RANGE
+      #define CODE_ADDRESS_RANGE 0x0000570000000000UL
+    #endif
+    #define MAPPABLE_ADDRESS_RANGE_START 0x008000000000UL
+    #define MAPPABLE_ADDRESS_RANGE_END   0x1FFFFFFFFFFFUL
   #endif
   #if defined(UNIX_LINUX) && defined(ARM64)
     /* On Linux/arm64:
@@ -3411,11 +3417,11 @@
   /* 64-bit platforms */
   #if defined(UNIX_LINUX) && defined(AMD64) /* Linux/x86_64 */
     #define SINGLEMAP_ADDRESS_BASE 0UL
-    #define SINGLEMAP_TYPE_MASK    0x5F0000000000UL
-    #define SINGLEMAP_oint_type_shift 40
-    /* This configuration allocates memory outside the MAPPABLE_ADDRESS_RANGE. */
-    #define IGNORE_MAPPABLE_ADDRESS_RANGE
-    #define SINGLEMAP_WORKS 1
+    #define SINGLEMAP_TYPE_MASK    0x1F8000000000UL
+    #define SINGLEMAP_oint_type_shift 39
+    /* Actually no such configuration works, because the CODE_ADDRESS_RANGE
+       consumes so many bits that we have at most 2+1 bits for the typecode. */
+    #define SINGLEMAP_WORKS 0
   #endif
   #if defined(UNIX_LINUX) && defined(ARM64) /* Linux/arm64 */
     #if 1 /* arbitrary choice */
_______________________________________________
pkg-common-lisp-devel mailing list
pkg-common-lisp-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-common-lisp-devel

Reply via email to