diff --git a/clisp-s390x-address-range.diff b/clisp-s390x-address-range.diff new file mode 100644 index 0000000..f30cde0 --- /dev/null +++ b/clisp-s390x-address-range.diff @@ -0,0 +1,32 @@ +diff -r 51ceb35b1711 src/lispbibl.d +--- a/src/lispbibl.d Tue Feb 13 18:01:47 2018 +0100 ++++ b/src/lispbibl.d Tue Feb 13 21:16:46 2018 +0100 +@@ -2690,9 +2690,15 @@ + MALLOC_ADDRESS_RANGE = 0x0000000081000000UL ... 0x00000000BE000000UL + SHLIB_ADDRESS_RANGE = 0x000003FFFC000000UL or 0x000003FFFD000000UL + STACK_ADDRESS_RANGE = 0x000003FFFF000000UL +- There is room from 0x000100000000UL to 0x03FF00000000UL. */ ++ 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 0x020000000000UL. */ + #define MAPPABLE_ADDRESS_RANGE_START 0x000100000000UL +- #define MAPPABLE_ADDRESS_RANGE_END 0x03FEFFFFFFFFUL ++ #define MAPPABLE_ADDRESS_RANGE_END 0x01FFFFFFFFFFUL + #endif + #if defined(UNIX_LINUX) && defined(SPARC64) + /* On Linux 3.2/sparc64: +@@ -3463,8 +3469,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 */ diff --git a/clisp-s390x.diff b/clisp-s390x.diff deleted file mode 100644 index b5c3764..0000000 --- a/clisp-s390x.diff +++ /dev/null @@ -1,16 +0,0 @@ -diff -r f618e42f6fef src/makemake.in ---- a/src/makemake.in Mon Feb 12 01:32:02 2018 +0100 -+++ b/src/makemake.in Mon Feb 12 20:06:47 2018 +0100 -@@ -2990,9 +2990,10 @@ - # use and -O2. - flags2=$flags2' -O1' - fi -- if [ $f = lisparit -a "$cpu" = s390x ] ; then -+ if [ "$cpu" = s390x ] ; then - # gcc-4.9.2 on Linux/s390x miscompiles lisparit.d when -O2 is used. -- flags2=$flags2' -O1' -+ # gcc-7.3 on Linux/s390x miscompiles something when -O is used. -+ flags2=$flags2' -O0' - fi - ;; - esac diff --git a/clisp.spec b/clisp.spec index ee71720..8764a15 100644 --- a/clisp.spec +++ b/clisp.spec @@ -49,7 +49,7 @@ Patch16: clisp-db6.diff # PATCH-FIX-UPSTREAM arm Patch20: clisp-arm.diff # PATCH-FIX-UPSTREAM s390x -Patch21: clisp-s390x.diff +Patch21: clisp-s390x-address-range.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/site/after/syntax @@ -191,7 +191,7 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; -# aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; aarch64)MYCFLAGS="${MYCFLAGS}" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; @@ -199,8 +199,7 @@ case "$(uname -m)" in sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD -DSAFETY=3" - port=--enable-portability ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;;