Hi Sébastien, Thanks a lot for these build reports!
> More precisely, the status on release architectures is the following: > - amd64: ok > - arm64: fails to generate lisp image (memory mapping issue) Please use the attached memory-map-arm64.diff. > - armel: lisp image generated, but fails to compile asdf (memory mapping > issue) > - armhf: can't run lisp image (PSEUDOCODE_ALIGNMENT is not fulfilled) > - i386: builds and passes tests, but scary messages about memory mappings Please use the attached memory-map-i386.diff. > - mips: lisp image generated, but fails to compile asdf (memory mapping issue) > - mipsel: not yet tried (waiting for a build daemon to be available) Please use the attached memory-map-mips.diff. > - mips64el: fails to generate lisp image (memory mapping issue) Please use the attached memory-map-mips64.diff. > - ppc64el: lisp image generated, but fails to compile asdf (segfault) > - s390x: can't run lisp image (segfault) Please use the attached memory-map-s390x.diff. I'll continue with the other issues tomorrow. Bruno
diff -r 4d4aeae90e71 -r 180a5ded31f4 Makefile.devel --- a/Makefile.devel Tue Feb 13 21:17:08 2018 +0100 +++ b/Makefile.devel Tue Feb 13 21:36:51 2018 +0100 @@ -1918,7 +1918,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 4d4aeae90e71 -r 180a5ded31f4 src/lispbibl.d --- a/src/lispbibl.d Tue Feb 13 21:17:08 2018 +0100 +++ b/src/lispbibl.d Tue Feb 13 21:36:51 2018 +0100 @@ -2632,7 +2632,18 @@ MALLOC_ADDRESS_RANGE = 0x0000000009000000UL or 0x000000000E000000UL or 0x000000001E000000UL or 0x0000000021000000UL SHLIB_ADDRESS_RANGE = 0x0000002000000000UL or 0x0000007F82000000UL STACK_ADDRESS_RANGE = 0x0000007FC8000000UL or 0x0000007F7A000000UL or 0x0000007FF0000000UL or 0x0000007FFC000000UL + On Linux/arm64 build.opensuse.org or Debian build machines: + MMAP_FIXED_ADDRESS_HIGHEST_BIT = 47 + CODE_ADDRESS_RANGE = 0x0000000000000000UL or 0x0000AAAAxx000000UL + MALLOC_ADDRESS_RANGE = 0x0000000000000000UL or 0x0000AAAAxx000000UL + SHLIB_ADDRESS_RANGE = 0x0000400000000000UL or 0x0000FFFFxx000000UL + STACK_ADDRESS_RANGE = 0x0000FFFFFF000000UL or 0x0000FFFFxx000000UL There is room from 0x002100000000UL to 0x007F00000000UL. */ + /* Force the same CODE_ADDRESS_RANGE across platforms. */ + #if (CODE_ADDRESS_RANGE == 0x0000000000000000UL || (CODE_ADDRESS_RANGE >= 0x0000AAAA00000000UL && CODE_ADDRESS_RANGE < 0x0000AAAB00000000UL)) + #undef CODE_ADDRESS_RANGE + #define CODE_ADDRESS_RANGE 0x0000AAAAFF000000UL + #endif #define MAPPABLE_ADDRESS_RANGE_START 0x002100000000UL #define MAPPABLE_ADDRESS_RANGE_END 0x007EFFFFFFFFUL #endif @@ -3441,7 +3452,9 @@ #define SINGLEMAP_TYPE_MASK 0x003F00000000UL #endif #define SINGLEMAP_oint_type_shift 32 - #define SINGLEMAP_WORKS 1 + /* Actually no such configuration works, because the CODE_ADDRESS_RANGE + consumes so many bits that we have at most 3+1 bits for the typecode. */ + #define SINGLEMAP_WORKS 0 #endif #if defined(UNIX_LINUX) && defined(DECALPHA) /* Linux/alpha */ #define SINGLEMAP_ADDRESS_BASE 0UL
diff -r 180a5ded31f4 Makefile.devel --- a/Makefile.devel Tue Feb 13 21:36:51 2018 +0100 +++ b/Makefile.devel Wed Feb 14 23:27:24 2018 +0100 @@ -1360,7 +1360,6 @@ build-porting32-gcc-kernelvoid32_heapcodes \ build-porting32-gcc-heapcodes-spvw_pages \ build-porting32-gcc-heapcodes-spvw_mixed_blocks \ - build-porting32-gcc-spvw_pure_blocks \ build-porting32-gcc-wide \ build-porting32-gcc-limited_memory \ build-porting32-gcc-old_gc \ diff -r 180a5ded31f4 src/lispbibl.d --- a/src/lispbibl.d Tue Feb 13 21:36:51 2018 +0100 +++ b/src/lispbibl.d Wed Feb 14 23:27:24 2018 +0100 @@ -2227,21 +2227,21 @@ MALLOC_ADDRESS_RANGE = 0x08000000UL ... 0x0A000000UL SHLIB_ADDRESS_RANGE = 0xF7000000UL STACK_ADDRESS_RANGE = 0xFF000000UL - There is room from 0x0B000000UL to 0xB7000000UL, but let's keep some - distance. */ + On some Linux/i386 Debian build machines: + MMAP_FIXED_ADDRESS_HIGHEST_BIT = 30 + CODE_ADDRESS_RANGE = 0x56000000UL + MALLOC_ADDRESS_RANGE = 0x58000000UL + SHLIB_ADDRESS_RANGE = 0xF7000000UL + STACK_ADDRESS_RANGE = 0xFF000000UL + There is room from 0x0B000000UL to 0x53000000UL + and from 0x5B000000UL to 0xB7000000UL, but let's keep some distance. */ /* Force the same CODE_ADDRESS_RANGE across platforms. */ - #if (CODE_ADDRESS_RANGE == 0x00000000UL || CODE_ADDRESS_RANGE == 0x08000000UL) + #if (CODE_ADDRESS_RANGE == 0x00000000UL || CODE_ADDRESS_RANGE == 0x08000000UL || CODE_ADDRESS_RANGE == 0x56000000UL) #undef CODE_ADDRESS_RANGE - #define CODE_ADDRESS_RANGE 0x08000000UL - #endif - #define MAPPABLE_ADDRESS_RANGE_START 0x10000000UL + #define CODE_ADDRESS_RANGE 0x5E000000UL + #endif + #define MAPPABLE_ADDRESS_RANGE_START 0x60000000UL #define MAPPABLE_ADDRESS_RANGE_END 0xAFFFFFFFUL - #if 0 /* old */ - #define MAPPABLE_ADDRESS_RANGE1_START 0x2E000000UL - #define MAPPABLE_ADDRESS_RANGE1_END 0x3FFFFFFFUL - #define MAPPABLE_ADDRESS_RANGE2_START 0x64000000UL - #define MAPPABLE_ADDRESS_RANGE2_END 0x7EFFFFFFUL - #endif #endif #if defined(UNIX_LINUX) && defined(M68K) /* On Linux/m68k in qemu user-mode emulation: @@ -3218,7 +3218,9 @@ #define SINGLEMAP_oint_type_shift 24 /* This configuration allocates memory outside the MAPPABLE_ADDRESS_RANGE. */ #define IGNORE_MAPPABLE_ADDRESS_RANGE - #define SINGLEMAP_WORKS 1 + /* 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(M68K) /* Linux/m68k */ #define SINGLEMAP_ADDRESS_BASE 0UL
diff -r 8ffb7f7c67ed -r 3c779ed1164b Makefile.devel --- a/Makefile.devel Wed Feb 14 23:31:33 2018 +0100 +++ b/Makefile.devel Wed Feb 14 23:44:50 2018 +0100 @@ -1399,7 +1399,6 @@ build-porting32-gcc-kernelvoid32_heapcodes \ build-porting32-gcc-heapcodes-spvw_pages \ build-porting32-gcc-heapcodes-spvw_mixed_blocks \ - build-porting32-gcc-spvw_pure_blocks \ build-porting32-gcc-wide \ build-porting32-gcc-limited_memory \ build-porting32-gcc-old_gc \ diff -r 8ffb7f7c67ed -r 3c779ed1164b src/lispbibl.d --- a/src/lispbibl.d Wed Feb 14 23:31:33 2018 +0100 +++ b/src/lispbibl.d Wed Feb 14 23:44:50 2018 +0100 @@ -2269,9 +2269,21 @@ MALLOC_ADDRESS_RANGE = 0x00000000UL SHLIB_ADDRESS_RANGE = 0x2B000000UL STACK_ADDRESS_RANGE = 0x7F000000UL - There is room from 0x2C000000UL to 0x76000000UL. */ + On some Linux/mips Debian build machines: + MMAP_FIXED_ADDRESS_HIGHEST_BIT = 30 + CODE_ADDRESS_RANGE = 0x56000000UL + MALLOC_ADDRESS_RANGE = 0x56000000UL + SHLIB_ADDRESS_RANGE = 0x77000000UL + STACK_ADDRESS_RANGE = 0x7F000000UL + There is room from 0x2C000000UL to 0x53000000UL + and from 0x58000000UL to 0x76000000UL. */ + /* Force the same CODE_ADDRESS_RANGE across platforms. */ + #if (CODE_ADDRESS_RANGE == 0x00000000UL || CODE_ADDRESS_RANGE == 0x56000000UL) + #undef CODE_ADDRESS_RANGE + #define CODE_ADDRESS_RANGE 0x56000000UL + #endif #define MAPPABLE_ADDRESS_RANGE_START 0x2C000000UL - #define MAPPABLE_ADDRESS_RANGE_END 0x75FFFFFFUL + #define MAPPABLE_ADDRESS_RANGE_END 0x52FFFFFFUL #else /* On Linux/mips64eb and Linux/mips64el with n32 ABI: MMAP_FIXED_ADDRESS_HIGHEST_BIT = 30 @@ -3235,7 +3247,9 @@ #define SINGLEMAP_ADDRESS_BASE 0x40000000UL #define SINGLEMAP_TYPE_MASK 0x3F000000UL #define SINGLEMAP_oint_type_shift 24 - #define SINGLEMAP_WORKS 1 + /* Actually no such configuration works, because the CODE_ADDRESS_RANGE + consumes so many bits that we have at most 3+1 bits for the typecode. */ + #define SINGLEMAP_WORKS 0 #else /* Linux/mips with n32 ABI */ #define SINGLEMAP_ADDRESS_BASE 0x10000000UL #define SINGLEMAP_TYPE_MASK 0x6F000000UL
diff -r 3c779ed1164b -r 7eda1c489583 Makefile.devel --- a/Makefile.devel Wed Feb 14 23:44:50 2018 +0100 +++ b/Makefile.devel Wed Feb 14 23:59:54 2018 +0100 @@ -1983,7 +1983,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 3c779ed1164b -r 7eda1c489583 src/lispbibl.d --- a/src/lispbibl.d Wed Feb 14 23:44:50 2018 +0100 +++ b/src/lispbibl.d Wed Feb 14 23:59:54 2018 +0100 @@ -2691,9 +2691,20 @@ MALLOC_ADDRESS_RANGE = 0x000000012x000000UL SHLIB_ADDRESS_RANGE = 0x000000555F000000UL or 0x000000FFEF000000UL..0x000000FFF2000000UL STACK_ADDRESS_RANGE = 0x000000FFFF000000UL - There is room from 0x005600000000UL to 0x00FF00000000UL. */ + On some Linux/mips64 Debian build machines: + MMAP_FIXED_ADDRESS_HIGHEST_BIT = 39 + CODE_ADDRESS_RANGE = 0x000000AAB9000000UL + MALLOC_ADDRESS_RANGE = 0x000000AAB6000000UL + SHLIB_ADDRESS_RANGE = 0x000000FFF3000000UL + STACK_ADDRESS_RANGE = 0x000000FFFF000000UL + There is room from 0x005600000000UL to 0x00AA00000000UL. */ + /* Force the same CODE_ADDRESS_RANGE across platforms. */ + #if (CODE_ADDRESS_RANGE == 0x0000000000000000UL || (CODE_ADDRESS_RANGE >= 0x000000AA00000000UL && CODE_ADDRESS_RANGE < 0x000000AB00000000UL)) + #undef CODE_ADDRESS_RANGE + #define CODE_ADDRESS_RANGE 0x000000AAFF000000UL + #endif #define MAPPABLE_ADDRESS_RANGE_START 0x005600000000UL - #define MAPPABLE_ADDRESS_RANGE_END 0x00FEFFFFFFFFUL + #define MAPPABLE_ADDRESS_RANGE_END 0x00A9FFFFFFFFUL #endif #if defined(UNIX_LINUX) && defined(POWERPC64) /* On Linux/powerpc64 and Linux/powerpc64le: @@ -3488,7 +3499,9 @@ #define SINGLEMAP_ADDRESS_BASE 0x008000000000UL #define SINGLEMAP_TYPE_MASK 0x007E00000000UL #define SINGLEMAP_oint_type_shift 33 - #define SINGLEMAP_WORKS 1 + /* Actually no such configuration works, because the CODE_ADDRESS_RANGE + consumes so many bits that we have at most 4+1 bits for the typecode. */ + #define SINGLEMAP_WORKS 0 #endif #if defined(UNIX_LINUX) && defined(POWERPC64) /* Linux/powerpc64, Linux/powerpc64le */ #define SINGLEMAP_ADDRESS_BASE 0x010000000000UL
--- a/src/lispbibl.d 2018-02-11 12:49:20.000000000 +0100 +++ b/src/lispbibl.d 2018-02-15 00:21:02.453045678 +0100 @@ -2679,13 +2679,19 @@ #if defined(UNIX_LINUX) && defined(S390_64) /* On Linux/s390x: MMAP_FIXED_ADDRESS_HIGHEST_BIT = 52 - CODE_ADDRESS_RANGE = 0x0000000080000000UL - MALLOC_ADDRESS_RANGE = 0x0000000081000000UL ... 0x00000000BE000000UL - SHLIB_ADDRESS_RANGE = 0x000003FFFC000000UL or 0x000003FFFD000000UL + CODE_ADDRESS_RANGE = 0x0000000080000000UL or 0x0000000119000000UL + MALLOC_ADDRESS_RANGE = 0x0000000081000000UL ... 0x00000000BE000000UL or 0x0000000123000000UL + SHLIB_ADDRESS_RANGE = 0x000003FFBC000000UL or 0x000003FFFC000000UL or 0x000003FFFD000000UL + STACK_ADDRESS_RANGE = 0x000003FFE6000000UL or 0x000003FFFF000000UL + On Linux/s390x build.opensuse.org machines: + MMAP_FIXED_ADDRESS_HIGHEST_BIT = 62 + CODE_ADDRESS_RANGE = 0x0000000001000000UL + MALLOC_ADDRESS_RANGE = 0x0000000001000000UL + SHLIB_ADDRESS_RANGE = 0x0000020000000000UL STACK_ADDRESS_RANGE = 0x000003FFFF000000UL - There is room from 0x000100000000UL to 0x03FF00000000UL. */ - #define MAPPABLE_ADDRESS_RANGE_START 0x000100000000UL - #define MAPPABLE_ADDRESS_RANGE_END 0x03FEFFFFFFFFUL + There is room from 0x000200000000UL to 0x020000000000UL. */ + #define MAPPABLE_ADDRESS_RANGE_START 0x000200000000UL + #define MAPPABLE_ADDRESS_RANGE_END 0x01FFFFFFFFFFUL #endif #if defined(UNIX_LINUX) && defined(SPARC64) /* On Linux 3.2/sparc64: @@ -3454,8 +3460,8 @@ #endif #if defined(UNIX_LINUX) && defined(S390_64) /* Linux/s390x */ #define SINGLEMAP_ADDRESS_BASE 0UL - #define SINGLEMAP_TYPE_MASK 0x03F800000000UL - #define SINGLEMAP_oint_type_shift 35 + #define SINGLEMAP_TYPE_MASK 0x01FC00000000UL + #define SINGLEMAP_oint_type_shift 34 #define SINGLEMAP_WORKS 1 #endif #if defined(UNIX_LINUX) && defined(SPARC64) /* Linux/sparc64 */
_______________________________________________ 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