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

Reply via email to