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