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
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-common-lisp-devel