From f1624bdea7b5a6b6205047525ecefabe38e752dee268fe95381b2d2b621baa65 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 12 Feb 2018 09:08:26 +0000 Subject: [PATCH 01/37] Update tp 2.49.90, the pre-release of 2.50 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=81 --- clisp-2.39-clx.dif | 37 -- clisp-2.39-ia64-wooh.dif | 3 +- clisp-2.49-configure.dif | 83 ++-- clisp-2.49-personality.patch | 3 +- clisp-2.49-rpath.dif | 6 +- clisp-2.49.90.tar.bz2 | 3 + clisp-9c43d428.tar.bz2 | 3 - clisp-arm.patch | 860 ----------------------------------- clisp-link.dif | 10 +- clisp-linux.patch | 13 +- clisp.changes | 119 +++++ clisp.spec | 47 +- 12 files changed, 201 insertions(+), 986 deletions(-) delete mode 100644 clisp-2.39-clx.dif create mode 100644 clisp-2.49.90.tar.bz2 delete mode 100644 clisp-9c43d428.tar.bz2 delete mode 100644 clisp-arm.patch diff --git a/clisp-2.39-clx.dif b/clisp-2.39-clx.dif deleted file mode 100644 index bb3a4af..0000000 --- a/clisp-2.39-clx.dif +++ /dev/null @@ -1,37 +0,0 @@ ---- - modules/clx/new-clx/clx.f | 6 ++++-- - modules/clx/new-clx/clx.lisp | 1 + - 2 files changed, 5 insertions(+), 2 deletions(-) - ---- a/modules/clx/new-clx/clx.f -+++ b/modules/clx/new-clx/clx.f -@@ -1723,7 +1723,8 @@ static void general_lookup (object type) - DEFUN(XLIB:##L##-ID,xxx) \ - { VALUES1(make_uint29((XID)get_##c (popSTACK()))); } \ - DEFUN(XLIB:##L##-EQUAL,xxx yyy) \ -- { VALUES_IF(get_##c (popSTACK()) == get_##c (popSTACK())); } \ -+ { object _last = popSTACK(); \ -+ VALUES_IF(get_##c (popSTACK()) == get_##c (_last)); } \ - DEFUN(XLIB:LOOKUP-##L,display xxx) \ - { general_lookup (`XLIB::##L##`); } - -@@ -1740,7 +1741,8 @@ static void general_lookup (object type) - DEFUN(XLIB:##L##-P,xxx) \ - { VALUES_IF(c##_p (popSTACK())); } \ - DEFUN(XLIB:##L##-EQUAL,xxx yyy) \ -- { VALUES_IF(get_##c (popSTACK()) == get_##c (popSTACK())); } -+ { object _last = popSTACK(); \ -+ VALUES_IF(get_##c (popSTACK()) == get_##c (_last)); } - - - /* ----------------------------------------------------------------------- ---- a/modules/clx/new-clx/clx.lisp -+++ b/modules/clx/new-clx/clx.lisp -@@ -22,6 +22,7 @@ - ;;;; -------------------------------------------------------------------------- - ;;;; Exports - ;;;; -------------------------------------------------------------------------- -+(export '*displays*) - (export - '(*version* access-control access-error access-hosts activate-screen-saver - add-access-host add-resource add-to-save-set alist alloc-color diff --git a/clisp-2.39-ia64-wooh.dif b/clisp-2.39-ia64-wooh.dif index d80f275..91f8af2 100644 --- a/clisp-2.39-ia64-wooh.dif +++ b/clisp-2.39-ia64-wooh.dif @@ -2,9 +2,10 @@ tests/streams.tst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) +diff --git a/tests/streams.tst b/tests/streams.tst --- a/tests/streams.tst +++ b/tests/streams.tst -@@ -1036,8 +1036,8 @@ T +@@ -1043,8 +1043,8 @@ T (describe (make-array nil :element-type nil) s))) T diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif index 148e0a1..7c1b270 100644 --- a/clisp-2.49-configure.dif +++ b/clisp-2.49-configure.dif @@ -1,13 +1,13 @@ --- - clisp-9c43d428/configure | 4 ++-- - clisp-9c43d428/src/lispbibl.d | 16 +++++++++++----- - clisp-9c43d428/src/makemake.in | 15 ++++++++++++--- - clisp-9c43d428/utils/modprep.lisp | 2 +- - 4 files changed, 26 insertions(+), 11 deletions(-) + clisp-2.49.90/configure | 4 ++-- + clisp-2.49.90/src/lispbibl.d | 16 +++++++++++----- + clisp-2.49.90/src/makemake.in | 17 +++++++++++++---- + clisp-2.49.90/utils/modprep.lisp | 2 +- + 4 files changed, 27 insertions(+), 12 deletions(-) ---- clisp-9c43d428/configure -+++ clisp-9c43d428/configure 2017-07-27 12:30:20.772795623 +0000 -@@ -405,11 +405,11 @@ do +--- clisp-2.49.90/configure ++++ clisp-2.49.90/configure 2018-02-12 08:20:34.280915654 +0000 +@@ -429,11 +429,11 @@ do passnext=makemake ;; --vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*) @@ -21,9 +21,9 @@ makemake_args="$makemake_args --vimdir=" prev=vimdir passnext=both ;; ---- clisp-9c43d428/src/lispbibl.d -+++ clisp-9c43d428/src/lispbibl.d 2017-07-27 12:22:29.421471307 +0000 -@@ -175,7 +175,7 @@ +--- clisp-2.49.90/src/lispbibl.d ++++ clisp-2.49.90/src/lispbibl.d 2018-02-12 08:20:34.284915577 +0000 +@@ -178,7 +178,7 @@ #define PC386 /* IBMPC-compatible with 80386/80486-processor */ #endif #ifdef GENERIC_UNIX @@ -32,7 +32,7 @@ #define PC386 #endif #if (defined(sun) && defined(unix) && defined(sparc)) -@@ -278,8 +278,14 @@ +@@ -270,8 +270,14 @@ #endif #ifdef GENERIC_UNIX #define UNIX @@ -48,7 +48,7 @@ #endif #ifdef __GNU__ #define UNIX_HURD /* the GNU system (Hurd + glibc) */ -@@ -1231,7 +1237,7 @@ typedef signed int signean; +@@ -1281,7 +1287,7 @@ typedef signed int signean; address of its component 'ident' and return it as number: */ #include #ifndef offsetof @@ -57,7 +57,7 @@ #endif /* Determine the offset of an array 'ident' in a struct of the type 'type': */ #if defined(__cplusplus) || defined(MICROSOFT) -@@ -3433,9 +3439,9 @@ typedef signed_int_with_n_bits(intVsize) +@@ -5520,9 +5526,9 @@ typedef signed_int_with_n_bits(intVsize) type_data_object(type,data) */ #if defined(WIDE) && defined(WIDE_STRUCT) #if BIG_ENDIAN_P==WIDE_ENDIANNESS @@ -69,8 +69,8 @@ #endif #elif !(oint_addr_shift==0) #define type_data_object(type,data) \ ---- clisp-9c43d428/src/makemake.in -+++ clisp-9c43d428/src/makemake.in 2017-07-27 12:29:06.778157626 +0000 +--- clisp-2.49.90/src/makemake.in ++++ clisp-2.49.90/src/makemake.in 2018-02-12 08:24:54.275897762 +0000 @@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} # Handle --with-... arguments while test -z "$endofargs"; do @@ -81,32 +81,30 @@ -verb* | --verb* ) verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` test -n "${verbose}" || verbose=true -@@ -1147,6 +1150,7 @@ else +@@ -1183,11 +1186,13 @@ else fi # Main cpu dependencies: +set -x - cpu=$host_cpu_c_abi + cpu="${host_cpu_c_abi}" if test -z "$cpu"; then echo "$0: WARNING: host_cpu_c_abi is void; using host_cpu=${host_cpu}" >&2 -@@ -1157,6 +1161,7 @@ if test -z "$cpu"; then - * ) cpu=${host_cpu} ;; - esac + cpu="${host_cpu}" fi +set +x test "${verbose}" = true -o "${verbose}" = yes && \ cat <&2 -@@ -1293,7 +1298,7 @@ if [ $XCC_GCC = true ] ; then +@@ -1337,7 +1342,7 @@ if [ $XCC_GCC = true ] ; then fi # For platforms that use global register variables... case "$cpu" in -- m68k | i386 | sparc | sparc64 | hppa | m88k | arm | alpha* | convex | s390*) -+ m68k | i386 | sparc | sparc64 | hppa | m88k | arm* | alpha* | convex | s390*) +- m68k | i386 | sparc | sparc64 | hppa | arm | armhf | alpha | s390*) ++ m68k | i386 | sparc | sparc64 | hppa | arm | armhf | armel | alpha | s390*) if [ $CROSS = false ] ; then case "$XCC_GCC_VERSION" in 3.1*) -@@ -1333,6 +1338,9 @@ if [ $XCC_GCC = true ] ; then +@@ -1384,6 +1389,9 @@ if [ $XCC_GCC = true ] ; then XCFLAGS=${XCFLAGS}" -pthread" fi @@ -116,16 +114,25 @@ else if [ $CROSS = false ] ; then -@@ -1714,7 +1722,7 @@ if [ "${enable_portability}" = no ] ; th - ARI_ASMD=$ARI_ASMD' arihppa' - ARI_ASMS=$ARI_ASMS' arihppa' - fi -- if [ "$cpu" = arm -o "$cpu" = armhf ] ; then -+ if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then - ARI_ASMD=$ARI_ASMD' ariarm' - ARI_ASMS=$ARI_ASMS' ariarm' - fi -@@ -3559,8 +3567,9 @@ if [ $CROSS = false ] ; then +@@ -1605,7 +1613,7 @@ else + ;; + + # Linux/arm +- linux*--arm | linux*--armhf) ++ linux*--arm | linux*--armhf | linux*--armel) + XCFLAGS="$XCFLAGS -DNO_ASM" + ;; + +@@ -2109,7 +2117,7 @@ case " ${XCPPFLAGS} ${XCFLAGS} " in + ARI_ASMD=$ARI_ASMD' ari_asm_hppa' + ARI_ASMS=$ARI_ASMS' ari_asm_hppa' + fi +- if [ "$cpu" = arm -o "$cpu" = armhf ] ; then ++ if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then + ARI_ASMD=$ARI_ASMD' ari_asm_arm' + ARI_ASMS=$ARI_ASMS' ari_asm_arm' + fi +@@ -4105,8 +4113,9 @@ if [ $CROSS = false ] ; then echol if [ "${with_dynamic_modules}" != no ]; then depends="full install-modules force" @@ -136,9 +143,9 @@ echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod" echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)" echol ---- clisp-9c43d428/utils/modprep.lisp -+++ clisp-9c43d428/utils/modprep.lisp 2017-07-27 12:22:29.421471307 +0000 -@@ -327,7 +327,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); +--- clisp-2.49.90/utils/modprep.lisp ++++ clisp-2.49.90/utils/modprep.lisp 2018-02-12 08:20:34.288915500 +0000 +@@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) (t (format out "_~2,'0x" (char-code cc)))))) diff --git a/clisp-2.49-personality.patch b/clisp-2.49-personality.patch index baae881..a97bb07 100644 --- a/clisp-2.49-personality.patch +++ b/clisp-2.49-personality.patch @@ -2,6 +2,7 @@ src/_clisp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) +diff --git a/src/_clisp.c b/src/_clisp.c --- a/src/_clisp.c +++ b/src/_clisp.c @@ -48,6 +48,11 @@ @@ -16,7 +17,7 @@ #if defined(WIN32_NATIVE) # include int shell_quote (char * dest, const char * source); -@@ -429,6 +434,12 @@ int main (int argc, char* argv[]) +@@ -435,6 +440,12 @@ int main (int argc, char* argv[]) } #undef W32ERR #else diff --git a/clisp-2.49-rpath.dif b/clisp-2.49-rpath.dif index 6b527e3..4440ef6 100644 --- a/clisp-2.49-rpath.dif +++ b/clisp-2.49-rpath.dif @@ -1,9 +1,11 @@ - +--- + src/aclocal.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aclocal.m4 b/src/aclocal.m4 --- a/src/aclocal.m4 +++ b/src/aclocal.m4 -@@ -7517,7 +7517,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +@@ -7723,7 +7723,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do diff --git a/clisp-2.49.90.tar.bz2 b/clisp-2.49.90.tar.bz2 new file mode 100644 index 0000000..e7394f9 --- /dev/null +++ b/clisp-2.49.90.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47efb9275171a4a469da00bab4935d9d9c9af6892b5c1951cd7d111a4e37e7fa +size 8921458 diff --git a/clisp-9c43d428.tar.bz2 b/clisp-9c43d428.tar.bz2 deleted file mode 100644 index 6fbe170..0000000 --- a/clisp-9c43d428.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2b2f97c69b2800887fe6773c7f27e958c927bb1f2747d4603973cf3dab9dd062 -size 8659436 diff --git a/clisp-arm.patch b/clisp-arm.patch deleted file mode 100644 index 08e5a19..0000000 --- a/clisp-arm.patch +++ /dev/null @@ -1,860 +0,0 @@ ---- - src/ariarm.d | 204 +++++++++++++++++++++++++++++------------------------------ - 1 file changed, 102 insertions(+), 102 deletions(-) - ---- src/ariarm.d -+++ src/ariarm.d 2017-07-27 12:37:05.517339862 +0000 -@@ -86,7 +86,7 @@ pc .req r15 - - #define C(x) x - #define EXPORT(x) .global x --#define GLABEL(x) x: -+#define GLABEL(x) .type x STT_FUNC; x: - #define LABEL(x) x: - #define RRX rrx - #define END -@@ -187,7 +187,7 @@ GLABEL(mulu32_) - LDR a3,[pc,#ptr_mulu32_high-.-8] - STR a2,[a3,#0] - #endif -- MOVS pc,lr -+ BX lr - - /* extern uint16 divu_3216_1616_ (uint32 x, uint16 y); - entry -@@ -243,7 +243,7 @@ GLABEL(divu_3216_1616_) - LDR a3,[pc,#ptr_divu_16_rest-.-8] /* save rest so can be picked up later */ - STR a2,[a3,#0] /* the result is 16 bits */ - #endif -- MOVS pc, lr -+ BX lr - - /* extern uint32 divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y); | -> Quotient q - extern uint32 divu_32_rest; | -> Rest r -@@ -278,7 +278,7 @@ GLABEL(divu_6432_3232_) - LDR a4,[pc,#ptr_divu_32_rest-.-8] - STR a2,[a4,#0] /* divu_32_rest = remainder */ - #endif -- LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}^ -+ LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc} - - LABEL(divu_6432_3232_l1) - MOV v3, #0 /* s = 0 */ -@@ -346,7 +346,7 @@ LABEL(divu_6432_3232_l1) - LDR a3,[pc,#ptr_divu_32_rest-.-8] - STR a2,[a3,#0] /* divu_32_rest = remainder */ - #endif -- LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc}^ -+ LDMFD sp!, {v1,v2,v3,v4,v5,v6,pc} - - /* extern uintD* copy_loop_up (uintD* sourceptr, uintD* destptr, uintC count); - entry -@@ -370,7 +370,7 @@ GLABEL(copy_loop_up) - LABEL(copy_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,a2 /* return addr of last word stored */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1,lr} /* save work regs */ - LABEL(copy_loop_up_l2) - LDMIA a1!,{a3,v1,ip,lr} /* copy 4 words in one go */ -@@ -380,7 +380,7 @@ LABEL(copy_loop_up_l2) - STMGEIA a2!,{a3,v1,ip,lr} /* 4 more words */ - BGT copy_loop_up_l2 /* and loop */ - MOV a1,a2 /* return addr of last word stored */ -- LDMFD sp!,{v1,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return */ - - /* extern uintD* copy_loop_down (uintD* sourceptr, uintD* destptr, uintC count); - entry -@@ -404,7 +404,7 @@ GLABEL(copy_loop_down) - LABEL(copy_loop_down_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,a2 /* return addr of last word stored */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1,lr} /* save work regs */ - LABEL(copy_loop_down_l2) - LDMDB a1!,{a3,v1,ip,lr} /* copy 4 words in one go */ -@@ -414,7 +414,7 @@ LABEL(copy_loop_down_l2) - STMGEDB a2!,{a3,v1,ip,lr} /* 4 more words */ - BGT copy_loop_down_l2 /* and loop */ - MOV a1,a2 /* return addr of last word stored */ -- LDMFD sp!,{v1,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return */ - - /* extern uintD* clear_loop_up (uintD* destptr, uintC count); - entry -@@ -446,7 +446,7 @@ GLABEL(fill_loop_up) - STRGT a3,[a1],#4 - LABEL(fill_loop_up_l1) - BICS a4,a2,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1,lr} /* save work regs */ - MOV v1,a3 /* copy filler to three other */ - MOV ip,a3 /* registers */ -@@ -456,7 +456,7 @@ LABEL(fill_loop_up_l2) - SUBS a4,a4,#8 /* decrement counter by 8 */ - STMGEIA a1!,{a3,v1,ip,lr} /* if count still positive then store 4 */ - BGT fill_loop_up_l2 /* more and loop */ -- LDMFD sp!,{v1,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return */ - - - /* extern uintD* clear_loop_down (uintD* destptr, uintC count); -@@ -489,7 +489,7 @@ GLABEL(fill_loop_down) - STRGT a3,[a1,#-4]! - LABEL(fill_loop_down_l1) - BICS a4,a2,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1,lr} /* save work regs */ - MOV v1,a3 /* copy filler to three other */ - MOV ip,a3 /* registers */ -@@ -499,7 +499,7 @@ LABEL(fill_loop_down_l2) - SUBS a4,a4,#8 /* decrement counter by 8 */ - STMGEDB a1!,{a3,v1,ip,lr} /* if count still positive then store 4 */ - BGT fill_loop_down_l2 /* more and loop */ -- LDMFD sp!,{v1,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return */ - - /* extern void or_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -529,7 +529,7 @@ GLABEL(or_loop_up) - STRGT ip,[a1],#4 - LABEL(or_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(or_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -541,7 +541,7 @@ LABEL(or_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT or_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void xor_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -571,7 +571,7 @@ GLABEL(xor_loop_up) - STRGT ip,[a1],#4 - LABEL(xor_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(xor_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -583,7 +583,7 @@ LABEL(xor_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT xor_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void and_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -613,7 +613,7 @@ GLABEL(and_loop_up) - STRGT ip,[a1],#4 - LABEL(and_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(and_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -625,7 +625,7 @@ LABEL(and_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT and_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void eqv_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -659,7 +659,7 @@ GLABEL(eqv_loop_up) - STRGT ip,[a1],#4 - LABEL(eqv_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(eqv_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -675,7 +675,7 @@ LABEL(eqv_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT eqv_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void nand_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -709,7 +709,7 @@ GLABEL(nand_loop_up) - STRGT ip,[a1],#4 - LABEL(nand_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(nand_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -725,7 +725,7 @@ LABEL(nand_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT nand_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void nor_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -759,7 +759,7 @@ GLABEL(nor_loop_up) - STRGT ip,[a1],#4 - LABEL(nor_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(nor_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -775,7 +775,7 @@ LABEL(nor_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT nor_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void andc2_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -805,7 +805,7 @@ GLABEL(andc2_loop_up) - STRGT ip,[a1],#4 - LABEL(andc2_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(andc2_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -817,7 +817,7 @@ LABEL(andc2_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT andc2_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void orc2_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -851,7 +851,7 @@ GLABEL(orc2_loop_up) - STRGT ip,[a1],#4 - LABEL(orc2_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(orc2_loop_up_l2) - LDMIA a2!,{a3,v1,v2,ip} /* load 4 words in one go */ -@@ -867,7 +867,7 @@ LABEL(orc2_loop_up_l2) - STMIA a1!,{v3,v4,v5,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT orc2_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern void not_loop_up (uintD* xptr, uintC count); - entry -@@ -893,7 +893,7 @@ GLABEL(not_loop_up) - STRGT a3,[a1],#4 - LABEL(not_loop_up_l1) - BICS a4,a2,#3 /* set counter to multiple of 4 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{lr} /* save work regs */ - LABEL(not_loop_up_l2) - LDMIA a1,{a2,a3,ip,lr} /* load 4 words in one go,NO writeback */ -@@ -904,7 +904,7 @@ LABEL(not_loop_up_l2) - STMIA a1!,{a2,a3,ip,lr} /* store 4 results */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT not_loop_up_l2 /* if count still positive then loop */ -- LDMFD sp!,{pc}^ /* restore work regs and return */ -+ LDMFD sp!,{pc} /* restore work regs and return */ - - /* extern void and_test_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -923,13 +923,13 @@ GLABEL(and_test_loop_up) - LDR ip,[a1],#4 /* to align the total to a multiple */ - TST ip,a4 /* of 4 words */ - MOVNE a1,#1 /* return true if AND_TEST ok */ -- MOVNES pc,lr -+ BXNE lr - BCC and_test_loop_up_l1 /* better to branch than skip instrs. */ - LDRGE a4,[a2],#4 - LDRGE ip,[a1],#4 - TSTGE ip,a4 - MOVNE a1,#1 -- MOVNES pc,lr -+ BXNE lr - ANDS a4,a3,#3 - CMP a4,#2 - BLE and_test_loop_up_l1 /* better to branch than skip instrs. */ -@@ -937,11 +937,11 @@ GLABEL(and_test_loop_up) - LDRGT ip,[a1],#4 - TSTGT ip,a4 - MOVNE a1,#1 -- MOVNES pc,lr -+ BXNE lr - LABEL(and_test_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,#0 /* return false */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v6,lr} /* save work regs */ - MOV v6,a1 /* move xptr to v6 */ - MOV a1,#1 /* set result to true */ -@@ -952,11 +952,11 @@ LABEL(and_test_loop_up_l2) - TSTEQ v4,v1 - TSTEQ v5,v2 - TSTEQ lr,ip -- LDMNEFD sp!,{v1-v6,pc}^ -+ LDMNEFD sp!,{v1-v6,pc} - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT and_test_loop_up_l2 /* if count still positive then loop */ - MOV a1,#0 -- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */ - - /* extern void test_loop_up (uintD* xptr, uintC count); - entry -@@ -973,21 +973,21 @@ GLABEL(test_loop_up) - BEQ test_loop_up_l1 /* yup, so branch */ - LDR a4,[ip],#4 /* TEST the first 1-3 words */ - TEQ a4,#0 /* align the total to a multiple of 4 */ -- MOVNES pc,lr /* return true if AND_TEST ok */ -+ BXNE lr /* return true if AND_TEST ok */ - CMP a3,#2 - BLT test_loop_up_l1 /* need to branch 'cos PSR set */ - LDRGE a4,[ip],#4 /* when checking against zero */ - TEQGE a4,#0 -- MOVNES pc,lr -+ BXNE lr - CMP a3,#2 - BLE test_loop_up_l1 /* need to branch 'cos PSR set */ - LDRGT a4,[ip],#4 /* when checking against zero */ - TEQGT a4,#0 -- MOVNES pc,lr -+ BXNE lr - LABEL(test_loop_up_l1) - BICS a4,a2,#3 /* set counter to multiple of 4 */ - MOVEQ a1,#0 /* return false */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1,lr} /* save work regs */ - LABEL(test_loop_up_l2) - LDMIA ip!,{a2,a3,v1,lr} /* load 4 words in one go */ -@@ -995,11 +995,11 @@ LABEL(test_loop_up_l2) - TEQEQ a3,#0 - TEQEQ v1,#0 - TEQEQ lr,#0 -- LDMNEFD sp!,{v1,pc}^ -+ LDMNEFD sp!,{v1,pc} - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT test_loop_up_l2 /* if count still positive then loop */ - MOV a1,#0 -- LDMFD sp!,{v1,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return */ - - /* extern void compare_loop_up (uintD* xptr, uintD* yptr, uintC count); - entry -@@ -1021,7 +1021,7 @@ GLABEL(compare_loop_up) - CMP ip,a4 /* of 4 words */ - MVNLO a1,#0 /* x < y -> -1 */ - MOVHI a1,#1 /* x > y -> +1 */ -- MOVNES pc,lr /* and return result if not equal */ -+ BXNE lr /* and return result if not equal */ - ANDS a4,a3,#3 - CMP a4,#2 - BLT compare_loop_up_l1 /* need to branch 'cos PSR used */ -@@ -1030,7 +1030,7 @@ GLABEL(compare_loop_up) - CMP ip,a4 - MVNLO a1,#0 - MOVHI a1,#1 -- MOVNES pc,lr -+ BXNE lr - ANDS a4,a3,#3 - CMP a4,#2 - BLE compare_loop_up_l1 /* need to branch 'cos PSR used */ -@@ -1039,11 +1039,11 @@ GLABEL(compare_loop_up) - CMP ip,a4 - MVNLO a1,#0 - MOVHI a1,#1 -- MOVNES pc,lr -+ BXNE lr - LABEL(compare_loop_up_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,#0 /* xptr[] == yptr[] -> 0 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v6,lr} /* save work regs */ - MOV v6,a1 /* move xptr to v6 */ - MOV a1,#1 /* set result to +1 */ -@@ -1055,11 +1055,11 @@ LABEL(compare_loop_up_l2) - CMPEQ v5,v2 - CMPEQ lr,ip - MVNLO a1,#0 /* x < y -> -1 (a1 already holds +1) */ -- LDMNEFD sp!,{v1-v6,pc}^ -+ LDMNEFD sp!,{v1-v6,pc} - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT compare_loop_up_l2 /* if count still positive then loop */ - MOV a1,#0 -- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */ - - /* extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count); - entry -@@ -1111,11 +1111,11 @@ LABEL(add_loop_down_l0) /* at l - BICS a4,a4,#3 /* set counter to multiple of 4 */ - BNE add_loop_down_l3 /* branch if more adds to do */ - ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMEQFD sp!,{v6,pc}^ /* and return */ -+ LDMEQFD sp!,{v6,pc} /* and return */ - LABEL(add_loop_down_l1) - BICS a4,a4,#3 /* set counter to multiple of 4 */ - MOVEQ a1,#0 /* no adds, so C = 0 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - CMN a4,#0 /* clear carry bit */ - STMFD sp!,{v6,lr} - LABEL(add_loop_down_l3) -@@ -1132,7 +1132,7 @@ LABEL(add_loop_down_l2) - TEQ a4,#0 /* are we done ? */ - BNE add_loop_down_l2 /* if count non-zero then loop */ - ADC a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */ - - /* extern uintD inc_loop_down (uintD* ptr, uintC count); - entry -@@ -1150,11 +1150,11 @@ GLABEL(inc_loop_down) - ADDS a4,a4,#1 /* align the total to a multiple of 2 */ - STR a4,[a1] - MOVNE a1,#0 /* set result to 0 */ -- MOVNES pc,lr /* return 0 if non-zero result */ -+ BXNE lr /* return 0 if non-zero result */ - LABEL(inc_loop_down_l1) - BICS a4,a2,#1 /* set counter to multiple of 2 */ - MOVEQ a1,#1 /* return 1 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - MOV ip,a1 /* move ptr to ip */ - MOV a1,#0 /* set result to 0 */ - ANDS a3,a4,#3 -@@ -1163,10 +1163,10 @@ LABEL(inc_loop_down_l1) - ADDS a3,a3,#1 /* INC the two words */ - ADDEQS a2,a2,#1 /* stopping when first word non-zero */ - STMDB ip!,{a2,a3} /* store 2 results */ -- MOVNES pc,lr /* return 0 if any result non-zero */ -+ BXNE lr /* return 0 if any result non-zero */ - SUBS a4,a4,#2 /* decrement counter by 2 */ - MOVEQ a1,#1 /* if finished loop then */ -- MOVEQS pc,lr /* return 1 */ -+ BXEQ lr /* return 1 */ - LABEL(inc_loop_down_l3) /* now a multiple of 4 words */ - STMFD sp!,{v1,lr} /* save work regs */ - LABEL(inc_loop_down_l2) -@@ -1176,11 +1176,11 @@ LABEL(inc_loop_down_l2) - ADDEQS a3,a3,#1 - ADDEQS a2,a2,#1 - STMDB ip!,{a2,a3,v1,lr} /* store 4 results */ -- LDMNEFD sp!,{v1,pc}^ /* return 0 if any result non-zero */ -+ LDMNEFD sp!,{v1,pc} /* return 0 if any result non-zero */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT inc_loop_down_l2 /* if count still positive then loop */ - MOV a1,#1 -- LDMFD sp!,{v1,pc}^ /* restore work regs and return 1 */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return 1 */ - - /* extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count); - entry -@@ -1206,7 +1206,7 @@ GLABEL(sub_loop_down) - LABEL(sub_loop_down_l4) /* drop through for better instr. timings */ - BICS a4,a4,#3 /* set counter to multiple of 4 */ - SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMEQFD sp!,{v6,pc}^ /* and return */ -+ LDMEQFD sp!,{v6,pc} /* and return */ - STMFD sp!,{v1-v5} /* save work regs */ - B sub_loop_down_l2 /* branch if more subtracts to do */ - LABEL(sub_loop_down_l0) -@@ -1224,7 +1224,7 @@ LABEL(sub_loop_down_l0) - LABEL(sub_loop_down_l1) - BICS a4,a4,#3 /* set counter to multiple of 4 */ - MOVEQ a1,#0 /* no subtracts, so C = 0 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - CMP a4,#0 /* set carry bit, since a4 > 0 */ - STMFD sp!,{v1-v6,lr} /* save work regs */ - LABEL(sub_loop_down_l2) -@@ -1239,7 +1239,7 @@ LABEL(sub_loop_down_l2) - TEQ a4,#0 /* are we done ? */ - BNE sub_loop_down_l2 /* if count non-zero then loop */ - SBC a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */ - - /* extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count, uintD carry); - entry -@@ -1269,7 +1269,7 @@ LABEL(subx_loop_down_lsub) - LABEL(subx_loop_down_l4) /* drop through for better instr. timings */ - BICS a4,a4,#3 /* set counter to multiple of 4 */ - SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMEQFD sp!,{v6,pc}^ /* and return */ -+ LDMEQFD sp!,{v6,pc} /* and return */ - STMFD sp!,{v1-v5} /* save work regs */ - B subx_loop_down_l2 /* branch if more subtracts to do */ - LABEL(subx_loop_down_l0) -@@ -1287,7 +1287,7 @@ LABEL(subx_loop_down_l0) - LABEL(subx_loop_down_l1) - BICS a4,a4,#3 /* set counter to multiple of 4 */ - SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{v1-v6,lr} /* save work regs */ - LABEL(subx_loop_down_l2) - LDMDB a2!,{v1,v2,v3,ip} /* load 4 words in one go */ -@@ -1301,7 +1301,7 @@ LABEL(subx_loop_down_l2) - TEQ a4,#0 /* are we done ? */ - BNE subx_loop_down_l2 /* if count non-zero then loop */ - SBC a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMFD sp!,{v1-v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v6,pc} /* restore work regs and return */ - - /* extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count); - entry -@@ -1326,7 +1326,7 @@ GLABEL(subfrom_loop_down) - LABEL(subfrom_loop_down_l4) /* drop through for better instr. timings */ - BICS a4,a3,#3 /* set counter to multiple of 4 */ - SBCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMEQFD sp!,{pc}^ /* and return */ -+ LDMEQFD sp!,{pc} /* and return */ - STMFD sp!,{v1-v5} /* save work regs */ - B subfrom_loop_down_l2 /* branch if more subtracts to do */ - LABEL(subfrom_loop_down_l0) -@@ -1344,7 +1344,7 @@ LABEL(subfrom_loop_down_l0) - LABEL(subfrom_loop_down_l1) - BICS a4,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,#0 /* no subtracts, so C = 0 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - CMP a4,#0 /* set carry bit, since a4 > 0 */ - STMFD sp!,{v1-v5,lr} /* save work regs */ - LABEL(subfrom_loop_down_l2) -@@ -1359,7 +1359,7 @@ LABEL(subfrom_loop_down_l2) - TEQ a4,#0 /* are we done ? */ - BNE subfrom_loop_down_l2 /* if count non-zero then loop */ - SBC a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMFD sp!,{v1-v5,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v5,pc} /* restore work regs and return */ - - /* extern uintD dec_loop_down (uintD* ptr, uintC count); - entry -@@ -1377,11 +1377,11 @@ GLABEL(dec_loop_down) - SUBS a4,a4,#1 /* align the total to a multiple of 2 */ - STR a4,[a1] - MOVCS a1,#0 /* set result to 0 */ -- MOVCSS pc,lr /* return 0 if non-zero result */ -+ BXCS lr /* return 0 if non-zero result */ - LABEL(dec_loop_down_l1) - BICS a4,a2,#1 /* set counter to multiple of 2 */ - MVNEQ a1,#0 /* return -1 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - MOV ip,a1 /* move ptr to ip */ - MOV a1,#0 /* set result to 0 */ - ANDS a3,a4,#3 -@@ -1390,10 +1390,10 @@ LABEL(dec_loop_down_l1) - SUBS a3,a3,#1 /* DEC the two words */ - SUBCCS a2,a2,#1 /* stopping when first word non-zero */ - STMDB ip!,{a2,a3} /* store 2 results */ -- MOVCSS pc,lr /* return 0 if any result non-zero */ -+ BXCS lr /* return 0 if any result non-zero */ - SUBS a4,a4,#2 /* decrement counter by 2 */ - MVNEQ a1,#0 /* if finished loop then */ -- MOVEQS pc,lr /* return -1 */ -+ BXEQ lr /* return -1 */ - LABEL(dec_loop_down_l3) /* now a multiple of 4 words */ - STMFD sp!,{v1,lr} /* save work regs */ - LABEL(dec_loop_down_l2) -@@ -1403,11 +1403,11 @@ LABEL(dec_loop_down_l2) - SUBCCS a3,a3,#1 - SUBCCS a2,a2,#1 - STMDB ip!,{a2,a3,v1,lr} /* store 4 results */ -- LDMCSFD sp!,{v1,pc}^ /* return 0 if any carry */ -+ LDMCSFD sp!,{v1,pc} /* return 0 if any carry */ - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT dec_loop_down_l2 /* if count still positive then loop */ - MVN a1,#0 -- LDMFD sp!,{v1,pc}^ /* restore work regs and return -1 */ -+ LDMFD sp!,{v1,pc} /* restore work regs and return -1 */ - - /* extern void neg_loop_down (uintD* ptr, uintC count); - entry -@@ -1421,7 +1421,7 @@ LABEL(dec_loop_down_l2) - GLABEL(neg_loop_down) - CMPS a2,#0 /* count = 0 ? */ - MOVEQ a1,#0 /* yup, so return 0 */ -- MOVEQS pc,lr -+ BXEQ lr - LABEL(neg_loop_down_l1) /* skip all the zero words first */ - LDR a3,[a1,#-4]! /* compare words against zero */ - CMPS a3,#0 /* downwards in memory */ -@@ -1429,13 +1429,13 @@ LABEL(neg_loop_down_l1) /* skip - SUBS a2,a2,#1 /* reduce count of words */ - BNE neg_loop_down_l1 /* more ?, so loop */ - MOV a1,#0 /* return 0 */ -- MOVS pc,lr -+ BX lr - LABEL(neg_loop_down_l2) - RSB a3,a3,#0 /* first non-zero word = -word */ - STR a3,[a1] - SUBS a2,a2,#1 - MVNEQ a1,#0 /* done ? -> return -1 */ -- MOVEQS pc,lr -+ BXEQ lr - /* now NOT rest of the words */ - ANDS a3,a2,#3 /* multiple of 4 words ? */ - BEQ neg_loop_down_l3 /* yup, so branch */ -@@ -1453,7 +1453,7 @@ LABEL(neg_loop_down_l2) - LABEL(neg_loop_down_l3) - BICS a4,a2,#3 /* set counter to multiple of 4 */ - MVNEQ a1,#0 /* set result to -1 */ -- MOVEQS pc,lr /* if zero then we're done */ -+ BXEQ lr /* if zero then we're done */ - STMFD sp!,{lr} /* save work regs */ - LABEL(neg_loop_down_l4) - LDMDB a1,{a2,a3,ip,lr} /* load 4 words in one go,NO writeback */ -@@ -1465,7 +1465,7 @@ LABEL(neg_loop_down_l4) - SUBS a4,a4,#4 /* decrement counter by 4 */ - BGT neg_loop_down_l4 /* if count still positive then loop */ - MVN a1,#0 /* set result to -1 */ -- LDMFD sp!,{pc}^ /* restore work regs and return -1 */ -+ LDMFD sp!,{pc} /* restore work regs and return -1 */ - - /* extern uintD shift1left_loop_down (uintD* ptr, uintC count); - entry -@@ -1485,7 +1485,7 @@ GLABEL(shift1left_loop_down) - LABEL(shift1left_loop_down_l1) - BICS a4,a2,#1 /* set counter to multiple of 2 */ - ADCEQ a1,a4,a4 /* if zero set result to C (a4 is 0) */ -- MOVEQS pc,lr /* and return */ -+ BXEQ lr /* and return */ - ANDS a3,a4,#3 /* multiple of 4 words ? */ - BEQ shift1left_loop_down_l3 /* yup, so branch */ - LDMDB a1,{a2,a3} /* load 2 words in one go */ -@@ -1494,7 +1494,7 @@ LABEL(shift1left_loop_down_l1) - STMDB a1!,{a2,a3} /* store 2 results */ - BICS a4,a4,#2 /* decrement counter by 2 */ - ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- MOVEQS pc,lr /* and return */ -+ BXEQ lr /* and return */ - LABEL(shift1left_loop_down_l3) /* now a multiple of 4 words */ - STMFD sp!,{lr} /* save work regs */ - LABEL(shift1left_loop_down_l2) -@@ -1508,7 +1508,7 @@ LABEL(shift1left_loop_down_l2) - TEQ a4,#0 /* are we done ? */ - BNE shift1left_loop_down_l2 /* if count non-zero then loop */ - ADC a1,a4,a4 /* set result to Carry (a4 is 0) */ -- LDMFD sp!,{pc}^ /* restore work regs and return 1 */ -+ LDMFD sp!,{pc} /* restore work regs and return 1 */ - - /* extern uintD shiftleft_loop_down (uintD* ptr, uintC count, uintC i, uintD carry); - entry -@@ -1542,7 +1542,7 @@ GLABEL(shiftleft_loop_down) - LABEL(shiftleft_loop_down_l1) - BICS ip,a2,#3 /* set counter to multiple of 4 */ - MOVEQ a1,a4 /* if zero then we're done */ -- LDMEQFD sp!,{v6,pc}^ /* so return last shift out */ -+ LDMEQFD sp!,{v6,pc} /* so return last shift out */ - STMFD sp!,{v1-v3} /* save work regs */ - LABEL(shiftleft_loop_down_l2) - LDMDB a1,{a2,v1,v2,v3} /* load 4 words in one go */ -@@ -1558,7 +1558,7 @@ LABEL(shiftleft_loop_down_l2) - SUBS ip,ip,#4 /* decrement counter by 4 */ - BGT shiftleft_loop_down_l2 /* if count still positive then loop */ - MOV a1,a4 /* result = last shift out */ -- LDMFD sp!,{v1-v3,v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v3,v6,pc} /* restore work regs and return */ - - /* extern uintD shiftleftcopy_loop_down (uintD* sourceptr, uintD* destptr, uintC count, uintC i); - entry -@@ -1593,7 +1593,7 @@ GLABEL(shiftleftcopy_loop_down) - LABEL(shiftleftcopy_loop_down_l1) - BICS ip,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,v5 /* if zero then we're done */ -- LDMEQFD sp!,{v5,v6,pc}^ /* so return last shift out */ -+ LDMEQFD sp!,{v5,v6,pc} /* so return last shift out */ - STMFD sp!,{v1-v3} /* save work regs */ - LABEL(shiftleftcopy_loop_down_l2) - LDMDB a1!,{a3,v1,v2,v3} /* load 4 words in one go */ -@@ -1609,7 +1609,7 @@ LABEL(shiftleftcopy_loop_down_l2) - SUBS ip,ip,#4 /* decrement counter by 4 */ - BGT shiftleftcopy_loop_down_l2 /* if count still positive then loop */ - MOV a1,v5 /* result = last shift out */ -- LDMFD sp!,{v1-v3,v5,v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v3,v5,v6,pc} /* restore work regs and return */ - - /* extern uintD shift1right_loop_up (uintD* ptr, uintC count, uintD carry); - entry -@@ -1630,7 +1630,7 @@ GLABEL(shift1right_loop_up) - LABEL(shift1right_loop_up_l1) - BICS a4,a2,#1 /* set counter to multiple of 2 */ - MOVEQ a1,a4,RRX /* if zero set result to C (a4 is 0) */ -- MOVEQS pc,lr /* and return */ -+ BXEQ lr /* and return */ - ANDS a3,a4,#3 /* multiple of 4 words ? */ - BEQ shift1right_loop_up_l3 /* yup, so branch */ - LDMIA a1,{a2,a3} /* load 2 words in one go */ -@@ -1639,7 +1639,7 @@ LABEL(shift1right_loop_up_l1) - STMIA a1!,{a2,a3} /* store 2 results */ - BICS a4,a4,#2 /* decrement counter by 2 */ - ADCEQ a1,a4,a4 /* set result to Carry (a4 is 0) */ -- MOVEQS pc,lr /* and return */ -+ BXEQ lr /* and return */ - LABEL(shift1right_loop_up_l3) /* now a multiple of 4 words */ - STMFD sp!,{lr} /* save work regs */ - LABEL(shift1right_loop_up_l2) -@@ -1653,7 +1653,7 @@ LABEL(shift1right_loop_up_l2) - TEQ a4,#0 /* are we done ? */ - BNE shift1right_loop_up_l2 /* if count non-zero then loop */ - MOV a1,a4,RRX /* set result to Carry (a4 is 0) */ -- LDMFD sp!,{pc}^ /* restore work regs and return 1 */ -+ LDMFD sp!,{pc} /* restore work regs and return 1 */ - - /* extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i); - entry -@@ -1688,7 +1688,7 @@ LABEL(shiftright_loop_up_l0) - LABEL(shiftright_loop_up_l1) - BICS ip,a2,#3 /* set counter to multiple of 4 */ - MOVEQ a1,a4 /* if zero then we're done */ -- LDMEQFD sp!,{v6,pc}^ /* so return last shift out */ -+ LDMEQFD sp!,{v6,pc} /* so return last shift out */ - STMFD sp!,{v1-v3} /* save work regs */ - LABEL(shiftright_loop_up_l2) - LDMIA a1,{v1,v2,v3,lr} /* load 4 words in one go */ -@@ -1704,7 +1704,7 @@ LABEL(shiftright_loop_up_l2) - SUBS ip,ip,#4 /* decrement counter by 4 */ - BGT shiftright_loop_up_l2 /* if count still positive then loop */ - MOV a1,a4 /* result = last shift out */ -- LDMFD sp!,{v1-v3,v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v3,v6,pc} /* restore work regs and return */ - - /* extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i); - entry -@@ -1759,7 +1759,7 @@ LABEL(shiftrightcopy_loop_up_l0) - LABEL(shiftrightcopy_loop_up_l1) - BICS ip,a3,#3 /* set counter to multiple of 4 */ - MOVEQ a1,v5 /* if zero then we're done */ -- LDMEQFD sp!,{v5,v6,pc}^ /* so return last shift out */ -+ LDMEQFD sp!,{v5,v6,pc} /* so return last shift out */ - STMFD sp!,{v1-v3} /* save work regs */ - LABEL(shiftrightcopy_loop_up_l2) - LDMIA a1!,{v1,v2,v3,lr} /* load 4 words in one go */ -@@ -1775,7 +1775,7 @@ LABEL(shiftrightcopy_loop_up_l2) - SUBS ip,ip,#4 /* decrement counter by 4 */ - BGT shiftrightcopy_loop_up_l2 /* if count still positive then loop */ - MOV a1,v5 /* result = last shift out */ -- LDMFD sp!,{v1-v3,v5,v6,pc}^ /* restore work regs and return */ -+ LDMFD sp!,{v1-v3,v5,v6,pc} /* restore work regs and return */ - - #ifndef HAVE_umull - /* mulu32_64_vregs -@@ -1800,7 +1800,7 @@ LABEL(mulu32_64_vregs) - ADDCS v2,v2,#0x10000 /* carry from above add */ - ADDS v1,v4,ip,LSL #16 /* x is now bottom 32 bits of result */ - ADC ip,v2,ip,LSR #16 /* hi is top 32 bits */ -- MOVS pc,lr -+ BX lr - #endif /* HAVE_umull */ - - /* extern uintD mulusmall_loop_down (uintD digit, uintD* ptr, uintC len, uintD newdigit); -@@ -1816,7 +1816,7 @@ LABEL(mulu32_64_vregs) - GLABEL(mulusmall_loop_down) - CMP a3,#0 - MOVEQ a1,a4 -- MOVEQS pc,lr -+ BXEQ lr - #ifdef HAVE_umull - STMFD sp!,{v1,lr} - LABEL(mulusmall_loop_down_l1) -@@ -1828,7 +1828,7 @@ LABEL(mulusmall_loop_down_l1) - SUBS a3,a3,#1 /* len-- */ - BNE mulusmall_loop_down_l1 /* until len==0 */ - MOV a1,a4 /* return carry */ -- LDMFD sp!,{v1,pc}^ -+ LDMFD sp!,{v1,pc} - #else - STMFD sp!,{v1-v2,lr} - LABEL(mulusmall_loop_down_l1) -@@ -1850,7 +1850,7 @@ LABEL(mulusmall_loop_down_l1) - SUBS a3,a3,#1 /* len-- */ - BNE mulusmall_loop_down_l1 /* until len==0 */ - MOV a1,a4 /* return carry */ -- LDMFD sp!,{v1-v2,pc}^ -+ LDMFD sp!,{v1-v2,pc} - #endif - - /* extern void mulu_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); -@@ -1875,7 +1875,7 @@ LABEL(mulu_loop_down_l1) - SUBS a4,a4,#1 /* len-- */ - BNE mulu_loop_down_l1 /* until len==0 */ - STR v5,[a3,#-4]! /* *--destptr = carry */ -- LDMFD sp!,{v1,v5,pc}^ -+ LDMFD sp!,{v1,v5,pc} - #else - STMFD sp!,{v1-v5,lr} - MOV v5,#0 -@@ -1888,7 +1888,7 @@ LABEL(mulu_loop_down_l1) - SUBS a4,a4,#1 /* len-- */ - BNE mulu_loop_down_l1 /* until len==0 */ - STR v5,[a3,#-4]! /* *--destptr = carry */ -- LDMFD sp!,{v1-v5,pc}^ -+ LDMFD sp!,{v1-v5,pc} - #endif - - /* extern void muluadd_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); -@@ -1916,7 +1916,7 @@ LABEL(muluadd_loop_down_l1) - SUBS a4,a4,#1 /* len-- */ - BNE muluadd_loop_down_l1 /* until len==0 */ - MOV a1,v5 /* return carry */ -- LDMFD sp!,{v1,v5,pc}^ -+ LDMFD sp!,{v1,v5,pc} - #else - STMFD sp!,{v1-v5,lr} - MOV v5,#0 -@@ -1932,7 +1932,7 @@ LABEL(muluadd_loop_down_l1) - SUBS a4,a4,#1 /* len-- */ - BNE muluadd_loop_down_l1 /* until len==0 */ - MOV a1,v5 /* return carry */ -- LDMFD sp!,{v1-v5,pc}^ -+ LDMFD sp!,{v1-v5,pc} - #endif - - /* extern void mulusub_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len); -@@ -1960,7 +1960,7 @@ LABEL(mulusub_loop_down_l1) - SUBS a4,a4,#1 /* len-- */ - BNE mulusub_loop_down_l1 /* until len==0 */ - MOV a1,v5 /* return carry */ -- LDMFD sp!,{v1,v5,pc}^ -+ LDMFD sp!,{v1,v5,pc} - #else - STMFD sp!,{v1-v5,lr} - MOV v5,#0 -@@ -1976,7 +1976,7 @@ LABEL(mulusub_loop_down_l1) - SUBS a4,a4,#1 /* len-- */ - BNE mulusub_loop_down_l1 /* until len==0 */ - MOV a1,v5 /* return carry */ -- LDMFD sp!,{v1-v5,pc}^ -+ LDMFD sp!,{v1-v5,pc} - #endif - - #if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__ diff --git a/clisp-link.dif b/clisp-link.dif index 39d0344..6088bb7 100644 --- a/clisp-link.dif +++ b/clisp-link.dif @@ -4,8 +4,8 @@ 2 files changed, 4 insertions(+), 2 deletions(-) --- src/clisp-link.in -+++ src/clisp-link.in 2017-07-27 12:34:06.144647126 +0000 -@@ -578,7 +578,7 @@ case "$1" in ++++ src/clisp-link.in 2018-02-12 08:31:51.215851048 +0000 +@@ -579,7 +579,7 @@ case "$1" in # when running "CLISP=./clisp ./clisp-link install " # in the build directory, avoid "cp: `...' and `...' are the same file" if [ "${absolute_moduledir}" != "${absdestdir}/$moduledir" ]; then @@ -15,8 +15,8 @@ for f in ${DYNDIR_FILES}; do cp ${f} ${absdestdir}/${DYNMOD}/ --- src/lispbibl.d -+++ src/lispbibl.d 2017-07-27 12:34:06.152646979 +0000 -@@ -1571,6 +1571,8 @@ typedef SLONG sint32; /* signed 32 bi ++++ src/lispbibl.d 2018-02-12 08:31:51.219850972 +0000 +@@ -1621,6 +1621,8 @@ typedef SLONG sint32; /* signed 32 bi /* Emulate 64-Bit-numbers using two 32-Bit-numbers. */ typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */ typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */ @@ -25,7 +25,7 @@ #endif /* Use 'uintX' and 'sintX' for Integers with approximately given width and a minumum of storage space. */ -@@ -11973,7 +11975,7 @@ re-enters the corresponding top-level lo +@@ -14278,7 +14280,7 @@ re-enters the corresponding top-level lo #define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1) /* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but Careful: first enter the object into STACK_(-1), THEN modify the STACK! */ diff --git a/clisp-linux.patch b/clisp-linux.patch index 01f4696..e79112e 100644 --- a/clisp-linux.patch +++ b/clisp-linux.patch @@ -1,3 +1,8 @@ +--- + modules/bindings/glibc/linux.lisp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp --- a/modules/bindings/glibc/linux.lisp +++ b/modules/bindings/glibc/linux.lisp @@ -294,6 +294,8 @@ @@ -9,11 +14,3 @@ ; -------------------------- ----------------------------------- -@@ -649,7 +651,6 @@ - (def-call-out calloc (:arguments (nmemb size_t) (size size_t)) - (:return-type c-pointer)) - (def-call-out free (:arguments (ptr c-pointer)) (:return-type nil)) --(def-call-out cfree (:arguments (ptr c-pointer)) (:return-type nil)) - (def-call-out valloc (:arguments (size size_t)) (:return-type c-pointer)) - - (def-call-out abort (:arguments) (:return-type nil)) diff --git a/clisp.changes b/clisp.changes index ed71b7d..431d2c9 100644 --- a/clisp.changes +++ b/clisp.changes @@ -1,3 +1,122 @@ +------------------------------------------------------------------- +Mon Feb 12 09:02:18 UTC 2018 - werner@suse.de + +- Update 2.49.90 (pre-release 2.50) + * Module WILDCARD has been removed. + Functions WILDCARD:MATCH and WILDCARD:WILDCARD-MATCHER are deprecated + in favor of POSIX:FNMATCH and POSIX:FNMATCH-MATCHER. + See for details. + * Module REGEXP: + + Function REGEXP:REGEXP-EXEC no longer accepts :BOOLEAN argument; use + :RETURN-TYPE 'BOOLEAN instead. + See for details. + * Module RAWSOCK: + + Function RAWSOCK:CONVERT-ADDRESS now returns byte vectors instead of + integers. + See + for details. + * Mixing &OPTIONAL and &KEY in the same lambda list is a bad design + and now triggers a STYLE-WARNING during compilation. + See for details. + * Redefinition warnings are now of type STYLE-WARNING. + Some CLOS warnings are now of type STYLE-WARNING. + See + and + for details. + * FFI now converts REALs to FLOATs automatically as necessary. + * New user variable CUSTOM:*MODULE-PROVIDER-FUNCTIONS* allows user to + influence behavior of REQUIRE. + See for details. + * The readline-based completion facility is now more customizable. + See for details. + * New declaration DYNAMICALLY-MODIFIABLE disables GF-ALREADY-CALLED-WARNING. + See + for details. + * Function EXT:STREAM-HANDLES returns the OS file handles for the stream. + It has been present since 2.36 in package SOCKET but was not documented. + See for details. + * To help distributors distribute memory images of clisp applications in + package repositories, clisp has three new command-line options: + $ clisp [-K linking-set] -memfile-hash + Prints the hash code of the mem file binary interface. + $ clisp [-K linking-set] -memfile-hash-of mem-file + Prints the hash code of the mem file binary interface that was used to + create this mem-file. + $ clisp [-K linking-set] -memfile-compatible mem-file + Returns 0 or 1, depending whether this mem-file is compatible with the + linking-set or not. + See for how to use + these options. + * Module SYSCALLS: + + New function POSIX:FILE-TREE-WALK calls nftw(). + See for details. + + New function POSIX:GETDATE calls getdate(). + See for details. + + New macro POSIX:WITH-SUBPROCESSES temporarily enables SIGCLD so that + functions POSIX:WAIT, LINUX:wait and LINUX:waitpid work (bug#592). + See for details. + + Function POSIX:USAGE now accept an optional argument and returns a + single value. + See for details. + * Module berkeley-db now supports Berkeley-DB 5.1. + (Older versions are, of course, still supported). + See for details. + * Module pari now supports PARI 2.9.3 and most of the interface + functions are generated automatically. + See for details. + * Fix documentation strings handling for structs (bug#561). + * Fix SCREEN behavior when the window is resized. + * Pass the top-level configure arguments --build= & --host= + to the module configures (bug#566). + * Fix PROBE-PATHNAME behavior on win32 and on open file streams (bug#570). + * Fix handling of huge byte arrays on 64-bit platforms (bug#571). + * Fix LOADing corrupt FAS files (bug#578). + * Fix interaction of *DEFAULT-PATHNAME-DEFAULTS* with REQUIRE (bug#579). + * Correctly bind *LOAD-PATHNAME* in LOAD (bug#584). + * Fix OS:FILE-INFO on files with corrupt times (bug#581). + * Make wrong keyword argument a STYLE-WARNING in the presence of + :ALLOW-OTHER-KEYS T (bug#588). + * Fix LOOP mixing WITH & Hash Table FOR (bug#585); + avoid destructuring null patterns (bug#414); + detect incomplete FOR clauses (bug#572); + check whether DO clauses are compound forms (bug#711); + warn on REPEAT before FOR (bug#604). + * Fix SOCKET-CONNECT with non-0 timeout (bug#587). + * Reduce consing in HANDLER-BIND et al (bug#582). + * Implement :NO-HANG and :INTERACTIVE in WRITE-BYTE-SEQUENCE for all + sequences, not just byte vectors (bug#586). + * Fix protocol argument handling in POSIX:SERVICE (bug#596). + * Fix (SETF (VALUES (VALUES) ...) ...) (bug#597). + * Fix handling properties with "format=32" in NEW-CLX on 64-bit + machines (bug#598); handle more host families in XLIB:ACCESS-HOSTS. + * Do not ignore user-supplied print methods for user-defined + SIMPLE-CONDITIONs (bug#605). + * Better argument checking of FUNCALL on LAMBDA (bug#603). + * All truenames now have non-NIL version component (bug#606). + * Fix OS:FILE-STAT on very large files (bug#626). + * Fix error that occurred when constructing the dispatch code of generic + functions with a method that specializes on SEQUENCE (bug#628). + * Improve dotted list detection in APPLY (bug#636). + * Signal TYPE-ERROR in LOGICAL-PATHNAME-TRANSLATIONS on invalid + logical host as per ANSI (bug#638). + * Fix run-time error reporting in compiled FORMAT calls (bug#631). + * Fix symlink to directory handling (bug#625). + * PCRE-EXEC returns character positions instead of byte positions. + * Fix COMPILE-FILE-PATHNAME logical pathname handling (bug#677). + * Streams returned by MAKE-STREAM may be passed to TRUENAME (bug#679). + * Do not signal the CLOS:GF-ALREADY-CALLED-WARNING on Gray streams. + * Improve consistency in declaration handling (bug#702). + * Package locks are checked by DECLARATION and DEFTYPE (bug#701). + * Allow spaces in file names of clisp scripts (bug#699). +- Remove obsolete patches clisp-2.39-clx.dif and clisp-arm.patch +- Modify patches + * clisp-2.39-ia64-wooh.dif + * clisp-2.49-configure.dif + * clisp-2.49-personality.patch + * clisp-2.49-rpath.dif + * clisp-link.dif + * clisp-linux.patch + ------------------------------------------------------------------- Thu Dec 7 11:04:09 UTC 2017 - dimstar@opensuse.org diff --git a/clisp.spec b/clisp.spec index dd8bbd1..137b369 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,7 +1,7 @@ # # spec file for package clisp # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,11 +16,8 @@ # -# minimum suse version where the full featured package builds -%define uuid 9c43d428 - Name: clisp -Version: 2.49.60+ +Version: 2.49.90 Release: 0 Summary: A Common Lisp Interpreter License: GPL-2.0+ @@ -28,15 +25,13 @@ Group: Development/Languages/Other Url: http://clisp.cons.org #Source: http://downloads.sf.net/clisp/%name-%version.tar.bz2 -Source: %name-%uuid.tar.bz2 +Source: %name-%version.tar.bz2 Source3: clisp-rpmlintrc Source4: README.SUSE # PATCH-EXTEND-OPENSUSE Set the process execution domain Patch1: clisp-2.49-personality.patch # PATCH-FIX-OPENSUSE Fix crash on Ia64 Patch2: clisp-2.39-ia64-wooh.dif -# PATCH-EXTEND-OPENSUSE Help (new) CLX to work out of the box -Patch3: clisp-2.39-clx.dif # PATCH-EXTEND-OPENSUSE Make sure to be able to use MYCLFAGS Patch4: clisp-2.49-configure.dif # PATCH-FIX-OPENSUSE Make sure to use initialized token on garbage collection @@ -49,8 +44,6 @@ Patch7: clisp-2.49-postgresql.dif Patch8: clisp-2.49-rpath.dif # PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls Patch12: clisp-linux.patch -# PATCH-EXTEND-UPSTREAM Make armv7l work -Patch15: clisp-arm.patch Patch14: clisp-link.dif Patch16: clisp-db6.diff @@ -121,10 +114,9 @@ with the file README. The subdirectory contains two nice applications. %prep -%setup -qT -b0 -n clisp-%uuid +%setup -qT -b0 %patch1 -p1 -b .sel %patch2 -p1 -b .wooh -%patch3 -p1 -b .clx %patch4 -p1 -b .conf %patch5 -p1 -b .gc %patch6 -p1 -b .demos @@ -132,7 +124,6 @@ contains two nice applications. %patch8 -p1 -b .rpath %patch12 -p1 -b .p12 %patch14 -p0 -b .p14 -%patch15 -p0 -b .p15 %patch16 -p1 -b .p16 %build @@ -174,9 +165,7 @@ case "$(uname -m)" in axp|alpha) CC="${CC}" ;; esac -noexec='-DKERNELVOID32A_HEAPCODES' -nommap='-DNO_MULTIMAP_SHM -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP' -safety='-DSAFETY=3 -O' +safety='-O' MYCFLAGS="$(getconf LFS_CFLAGS)" if grep -q _DEFAULT_SOURCE /usr/include/features.h then @@ -184,27 +173,23 @@ then else MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE" fi -MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized" +MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var" port='' case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; - arm*) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; - aarch64)MYCFLAGS="${MYCFLAGS}" - port=--enable-portability ;; - ppc) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; - s390) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; + arm*) MYCFLAGS="${MYCFLAGS}" ;; + aarch64)MYCFLAGS="${MYCFLAGS}" ;; + ppc) MYCFLAGS="${MYCFLAGS}" ;; + s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; - sparc*) MYCFLAGS="${MYCFLAGS} ${nommap} ${safety}" ;; - ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" - port=--enable-portability ;; - ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" - port=--enable-portability ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" - port=--enable-portability ;; - ia64) MYCFLAGS="${MYCFLAGS} ${nommap} ${safety}" ;; + sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) - MYCFLAGS="${MYCFLAGS} ${nommap}" ;; + MYCFLAGS="${MYCFLAGS}" ;; esac export CC export MYCFLAGS From ecd3a0e1ea21f29dbaca8999d1c45f6cf82910b40ca32f4ff26f882a954dc44c Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 12 Feb 2018 10:30:43 +0000 Subject: [PATCH 02/37] Next try now with SAFTY=3 for arm, aarch64, and s390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=82 --- clisp.spec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/clisp.spec b/clisp.spec index 137b369..11f8ba2 100644 --- a/clisp.spec +++ b/clisp.spec @@ -49,6 +49,7 @@ Patch16: clisp-db6.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/site/after/syntax +BuildRequires: FastCGI-devel BuildRequires: db-devel BuildRequires: dbus-1-devel BuildRequires: fdupes @@ -165,6 +166,11 @@ case "$(uname -m)" in axp|alpha) CC="${CC}" ;; esac +# +# FastCGI-devel seems a bit broken +# +CC="${CC} -I%{_includedir}/fastcgi" + safety='-O' MYCFLAGS="$(getconf LFS_CFLAGS)" if grep -q _DEFAULT_SOURCE /usr/include/features.h @@ -178,15 +184,15 @@ port='' case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; - arm*) MYCFLAGS="${MYCFLAGS}" ;; - aarch64)MYCFLAGS="${MYCFLAGS}" ;; + arm*) MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD -DSAFETY=3" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; @@ -251,8 +257,9 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-dynamic-modules \ --with-gettext \ --with-module=asdf \ - --with-module=editor \ --with-module=dbus \ + --with-module=editor \ + --with-module=fastcgi \ --with-module=queens \ --with-module=gdbm \ --with-module=gtk2 \ From 8cd10b82fccf45ab2012a3dfe287a656922702167c3da023dc024923fc76da63 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 12 Feb 2018 10:55:34 +0000 Subject: [PATCH 03/37] Next try now with --enable-portability for arm and s390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=83 --- clisp.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/clisp.spec b/clisp.spec index 11f8ba2..9eab06d 100644 --- a/clisp.spec +++ b/clisp.spec @@ -184,15 +184,17 @@ port='' case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; - arm*) MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; + arm*) MYCFLAGS="${MYCFLAGS}" + port=--enable-portability ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD -DSAFETY=3" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" + port=--enable-portability ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From 587a7202cf38de7b246ac95492f9ee73dc7539d1466cd5d84e9837ee337ba73f Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 12 Feb 2018 11:33:16 +0000 Subject: [PATCH 04/37] Yet an other try OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=84 --- clisp-2.49-configure.dif | 27 --------------------------- clisp.spec | 5 ++--- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/clisp-2.49-configure.dif b/clisp-2.49-configure.dif index 7c1b270..1a33089 100644 --- a/clisp-2.49-configure.dif +++ b/clisp-2.49-configure.dif @@ -95,15 +95,6 @@ test "${verbose}" = true -o "${verbose}" = yes && \ cat <&2 -@@ -1337,7 +1342,7 @@ if [ $XCC_GCC = true ] ; then - fi - # For platforms that use global register variables... - case "$cpu" in -- m68k | i386 | sparc | sparc64 | hppa | arm | armhf | alpha | s390*) -+ m68k | i386 | sparc | sparc64 | hppa | arm | armhf | armel | alpha | s390*) - if [ $CROSS = false ] ; then - case "$XCC_GCC_VERSION" in - 3.1*) @@ -1384,6 +1389,9 @@ if [ $XCC_GCC = true ] ; then XCFLAGS=${XCFLAGS}" -pthread" fi @@ -114,24 +105,6 @@ else if [ $CROSS = false ] ; then -@@ -1605,7 +1613,7 @@ else - ;; - - # Linux/arm -- linux*--arm | linux*--armhf) -+ linux*--arm | linux*--armhf | linux*--armel) - XCFLAGS="$XCFLAGS -DNO_ASM" - ;; - -@@ -2109,7 +2117,7 @@ case " ${XCPPFLAGS} ${XCFLAGS} " in - ARI_ASMD=$ARI_ASMD' ari_asm_hppa' - ARI_ASMS=$ARI_ASMS' ari_asm_hppa' - fi -- if [ "$cpu" = arm -o "$cpu" = armhf ] ; then -+ if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then - ARI_ASMD=$ARI_ASMD' ari_asm_arm' - ARI_ASMS=$ARI_ASMS' ari_asm_arm' - fi @@ -4105,8 +4113,9 @@ if [ $CROSS = false ] ; then echol if [ "${with_dynamic_modules}" != no ]; then diff --git a/clisp.spec b/clisp.spec index 9eab06d..c2c456c 100644 --- a/clisp.spec +++ b/clisp.spec @@ -184,8 +184,7 @@ port='' case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; - arm*) MYCFLAGS="${MYCFLAGS}" - port=--enable-portability ;; + arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; @@ -193,7 +192,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" + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD -DSAFETY=3" port=--enable-portability ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) From 1688670beb6f87f3d743eb275a84ed699a8b38cdd4a87f6351adca439462cbe9 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 13 Feb 2018 08:07:59 +0000 Subject: [PATCH 05/37] Try out upstream patches for arm and s390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=85 --- clisp-arm.diff | 28 ++++++++++++++++++++++++++++ clisp-s390x.diff | 16 ++++++++++++++++ clisp.spec | 6 ++++++ 3 files changed, 50 insertions(+) create mode 100644 clisp-arm.diff create mode 100644 clisp-s390x.diff diff --git a/clisp-arm.diff b/clisp-arm.diff new file mode 100644 index 0000000..eaad858 --- /dev/null +++ b/clisp-arm.diff @@ -0,0 +1,28 @@ +diff -r f618e42f6fef src/lispbibl.d +--- a/src/lispbibl.d Mon Feb 12 01:32:02 2018 +0100 ++++ b/src/lispbibl.d Mon Feb 12 20:06:41 2018 +0100 +@@ -2197,9 +2197,10 @@ + MALLOC_ADDRESS_RANGE = 0x00000000UL + SHLIB_ADDRESS_RANGE = 0x40000000UL or 0xF7000000UL + STACK_ADDRESS_RANGE = 0xFF000000UL +- There is room from 0x41000000UL to 0xB6000000UL. */ +- #define MAPPABLE_ADDRESS_RANGE_START 0x41000000UL +- #define MAPPABLE_ADDRESS_RANGE_END 0xB5FFFFFFUL ++ There is room from 0x43000000UL to 0xB6000000UL, but let's keep some ++ distance. */ ++ #define MAPPABLE_ADDRESS_RANGE_START 0x48000000UL ++ #define MAPPABLE_ADDRESS_RANGE_END 0xAFFFFFFFUL + #endif + #if defined(UNIX_LINUX) && defined(HPPA) + /* On Linux/hppa in qemu user-mode emulation: +@@ -3178,7 +3179,9 @@ + #define SINGLEMAP_ADDRESS_BASE 0x40000000UL + #define SINGLEMAP_TYPE_MASK 0x3F000000UL + #define SINGLEMAP_oint_type_shift 24 +- #define SINGLEMAP_WORKS 1 ++ /* This configuration allocates memory outside the MAPPABLE_ADDRESS_RANGE. */ ++ #define IGNORE_MAPPABLE_ADDRESS_RANGE ++ #define SINGLEMAP_WORKS 0 /* does not work on build.opensuse.org machines */ + #endif + #if defined(UNIX_LINUX) && defined(HPPA) /* Linux/hppa */ + #define SINGLEMAP_ADDRESS_BASE 0x08000000UL diff --git a/clisp-s390x.diff b/clisp-s390x.diff new file mode 100644 index 0000000..b5c3764 --- /dev/null +++ b/clisp-s390x.diff @@ -0,0 +1,16 @@ +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 c2c456c..04f1b70 100644 --- a/clisp.spec +++ b/clisp.spec @@ -46,6 +46,10 @@ Patch8: clisp-2.49-rpath.dif Patch12: clisp-linux.patch Patch14: clisp-link.dif Patch16: clisp-db6.diff +# PATCH-FIX-UPSTREAM arm +Patch20: clisp-arm.diff +# PATCH-FIX-UPSTREAM s390x +Patch21: clisp-s390x.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/site/after/syntax @@ -126,6 +130,8 @@ contains two nice applications. %patch12 -p1 -b .p12 %patch14 -p0 -b .p14 %patch16 -p1 -b .p16 +%patch20 -p1 -b .p20 +%patch21 -p1 -b .p21 %build # From 859ebac0c3ed12da2929a2b41073783e2caab133c5b791a7f6e9d2abbeec2be1 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 13 Feb 2018 09:09:15 +0000 Subject: [PATCH 06/37] Get aarch64 log without SAFETY=3 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=86 --- clisp.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 04f1b70..ee71720 100644 --- a/clisp.spec +++ b/clisp.spec @@ -191,7 +191,8 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; +# aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; + aarch64)MYCFLAGS="${MYCFLAGS}" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; From c5d06cb7c6fac12a43ace71bc6fd58b0a6130baee32c3a391281d5a75928d211 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 07:43:18 +0000 Subject: [PATCH 07/37] Give two new approaches for aarch64 and s390x a try OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=87 --- clisp-s390x-address-range.diff | 32 ++++++++++++++++++++++++++++++++ clisp-s390x.diff | 16 ---------------- clisp.spec | 7 +++---- 3 files changed, 35 insertions(+), 20 deletions(-) create mode 100644 clisp-s390x-address-range.diff delete mode 100644 clisp-s390x.diff 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}" ;; From fd4a8fdfd61e55043c555405959cfc88aaf857f49e0d851fb081901df7a65994 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 09:52:13 +0000 Subject: [PATCH 08/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=88 --- clisp.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clisp.spec b/clisp.spec index 8764a15..a68fd75 100644 --- a/clisp.spec +++ b/clisp.spec @@ -192,14 +192,14 @@ case "$(uname -m)" in MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; - aarch64)MYCFLAGS="${MYCFLAGS}" ;; +# aarch64)MYCFLAGS="${MYCFLAGS}" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD -DSAFETY=3" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From 1719734d05d36c0bfa523ba3f79397f9e36bc0b5b0010883e039fcbbc176572f Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 10:31:47 +0000 Subject: [PATCH 09/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=89 --- clisp.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clisp.spec b/clisp.spec index a68fd75..cb1e2dc 100644 --- a/clisp.spec +++ b/clisp.spec @@ -191,8 +191,8 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; -# aarch64)MYCFLAGS="${MYCFLAGS}" ;; +# aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DWIDE_HARD -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; From 66a60274dc49d912f2bbcb8e85b2055c5db9e9f6a441ae8dc36d722f035c487b Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 11:03:01 +0000 Subject: [PATCH 10/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=90 --- clisp.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/clisp.spec b/clisp.spec index cb1e2dc..cd2bf2b 100644 --- a/clisp.spec +++ b/clisp.spec @@ -192,14 +192,14 @@ case "$(uname -m)" in MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DWIDE_HARD -DSAFETY=3" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=1" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD -DSAFETY=3" ;; + ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DSAFETY=3" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From fead5d7d9ba3289b9e7877d81c962d6e7e84249090748ca226af67b0e9731cf6 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 11:13:40 +0000 Subject: [PATCH 11/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=91 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index cd2bf2b..869d3ab 100644 --- a/clisp.spec +++ b/clisp.spec @@ -192,7 +192,7 @@ case "$(uname -m)" in MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=1" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; From f5144a0e0fca2965b85c2cde3029f1445b18b7898850c75f8b25a90d9a8e05a7 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 11:32:19 +0000 Subject: [PATCH 12/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=92 --- clisp.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 869d3ab..d214e49 100644 --- a/clisp.spec +++ b/clisp.spec @@ -192,7 +192,9 @@ case "$(uname -m)" in MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; +# aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -D-DNO_FAST_DISPATCH" ;; +# aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; From 157e079abf7bdc5119a2f0a4deb2c5e0c08b0d5a6aa102c7923df24d8af5254d Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 12:03:06 +0000 Subject: [PATCH 13/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=93 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index d214e49..d0ccc2d 100644 --- a/clisp.spec +++ b/clisp.spec @@ -193,7 +193,7 @@ case "$(uname -m)" in arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -D-DNO_FAST_DISPATCH" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DNO_FAST_DISPATCH" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; From 7b749618087ffb8b476218b020a9dd90c91cf81ef392752750aea2fe0a4c23ef Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 12:29:13 +0000 Subject: [PATCH 14/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=94 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index d0ccc2d..f9a53e6 100644 --- a/clisp.spec +++ b/clisp.spec @@ -193,7 +193,7 @@ case "$(uname -m)" in arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DNO_FAST_DISPATCH" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DNO_FAST_DISPATCH -DNO_ARI_ASM" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; From 0790eabb67c5c23627a46bc9278f9ad37f4a577d86a16841989de2017eb1795a Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 12:41:16 +0000 Subject: [PATCH 15/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=95 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index f9a53e6..eb7995b 100644 --- a/clisp.spec +++ b/clisp.spec @@ -193,7 +193,7 @@ case "$(uname -m)" in arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DNO_FAST_DISPATCH -DNO_ARI_ASM" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DNO_FAST_DISPATCH -DNO_ASM" ;; # aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; From 3b656392469030f6a4abd47739230fae3accd0091576524065bb8dc83385e67f Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 12:54:12 +0000 Subject: [PATCH 16/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=96 --- clisp.spec | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/clisp.spec b/clisp.spec index eb7995b..8faee84 100644 --- a/clisp.spec +++ b/clisp.spec @@ -191,10 +191,7 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; -# aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC" ;; -# aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DSAFETY=2" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DNO_GENERATIONAL_GC -DNO_FAST_DISPATCH -DNO_ASM" ;; -# aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; + aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; From 77b721475b1ff02d08d718fa22022296f1cfeb999820c47cd628808a893e003d Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 14 Feb 2018 13:12:43 +0000 Subject: [PATCH 17/37] . OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=97 --- clisp-s390x-address-range.diff | 125 +++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/clisp-s390x-address-range.diff b/clisp-s390x-address-range.diff index f30cde0..569856a 100644 --- a/clisp-s390x-address-range.diff +++ b/clisp-s390x-address-range.diff @@ -30,3 +30,128 @@ diff -r 51ceb35b1711 src/lispbibl.d #define SINGLEMAP_WORKS 1 #endif #if defined(UNIX_LINUX) && defined(SPARC64) /* Linux/sparc64 */ +--- clisp-2.49.90/src/spvw_calendar.c ++++ clisp-2.49.90/src/spvw_calendar.c 2018-02-14 13:11:00.207400810 +0000 +@@ -9,7 +9,7 @@ + hebrew_calendar_leap_year_p (5763) = true + hebrew_calendar_leap_year_p (5764) = false + */ +-local inline bool hebrew_calendar_leap_year_p (int year) ++local inline bool hebrew_calendar_leap_year_p (const int year) + { + return ((7 * year + 1) % 19) < 7; + } +@@ -23,7 +23,7 @@ local inline bool hebrew_calendar_leap_y + - hebrew_calendar_elapsed_months (year) + == (hebrew_calendar_leap_year_p (year) ? 13 : 12). + */ +-local inline int hebrew_calendar_elapsed_months (int year) ++local inline int hebrew_calendar_elapsed_months (const int year) + { + return ((year - 1) / 19) * 235 + + ((year - 1) % 19) * 12 +@@ -35,16 +35,16 @@ local inline int hebrew_calendar_elapsed + hebrew_calendar_elapsed_days (5763) = 2104528 + hebrew_calendar_elapsed_days (5764) = 2104913 + */ +-local int hebrew_calendar_elapsed_days (int year) ++local int hebrew_calendar_elapsed_days (const int year) + { +- int months_elapsed = hebrew_calendar_elapsed_months (year); +- int parts_elapsed = (months_elapsed % 1080) * 793 + 204; +- int hours_elapsed = ++ const int months_elapsed = hebrew_calendar_elapsed_months (year); ++ const int parts_elapsed = (months_elapsed % 1080) * 793 + 204; ++ const int hours_elapsed = + 5 + months_elapsed * 12 + (months_elapsed / 1080) * 793 + + (parts_elapsed / 1080); +- int parts = (hours_elapsed % 24) * 1080 + (parts_elapsed % 1080); +- int day = 1 + months_elapsed * 29 + (hours_elapsed / 24); +- int day1 = ++ const int parts = (hours_elapsed % 24) * 1080 + (parts_elapsed % 1080); ++ const int day = 1 + months_elapsed * 29 + (hours_elapsed / 24); ++ const int day1 = + (parts >= 19440 + || ((day % 7) == 2 && parts >= 9924 + && !hebrew_calendar_leap_year_p (year)) +@@ -66,32 +66,32 @@ local int hebrew_calendar_elapsed_days ( + Note that the result is in the range 351..357 or 380..386. + Probably (but I cannot prove it) it is in the range 353..355 or 383..385. + */ +-local inline int hebrew_calendar_days_in_year (int year) ++local inline int hebrew_calendar_days_in_year (const int year) + { + return hebrew_calendar_elapsed_days (year + 1) + - hebrew_calendar_elapsed_days (year); + } + + /* Test whether in the given year, the Heshvan month is long. */ +-local inline bool hebrew_calendar_long_heshvan_p (int year) ++local inline bool hebrew_calendar_long_heshvan_p (const int year) + { + return (hebrew_calendar_days_in_year (year) % 10) == 5; + } + + /* Test whether in the given year, the Kislev month is short. */ +-local inline bool hebrew_calendar_short_kislev_p (int year) ++local inline bool hebrew_calendar_short_kislev_p (const int year) + { + return (hebrew_calendar_days_in_year (year) % 10) == 3; + } + + /* Return the number of months of the given year. */ +-local inline int hebrew_calendar_months_in_year (int year) ++local inline int hebrew_calendar_months_in_year (const int year) + { + return (hebrew_calendar_leap_year_p (year) ? 13 : 12); + } + + /* Return the number of days in the given month of the given year. */ +-local int hebrew_calendar_last_day_of_month (int year, int month) ++local int hebrew_calendar_last_day_of_month (const int year, const int month) + { + /* Note that month 7 is the first month, and month 6 is the last one. */ + switch (month) +@@ -131,7 +131,7 @@ local int hebrew_calendar_last_day_of_mo + hebrew_calendar_to_universal (5763, 6, 29) = 37888 + hebrew_calendar_to_universal (5764, 7, 1) = 37889 + */ +-local int hebrew_calendar_to_universal (int year, int month, int day) ++local int hebrew_calendar_to_universal (const int year, const int month, const int day) + { + int days; + int m; +@@ -158,7 +158,7 @@ local int hebrew_calendar_to_universal ( + hebrew_calendar_from_universal (37889) = { 5764, 7, 1 } + */ + struct hebrew_date { int year; int month; int day; }; +-local void hebrew_calendar_from_universal (int udate, struct hebrew_date *result) ++local void hebrew_calendar_from_universal (const int udate, struct hebrew_date *__restrict__ result) + { + int year; + int elapsed_days; +@@ -167,6 +167,7 @@ local void hebrew_calendar_from_universa + int month; + + year = (int)((float)udate/(float)365.2422) + 5661; ++#pragma GCC unroll 1 + for (;; year--) { + elapsed_days = hebrew_calendar_elapsed_days (year) - 2067024; + if (udate >= elapsed_days) +@@ -175,6 +176,7 @@ local void hebrew_calendar_from_universa + + remaining_days = udate - elapsed_days; + max_month = hebrew_calendar_months_in_year (year); ++#pragma GCC unroll 1 + for (month = 7; month <= max_month; month++) { + int mlength = hebrew_calendar_last_day_of_month (year, month); + if (remaining_days < mlength) +@@ -198,7 +200,7 @@ local void hebrew_calendar_from_universa + } + + /* Return the number of Hanukka candles for a given universal date. */ +-local int hebrew_calendar_hanukka_candles (int udate) ++local int hebrew_calendar_hanukka_candles (const int udate) + { + /* The first day of Hanukka is on 25 Kislev. */ + struct hebrew_date date; From a027867dc941c49524a29d22148a937f6e3549ab0478afa07e6d36081dddabd4 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 19 Feb 2018 09:41:14 +0000 Subject: [PATCH 18/37] Next try with BETA clisp-2.49.92 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=98 --- clisp-2.49.90.tar.bz2 | 3 - clisp-2.49.92.tar.bz2 | 3 + clisp-arm.diff | 28 ------ clisp-link.dif | 8 +- clisp-s390x-address-range.diff | 157 --------------------------------- clisp.spec | 11 +-- 6 files changed, 10 insertions(+), 200 deletions(-) delete mode 100644 clisp-2.49.90.tar.bz2 create mode 100644 clisp-2.49.92.tar.bz2 delete mode 100644 clisp-arm.diff delete mode 100644 clisp-s390x-address-range.diff diff --git a/clisp-2.49.90.tar.bz2 b/clisp-2.49.90.tar.bz2 deleted file mode 100644 index e7394f9..0000000 --- a/clisp-2.49.90.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47efb9275171a4a469da00bab4935d9d9c9af6892b5c1951cd7d111a4e37e7fa -size 8921458 diff --git a/clisp-2.49.92.tar.bz2 b/clisp-2.49.92.tar.bz2 new file mode 100644 index 0000000..48b3ed6 --- /dev/null +++ b/clisp-2.49.92.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd443a94aa9b02da4c4abbcecfc04ffff1919c0a8b0e7e35649b86198cd6bb89 +size 8919616 diff --git a/clisp-arm.diff b/clisp-arm.diff deleted file mode 100644 index eaad858..0000000 --- a/clisp-arm.diff +++ /dev/null @@ -1,28 +0,0 @@ -diff -r f618e42f6fef src/lispbibl.d ---- a/src/lispbibl.d Mon Feb 12 01:32:02 2018 +0100 -+++ b/src/lispbibl.d Mon Feb 12 20:06:41 2018 +0100 -@@ -2197,9 +2197,10 @@ - MALLOC_ADDRESS_RANGE = 0x00000000UL - SHLIB_ADDRESS_RANGE = 0x40000000UL or 0xF7000000UL - STACK_ADDRESS_RANGE = 0xFF000000UL -- There is room from 0x41000000UL to 0xB6000000UL. */ -- #define MAPPABLE_ADDRESS_RANGE_START 0x41000000UL -- #define MAPPABLE_ADDRESS_RANGE_END 0xB5FFFFFFUL -+ There is room from 0x43000000UL to 0xB6000000UL, but let's keep some -+ distance. */ -+ #define MAPPABLE_ADDRESS_RANGE_START 0x48000000UL -+ #define MAPPABLE_ADDRESS_RANGE_END 0xAFFFFFFFUL - #endif - #if defined(UNIX_LINUX) && defined(HPPA) - /* On Linux/hppa in qemu user-mode emulation: -@@ -3178,7 +3179,9 @@ - #define SINGLEMAP_ADDRESS_BASE 0x40000000UL - #define SINGLEMAP_TYPE_MASK 0x3F000000UL - #define SINGLEMAP_oint_type_shift 24 -- #define SINGLEMAP_WORKS 1 -+ /* This configuration allocates memory outside the MAPPABLE_ADDRESS_RANGE. */ -+ #define IGNORE_MAPPABLE_ADDRESS_RANGE -+ #define SINGLEMAP_WORKS 0 /* does not work on build.opensuse.org machines */ - #endif - #if defined(UNIX_LINUX) && defined(HPPA) /* Linux/hppa */ - #define SINGLEMAP_ADDRESS_BASE 0x08000000UL diff --git a/clisp-link.dif b/clisp-link.dif index 6088bb7..ca822d2 100644 --- a/clisp-link.dif +++ b/clisp-link.dif @@ -4,7 +4,7 @@ 2 files changed, 4 insertions(+), 2 deletions(-) --- src/clisp-link.in -+++ src/clisp-link.in 2018-02-12 08:31:51.215851048 +0000 ++++ src/clisp-link.in 2018-02-19 09:30:11.548748097 +0000 @@ -579,7 +579,7 @@ case "$1" in # when running "CLISP=./clisp ./clisp-link install " # in the build directory, avoid "cp: `...' and `...' are the same file" @@ -15,8 +15,8 @@ for f in ${DYNDIR_FILES}; do cp ${f} ${absdestdir}/${DYNMOD}/ --- src/lispbibl.d -+++ src/lispbibl.d 2018-02-12 08:31:51.219850972 +0000 -@@ -1621,6 +1621,8 @@ typedef SLONG sint32; /* signed 32 bi ++++ src/lispbibl.d 2018-02-19 09:30:11.552748021 +0000 +@@ -1631,6 +1631,8 @@ typedef SLONG sint32; /* signed 32 bi /* Emulate 64-Bit-numbers using two 32-Bit-numbers. */ typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */ typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */ @@ -25,7 +25,7 @@ #endif /* Use 'uintX' and 'sintX' for Integers with approximately given width and a minumum of storage space. */ -@@ -14278,7 +14280,7 @@ re-enters the corresponding top-level lo +@@ -14397,7 +14399,7 @@ re-enters the corresponding top-level lo #define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1) /* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but Careful: first enter the object into STACK_(-1), THEN modify the STACK! */ diff --git a/clisp-s390x-address-range.diff b/clisp-s390x-address-range.diff deleted file mode 100644 index 569856a..0000000 --- a/clisp-s390x-address-range.diff +++ /dev/null @@ -1,157 +0,0 @@ -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 */ ---- clisp-2.49.90/src/spvw_calendar.c -+++ clisp-2.49.90/src/spvw_calendar.c 2018-02-14 13:11:00.207400810 +0000 -@@ -9,7 +9,7 @@ - hebrew_calendar_leap_year_p (5763) = true - hebrew_calendar_leap_year_p (5764) = false - */ --local inline bool hebrew_calendar_leap_year_p (int year) -+local inline bool hebrew_calendar_leap_year_p (const int year) - { - return ((7 * year + 1) % 19) < 7; - } -@@ -23,7 +23,7 @@ local inline bool hebrew_calendar_leap_y - - hebrew_calendar_elapsed_months (year) - == (hebrew_calendar_leap_year_p (year) ? 13 : 12). - */ --local inline int hebrew_calendar_elapsed_months (int year) -+local inline int hebrew_calendar_elapsed_months (const int year) - { - return ((year - 1) / 19) * 235 - + ((year - 1) % 19) * 12 -@@ -35,16 +35,16 @@ local inline int hebrew_calendar_elapsed - hebrew_calendar_elapsed_days (5763) = 2104528 - hebrew_calendar_elapsed_days (5764) = 2104913 - */ --local int hebrew_calendar_elapsed_days (int year) -+local int hebrew_calendar_elapsed_days (const int year) - { -- int months_elapsed = hebrew_calendar_elapsed_months (year); -- int parts_elapsed = (months_elapsed % 1080) * 793 + 204; -- int hours_elapsed = -+ const int months_elapsed = hebrew_calendar_elapsed_months (year); -+ const int parts_elapsed = (months_elapsed % 1080) * 793 + 204; -+ const int hours_elapsed = - 5 + months_elapsed * 12 + (months_elapsed / 1080) * 793 - + (parts_elapsed / 1080); -- int parts = (hours_elapsed % 24) * 1080 + (parts_elapsed % 1080); -- int day = 1 + months_elapsed * 29 + (hours_elapsed / 24); -- int day1 = -+ const int parts = (hours_elapsed % 24) * 1080 + (parts_elapsed % 1080); -+ const int day = 1 + months_elapsed * 29 + (hours_elapsed / 24); -+ const int day1 = - (parts >= 19440 - || ((day % 7) == 2 && parts >= 9924 - && !hebrew_calendar_leap_year_p (year)) -@@ -66,32 +66,32 @@ local int hebrew_calendar_elapsed_days ( - Note that the result is in the range 351..357 or 380..386. - Probably (but I cannot prove it) it is in the range 353..355 or 383..385. - */ --local inline int hebrew_calendar_days_in_year (int year) -+local inline int hebrew_calendar_days_in_year (const int year) - { - return hebrew_calendar_elapsed_days (year + 1) - - hebrew_calendar_elapsed_days (year); - } - - /* Test whether in the given year, the Heshvan month is long. */ --local inline bool hebrew_calendar_long_heshvan_p (int year) -+local inline bool hebrew_calendar_long_heshvan_p (const int year) - { - return (hebrew_calendar_days_in_year (year) % 10) == 5; - } - - /* Test whether in the given year, the Kislev month is short. */ --local inline bool hebrew_calendar_short_kislev_p (int year) -+local inline bool hebrew_calendar_short_kislev_p (const int year) - { - return (hebrew_calendar_days_in_year (year) % 10) == 3; - } - - /* Return the number of months of the given year. */ --local inline int hebrew_calendar_months_in_year (int year) -+local inline int hebrew_calendar_months_in_year (const int year) - { - return (hebrew_calendar_leap_year_p (year) ? 13 : 12); - } - - /* Return the number of days in the given month of the given year. */ --local int hebrew_calendar_last_day_of_month (int year, int month) -+local int hebrew_calendar_last_day_of_month (const int year, const int month) - { - /* Note that month 7 is the first month, and month 6 is the last one. */ - switch (month) -@@ -131,7 +131,7 @@ local int hebrew_calendar_last_day_of_mo - hebrew_calendar_to_universal (5763, 6, 29) = 37888 - hebrew_calendar_to_universal (5764, 7, 1) = 37889 - */ --local int hebrew_calendar_to_universal (int year, int month, int day) -+local int hebrew_calendar_to_universal (const int year, const int month, const int day) - { - int days; - int m; -@@ -158,7 +158,7 @@ local int hebrew_calendar_to_universal ( - hebrew_calendar_from_universal (37889) = { 5764, 7, 1 } - */ - struct hebrew_date { int year; int month; int day; }; --local void hebrew_calendar_from_universal (int udate, struct hebrew_date *result) -+local void hebrew_calendar_from_universal (const int udate, struct hebrew_date *__restrict__ result) - { - int year; - int elapsed_days; -@@ -167,6 +167,7 @@ local void hebrew_calendar_from_universa - int month; - - year = (int)((float)udate/(float)365.2422) + 5661; -+#pragma GCC unroll 1 - for (;; year--) { - elapsed_days = hebrew_calendar_elapsed_days (year) - 2067024; - if (udate >= elapsed_days) -@@ -175,6 +176,7 @@ local void hebrew_calendar_from_universa - - remaining_days = udate - elapsed_days; - max_month = hebrew_calendar_months_in_year (year); -+#pragma GCC unroll 1 - for (month = 7; month <= max_month; month++) { - int mlength = hebrew_calendar_last_day_of_month (year, month); - if (remaining_days < mlength) -@@ -198,7 +200,7 @@ local void hebrew_calendar_from_universa - } - - /* Return the number of Hanukka candles for a given universal date. */ --local int hebrew_calendar_hanukka_candles (int udate) -+local int hebrew_calendar_hanukka_candles (const int udate) - { - /* The first day of Hanukka is on 25 Kislev. */ - struct hebrew_date date; diff --git a/clisp.spec b/clisp.spec index 8faee84..24ab8bb 100644 --- a/clisp.spec +++ b/clisp.spec @@ -17,7 +17,7 @@ Name: clisp -Version: 2.49.90 +Version: 2.49.92 Release: 0 Summary: A Common Lisp Interpreter License: GPL-2.0+ @@ -46,10 +46,6 @@ Patch8: clisp-2.49-rpath.dif Patch12: clisp-linux.patch Patch14: clisp-link.dif Patch16: clisp-db6.diff -# PATCH-FIX-UPSTREAM arm -Patch20: clisp-arm.diff -# PATCH-FIX-UPSTREAM s390x -Patch21: clisp-s390x-address-range.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/site/after/syntax @@ -130,8 +126,6 @@ contains two nice applications. %patch12 -p1 -b .p12 %patch14 -p0 -b .p14 %patch16 -p1 -b .p16 -%patch20 -p1 -b .p20 -%patch21 -p1 -b .p21 %build # @@ -191,7 +185,8 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; +# aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; + aarch64)MYCFLAGS="${MYCFLAGS}" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; From 2610ec5eb8ddf1e5bb574efda5ce5bc15f8af75df4e0e08c8b25c313e3ca0a57 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 19 Feb 2018 11:50:49 +0000 Subject: [PATCH 19/37] Add and try test for s390x to see if we run onto compiler bug OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=99 --- clisp.spec | 10 ++- test-s390x.c | 244 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 test-s390x.c diff --git a/clisp.spec b/clisp.spec index 24ab8bb..11c7cab 100644 --- a/clisp.spec +++ b/clisp.spec @@ -28,6 +28,7 @@ Url: http://clisp.cons.org Source: %name-%version.tar.bz2 Source3: clisp-rpmlintrc Source4: README.SUSE +Source42: test-s390x.c # PATCH-EXTEND-OPENSUSE Set the process execution domain Patch1: clisp-2.49-personality.patch # PATCH-FIX-OPENSUSE Fix crash on Ia64 @@ -185,7 +186,6 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; -# aarch64)MYCFLAGS="${MYCFLAGS} -DSAFETY=3" ;; aarch64)MYCFLAGS="${MYCFLAGS}" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; @@ -201,6 +201,14 @@ esac export CC export MYCFLAGS unset noexec nommap safety +# +# Test for s390x +# +%ifarch s390x +$CC $MYCFLAGS -o test-s390x %{S:42} +./test-s390x +%endif + # # Report final architectures # diff --git a/test-s390x.c b/test-s390x.c new file mode 100644 index 0000000..f0e77f6 --- /dev/null +++ b/test-s390x.c @@ -0,0 +1,244 @@ +#include +#include +#include +#include +#define local static + +/* Calendar computations using the Hebrew calendar. + Algorithms taken from emacs-20.6/lisp/calendar/cal-hebrew.el + Copyright (C) 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 2003 Bruno Haible + */ + +/* Test whether the given year is a Hebrew calendar leap year. */ +/* Example: + hebrew_calendar_leap_year_p (5763) = true + hebrew_calendar_leap_year_p (5764) = false +*/ +local inline bool hebrew_calendar_leap_year_p (int year) +{ + return ((7 * year + 1) % 19) < 7; +} + +/* Months up to mean conjunction of Tishri of the given year. */ +/* Example: + hebrew_calendar_elapsed_months (5763) = 71266 + hebrew_calendar_elapsed_months (5764) = 71279 + Note that + hebrew_calendar_elapsed_months (year + 1) + - hebrew_calendar_elapsed_months (year) + == (hebrew_calendar_leap_year_p (year) ? 13 : 12). +*/ +local inline int hebrew_calendar_elapsed_months (int year) +{ + return ((year - 1) / 19) * 235 + + ((year - 1) % 19) * 12 + + (((year - 1) % 19) * 7 + 1) / 19; +} + +/* Days up to mean conjunction of Tishri of the given year. */ +/* Example: + hebrew_calendar_elapsed_days (5763) = 2104528 + hebrew_calendar_elapsed_days (5764) = 2104913 +*/ +local int hebrew_calendar_elapsed_days (int year) +{ + int months_elapsed = hebrew_calendar_elapsed_months (year); + int parts_elapsed = (months_elapsed % 1080) * 793 + 204; + int hours_elapsed = + 5 + months_elapsed * 12 + (months_elapsed / 1080) * 793 + + (parts_elapsed / 1080); + int parts = (hours_elapsed % 24) * 1080 + (parts_elapsed % 1080); + int day = 1 + months_elapsed * 29 + (hours_elapsed / 24); + int day1 = + (parts >= 19440 + || ((day % 7) == 2 && parts >= 9924 + && !hebrew_calendar_leap_year_p (year)) + || ((day % 7) == 1 && parts >= 16789 + && hebrew_calendar_leap_year_p (year - 1)) + ? day + 1 + : day); + int day2 = + ((day1 % 7) == 0 || (day1 % 7) == 3 || (day1 % 7) == 5 + ? day1 + 1 + : day1); + return day2; +} + +/* Return the number of days in the given year. */ +/* Example: + hebrew_calendar_days_in_year (5763) = 385 + hebrew_calendar_days_in_year (5764) = 355 + Note that the result is in the range 351..357 or 380..386. + Probably (but I cannot prove it) it is in the range 353..355 or 383..385. +*/ +local inline int hebrew_calendar_days_in_year (int year) +{ + return hebrew_calendar_elapsed_days (year + 1) + - hebrew_calendar_elapsed_days (year); +} + +/* Test whether in the given year, the Heshvan month is long. */ +local inline bool hebrew_calendar_long_heshvan_p (int year) +{ + return (hebrew_calendar_days_in_year (year) % 10) == 5; +} + +/* Test whether in the given year, the Kislev month is short. */ +local inline bool hebrew_calendar_short_kislev_p (int year) +{ + return (hebrew_calendar_days_in_year (year) % 10) == 3; +} + +/* Return the number of months of the given year. */ +local inline int hebrew_calendar_months_in_year (int year) +{ + return (hebrew_calendar_leap_year_p (year) ? 13 : 12); +} + +/* Return the number of days in the given month of the given year. */ +local int hebrew_calendar_last_day_of_month (int year, int month) +{ + /* Note that month 7 is the first month, and month 6 is the last one. */ + switch (month) + { + case 7: /* Tishri */ + return 30; + case 8: /* Heshvan */ + return (hebrew_calendar_long_heshvan_p (year) ? 30 : 29); + case 9: /* Kislev */ + return (hebrew_calendar_short_kislev_p (year) ? 29 : 30); + case 10: /* Teveth */ + return 29; + case 11: /* Shevat */ + return 30; + case 12: /* Adar, or - if leap year - Adar I */ + return (hebrew_calendar_leap_year_p (year) ? 30 : 29); + case 13: /* - only if leap year - Adar II */ + return 29; + case 1: /* Nisan */ + return 30; + case 2: /* Iyar */ + return 29; + case 3: /* Sivan */ + return 30; + case 4: /* Tammuz */ + return 29; + case 5: /* Av */ + return 30; + case 6: /* Elul */ + return 29; + default: abort (); + } +} + +/* Return the number of days since 1900-01-01 of a given Hebrew date. */ +/* Example: + hebrew_calendar_to_universal (5763, 6, 29) = 37888 + hebrew_calendar_to_universal (5764, 7, 1) = 37889 +*/ +local int hebrew_calendar_to_universal (int year, int month, int day) +{ + int days; + int m; + + days = hebrew_calendar_elapsed_days (year) - 2067024; + if (month < 7) { + int max_month = hebrew_calendar_months_in_year (year); + for (m = 7; m <= max_month; m++) + days += hebrew_calendar_last_day_of_month (year, m); + for (m = 1; m < month; m++) + days += hebrew_calendar_last_day_of_month (year, m); + } else { + for (m = 7; m < month; m++) + days += hebrew_calendar_last_day_of_month (year, m); + } + days += day - 1; + return days; +} + +/* Return the Hebrew date corresponding to a given universal date (= number + of days since 1900-01-01). */ +/* Example: + hebrew_calendar_from_universal (37888) = { 5763, 6, 29 } + hebrew_calendar_from_universal (37889) = { 5764, 7, 1 } +*/ +struct hebrew_date { int year; int month; int day; }; +local void hebrew_calendar_from_universal (int udate, struct hebrew_date *result) +{ + int year; + int elapsed_days; + int remaining_days; + int max_month; + int month; + + year = (int)((float)udate/(float)365.2422) + 5661; + for (;; year--) { + elapsed_days = hebrew_calendar_elapsed_days (year) - 2067024; + if (udate >= elapsed_days) + break; + } + + remaining_days = udate - elapsed_days; + max_month = hebrew_calendar_months_in_year (year); + for (month = 7; month <= max_month; month++) { + int mlength = hebrew_calendar_last_day_of_month (year, month); + if (remaining_days < mlength) + break; + remaining_days -= mlength; + } + if (month > max_month) { + for (month = 1; month < 7; month++) { + int mlength = hebrew_calendar_last_day_of_month (year, month); + if (remaining_days < mlength) + break; + remaining_days -= mlength; + } + if (month == 7) + abort (); + } + + result->year = year; + result->month = month; + result->day = remaining_days + 1; +} + +/* Return the number of Hanukka candles for a given universal date. */ +local int hebrew_calendar_hanukka_candles (int udate) +{ + /* The first day of Hanukka is on 25 Kislev. */ + struct hebrew_date date; + int hanukka_first_day; + + hebrew_calendar_from_universal (udate, &date); + hanukka_first_day = hebrew_calendar_to_universal (date.year, 9, 25); + if (udate - hanukka_first_day >= 0 && udate - hanukka_first_day <= 7) + return (udate - hanukka_first_day + 1); + else + return 0; +} + +int main() +{ + time_t now = time(NULL); + struct tm now_local; + struct tm now_gm; + + now_local = *(localtime(&now)); + now_gm = *(gmtime(&now)); + + long int dayswest = + (now_gm.tm_year < now_local.tm_year ? -1 : + now_gm.tm_year > now_local.tm_year ? 1 : + (now_gm.tm_mon < now_local.tm_mon ? -1 : + now_gm.tm_mon > now_local.tm_mon ? 1 : + (now_gm.tm_mday < now_local.tm_mday ? -1 : + now_gm.tm_mday > now_local.tm_mday ? 1 : + 0))); + long int hourswest = 24*dayswest + + (long int)(now_gm.tm_hour - now_local.tm_hour); + unsigned long int hours_since_1900 = ((unsigned long)now / 3600) - hourswest + 613608; + unsigned long int days_since_1900 = (hours_since_1900 + 6) / 24; + int candles = hebrew_calendar_hanukka_candles(days_since_1900); + return printf("candles = %d\n", candles); +} From 52c85abc0d70d5b5bedf5d96473042d1c33561019efe42722144e90362498b11 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 19 Feb 2018 12:11:32 +0000 Subject: [PATCH 20/37] Exit status of test-s390x(.c) OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=100 --- test-s390x.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test-s390x.c b/test-s390x.c index f0e77f6..1bf1b38 100644 --- a/test-s390x.c +++ b/test-s390x.c @@ -227,8 +227,7 @@ int main() now_local = *(localtime(&now)); now_gm = *(gmtime(&now)); - long int dayswest = - (now_gm.tm_year < now_local.tm_year ? -1 : + long int dayswest = (now_gm.tm_year < now_local.tm_year ? -1 : now_gm.tm_year > now_local.tm_year ? 1 : (now_gm.tm_mon < now_local.tm_mon ? -1 : now_gm.tm_mon > now_local.tm_mon ? 1 : @@ -240,5 +239,5 @@ int main() unsigned long int hours_since_1900 = ((unsigned long)now / 3600) - hourswest + 613608; unsigned long int days_since_1900 = (hours_since_1900 + 6) / 24; int candles = hebrew_calendar_hanukka_candles(days_since_1900); - return printf("candles = %d\n", candles); + return printf("candles = %d\n", candles) > 0; } From 19ca5cb7323e9b630146b024c3701c6f264c7bd03a5b8f2b7b5998889b61ad7d Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Mon, 19 Feb 2018 12:39:16 +0000 Subject: [PATCH 21/37] Exit status of test-s390x(.c) OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=101 --- test-s390x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-s390x.c b/test-s390x.c index 1bf1b38..8e213a2 100644 --- a/test-s390x.c +++ b/test-s390x.c @@ -239,5 +239,5 @@ int main() unsigned long int hours_since_1900 = ((unsigned long)now / 3600) - hourswest + 613608; unsigned long int days_since_1900 = (hours_since_1900 + 6) / 24; int candles = hebrew_calendar_hanukka_candles(days_since_1900); - return printf("candles = %d\n", candles) > 0; + return printf("candles = %d\n", candles) > 0 ? 0 : 1; } From d5c9def3396d28a49b184fbadaf3ec992bf5b844629361e011b73834e667bc5a Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 20 Feb 2018 10:05:41 +0000 Subject: [PATCH 22/37] Reduce compiler flags on s390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=102 --- clisp.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/clisp.spec b/clisp.spec index 11c7cab..fb33afb 100644 --- a/clisp.spec +++ b/clisp.spec @@ -207,6 +207,7 @@ unset noexec nommap safety %ifarch s390x $CC $MYCFLAGS -o test-s390x %{S:42} ./test-s390x +CC="gcc -g3 -O -fno-strict-aliasing -fPIC -pipe" %endif # From 75b908bc2f35d130cf261806322c061dbd864790473e866630a5117f115e4374 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 20 Feb 2018 12:13:23 +0000 Subject: [PATCH 23/37] generational gc OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=103 --- clisp.spec | 18 ++-- test-s390x.c | 243 --------------------------------------------------- 2 files changed, 6 insertions(+), 255 deletions(-) delete mode 100644 test-s390x.c diff --git a/clisp.spec b/clisp.spec index fb33afb..0603489 100644 --- a/clisp.spec +++ b/clisp.spec @@ -28,7 +28,6 @@ Url: http://clisp.cons.org Source: %name-%version.tar.bz2 Source3: clisp-rpmlintrc Source4: README.SUSE -Source42: test-s390x.c # PATCH-EXTEND-OPENSUSE Set the process execution domain Patch1: clisp-2.49-personality.patch # PATCH-FIX-OPENSUSE Fix crash on Ia64 @@ -186,14 +185,14 @@ case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; arm*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; - aarch64)MYCFLAGS="${MYCFLAGS}" ;; + aarch64)MYCFLAGS="${MYCFLAGS}" ;; ppc) MYCFLAGS="${MYCFLAGS}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DSAFETY=3" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DNO_GENERATIONAL_GC" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; @@ -201,14 +200,6 @@ esac export CC export MYCFLAGS unset noexec nommap safety -# -# Test for s390x -# -%ifarch s390x -$CC $MYCFLAGS -o test-s390x %{S:42} -./test-s390x -CC="gcc -g3 -O -fno-strict-aliasing -fPIC -pipe" -%endif # # Report final architectures @@ -280,7 +271,10 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=clx/new-clx \ --with-module=berkeley-db \ --with-module=postgresql - +%ifarch s390x +%_make lispbibl.h +cat lispbibl.h +%endif %_make -C build %_make -C build check diff --git a/test-s390x.c b/test-s390x.c deleted file mode 100644 index 8e213a2..0000000 --- a/test-s390x.c +++ /dev/null @@ -1,243 +0,0 @@ -#include -#include -#include -#include -#define local static - -/* Calendar computations using the Hebrew calendar. - Algorithms taken from emacs-20.6/lisp/calendar/cal-hebrew.el - Copyright (C) 1995, 1997 Free Software Foundation, Inc. - Copyright (C) 2003 Bruno Haible - */ - -/* Test whether the given year is a Hebrew calendar leap year. */ -/* Example: - hebrew_calendar_leap_year_p (5763) = true - hebrew_calendar_leap_year_p (5764) = false -*/ -local inline bool hebrew_calendar_leap_year_p (int year) -{ - return ((7 * year + 1) % 19) < 7; -} - -/* Months up to mean conjunction of Tishri of the given year. */ -/* Example: - hebrew_calendar_elapsed_months (5763) = 71266 - hebrew_calendar_elapsed_months (5764) = 71279 - Note that - hebrew_calendar_elapsed_months (year + 1) - - hebrew_calendar_elapsed_months (year) - == (hebrew_calendar_leap_year_p (year) ? 13 : 12). -*/ -local inline int hebrew_calendar_elapsed_months (int year) -{ - return ((year - 1) / 19) * 235 - + ((year - 1) % 19) * 12 - + (((year - 1) % 19) * 7 + 1) / 19; -} - -/* Days up to mean conjunction of Tishri of the given year. */ -/* Example: - hebrew_calendar_elapsed_days (5763) = 2104528 - hebrew_calendar_elapsed_days (5764) = 2104913 -*/ -local int hebrew_calendar_elapsed_days (int year) -{ - int months_elapsed = hebrew_calendar_elapsed_months (year); - int parts_elapsed = (months_elapsed % 1080) * 793 + 204; - int hours_elapsed = - 5 + months_elapsed * 12 + (months_elapsed / 1080) * 793 - + (parts_elapsed / 1080); - int parts = (hours_elapsed % 24) * 1080 + (parts_elapsed % 1080); - int day = 1 + months_elapsed * 29 + (hours_elapsed / 24); - int day1 = - (parts >= 19440 - || ((day % 7) == 2 && parts >= 9924 - && !hebrew_calendar_leap_year_p (year)) - || ((day % 7) == 1 && parts >= 16789 - && hebrew_calendar_leap_year_p (year - 1)) - ? day + 1 - : day); - int day2 = - ((day1 % 7) == 0 || (day1 % 7) == 3 || (day1 % 7) == 5 - ? day1 + 1 - : day1); - return day2; -} - -/* Return the number of days in the given year. */ -/* Example: - hebrew_calendar_days_in_year (5763) = 385 - hebrew_calendar_days_in_year (5764) = 355 - Note that the result is in the range 351..357 or 380..386. - Probably (but I cannot prove it) it is in the range 353..355 or 383..385. -*/ -local inline int hebrew_calendar_days_in_year (int year) -{ - return hebrew_calendar_elapsed_days (year + 1) - - hebrew_calendar_elapsed_days (year); -} - -/* Test whether in the given year, the Heshvan month is long. */ -local inline bool hebrew_calendar_long_heshvan_p (int year) -{ - return (hebrew_calendar_days_in_year (year) % 10) == 5; -} - -/* Test whether in the given year, the Kislev month is short. */ -local inline bool hebrew_calendar_short_kislev_p (int year) -{ - return (hebrew_calendar_days_in_year (year) % 10) == 3; -} - -/* Return the number of months of the given year. */ -local inline int hebrew_calendar_months_in_year (int year) -{ - return (hebrew_calendar_leap_year_p (year) ? 13 : 12); -} - -/* Return the number of days in the given month of the given year. */ -local int hebrew_calendar_last_day_of_month (int year, int month) -{ - /* Note that month 7 is the first month, and month 6 is the last one. */ - switch (month) - { - case 7: /* Tishri */ - return 30; - case 8: /* Heshvan */ - return (hebrew_calendar_long_heshvan_p (year) ? 30 : 29); - case 9: /* Kislev */ - return (hebrew_calendar_short_kislev_p (year) ? 29 : 30); - case 10: /* Teveth */ - return 29; - case 11: /* Shevat */ - return 30; - case 12: /* Adar, or - if leap year - Adar I */ - return (hebrew_calendar_leap_year_p (year) ? 30 : 29); - case 13: /* - only if leap year - Adar II */ - return 29; - case 1: /* Nisan */ - return 30; - case 2: /* Iyar */ - return 29; - case 3: /* Sivan */ - return 30; - case 4: /* Tammuz */ - return 29; - case 5: /* Av */ - return 30; - case 6: /* Elul */ - return 29; - default: abort (); - } -} - -/* Return the number of days since 1900-01-01 of a given Hebrew date. */ -/* Example: - hebrew_calendar_to_universal (5763, 6, 29) = 37888 - hebrew_calendar_to_universal (5764, 7, 1) = 37889 -*/ -local int hebrew_calendar_to_universal (int year, int month, int day) -{ - int days; - int m; - - days = hebrew_calendar_elapsed_days (year) - 2067024; - if (month < 7) { - int max_month = hebrew_calendar_months_in_year (year); - for (m = 7; m <= max_month; m++) - days += hebrew_calendar_last_day_of_month (year, m); - for (m = 1; m < month; m++) - days += hebrew_calendar_last_day_of_month (year, m); - } else { - for (m = 7; m < month; m++) - days += hebrew_calendar_last_day_of_month (year, m); - } - days += day - 1; - return days; -} - -/* Return the Hebrew date corresponding to a given universal date (= number - of days since 1900-01-01). */ -/* Example: - hebrew_calendar_from_universal (37888) = { 5763, 6, 29 } - hebrew_calendar_from_universal (37889) = { 5764, 7, 1 } -*/ -struct hebrew_date { int year; int month; int day; }; -local void hebrew_calendar_from_universal (int udate, struct hebrew_date *result) -{ - int year; - int elapsed_days; - int remaining_days; - int max_month; - int month; - - year = (int)((float)udate/(float)365.2422) + 5661; - for (;; year--) { - elapsed_days = hebrew_calendar_elapsed_days (year) - 2067024; - if (udate >= elapsed_days) - break; - } - - remaining_days = udate - elapsed_days; - max_month = hebrew_calendar_months_in_year (year); - for (month = 7; month <= max_month; month++) { - int mlength = hebrew_calendar_last_day_of_month (year, month); - if (remaining_days < mlength) - break; - remaining_days -= mlength; - } - if (month > max_month) { - for (month = 1; month < 7; month++) { - int mlength = hebrew_calendar_last_day_of_month (year, month); - if (remaining_days < mlength) - break; - remaining_days -= mlength; - } - if (month == 7) - abort (); - } - - result->year = year; - result->month = month; - result->day = remaining_days + 1; -} - -/* Return the number of Hanukka candles for a given universal date. */ -local int hebrew_calendar_hanukka_candles (int udate) -{ - /* The first day of Hanukka is on 25 Kislev. */ - struct hebrew_date date; - int hanukka_first_day; - - hebrew_calendar_from_universal (udate, &date); - hanukka_first_day = hebrew_calendar_to_universal (date.year, 9, 25); - if (udate - hanukka_first_day >= 0 && udate - hanukka_first_day <= 7) - return (udate - hanukka_first_day + 1); - else - return 0; -} - -int main() -{ - time_t now = time(NULL); - struct tm now_local; - struct tm now_gm; - - now_local = *(localtime(&now)); - now_gm = *(gmtime(&now)); - - long int dayswest = (now_gm.tm_year < now_local.tm_year ? -1 : - now_gm.tm_year > now_local.tm_year ? 1 : - (now_gm.tm_mon < now_local.tm_mon ? -1 : - now_gm.tm_mon > now_local.tm_mon ? 1 : - (now_gm.tm_mday < now_local.tm_mday ? -1 : - now_gm.tm_mday > now_local.tm_mday ? 1 : - 0))); - long int hourswest = 24*dayswest - + (long int)(now_gm.tm_hour - now_local.tm_hour); - unsigned long int hours_since_1900 = ((unsigned long)now / 3600) - hourswest + 613608; - unsigned long int days_since_1900 = (hours_since_1900 + 6) / 24; - int candles = hebrew_calendar_hanukka_candles(days_since_1900); - return printf("candles = %d\n", candles) > 0 ? 0 : 1; -} From 265d048f1303ed0e743c57ea7f5a1dbffa4f0fd8ee5dc9e700cb54efc810c051 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Tue, 20 Feb 2018 12:54:40 +0000 Subject: [PATCH 24/37] generational gc ... next try OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=104 --- clisp.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clisp.spec b/clisp.spec index 0603489..6cb2d93 100644 --- a/clisp.spec +++ b/clisp.spec @@ -272,8 +272,8 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=berkeley-db \ --with-module=postgresql %ifarch s390x -%_make lispbibl.h -cat lispbibl.h +%_make -C build lispbibl.h +cat build/lispbibl.h %endif %_make -C build %_make -C build check From 2d201cfcbc1bf486cdd246f79d3cd358243978a38d697a5d4b98f7bf414e3688 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 09:23:50 +0000 Subject: [PATCH 25/37] Try s390x without out patches OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=105 --- clisp.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/clisp.spec b/clisp.spec index 6cb2d93..1ed239f 100644 --- a/clisp.spec +++ b/clisp.spec @@ -116,6 +116,7 @@ contains two nice applications. %prep %setup -qT -b0 +%ifnarch s390x %patch1 -p1 -b .sel %patch2 -p1 -b .wooh %patch4 -p1 -b .conf @@ -126,6 +127,7 @@ contains two nice applications. %patch12 -p1 -b .p12 %patch14 -p0 -b .p14 %patch16 -p1 -b .p16 +%endif %build # @@ -248,6 +250,7 @@ find -name configure | xargs -r \ > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! %_configure build ${DEBUG} \ + CFLAGS="${MYCFLAGS}" \ ${port+"$port"} \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ From 3fbbd0453aacb2f29d550abc164c5b33be5e967c9c016049fae3d5d983cdbecb Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 09:53:57 +0000 Subject: [PATCH 26/37] Try s390x without our patches OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=106 --- clisp.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clisp.spec b/clisp.spec index 1ed239f..7c82e01 100644 --- a/clisp.spec +++ b/clisp.spec @@ -255,7 +255,9 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ --libdir=%{_libdir} \ +%ifnarch s390x --vimdir=%{vimdir} \ +%endif --fsstnd=suse \ --with-readline \ --with-dynamic-modules \ From 64693d638b1d3ef6fe2d212f2b2503af82ebc56eb24b8bc831cfbb509775f047 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 10:18:22 +0000 Subject: [PATCH 27/37] Try s390x without our patches as well as without stack protection OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=107 --- clisp.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 7c82e01..7f45cbd 100644 --- a/clisp.spec +++ b/clisp.spec @@ -152,6 +152,9 @@ if test %debug = yes ; then else CC="gcc" fi +%ifarch s390x +RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-[a-z-]+ ?//g')" +%endif CC="${CC} -g ${RPM_OPT_FLAGS} -falign-functions=4 -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in i[0-9]86) @@ -194,7 +197,7 @@ case "$(uname -m)" in sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DNO_GENERATIONAL_GC" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From b59a44b929f50012285b6f4c4b025d1215e73b1c29cf793d72dda2943510b120 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 11:21:47 +0000 Subject: [PATCH 28/37] Try s390x without stack protection OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=108 --- clisp.spec | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/clisp.spec b/clisp.spec index 7f45cbd..ca8e6d9 100644 --- a/clisp.spec +++ b/clisp.spec @@ -116,7 +116,6 @@ contains two nice applications. %prep %setup -qT -b0 -%ifnarch s390x %patch1 -p1 -b .sel %patch2 -p1 -b .wooh %patch4 -p1 -b .conf @@ -127,7 +126,6 @@ contains two nice applications. %patch12 -p1 -b .p12 %patch14 -p0 -b .p14 %patch16 -p1 -b .p16 -%endif %build # @@ -153,7 +151,7 @@ else CC="gcc" fi %ifarch s390x -RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-[a-z-]+ ?//g')" +RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-f(stack-[a-z-]+)/-fno\1/g') -fno-stack-limit" %endif CC="${CC} -g ${RPM_OPT_FLAGS} -falign-functions=4 -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in @@ -253,14 +251,11 @@ find -name configure | xargs -r \ > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! %_configure build ${DEBUG} \ - CFLAGS="${MYCFLAGS}" \ ${port+"$port"} \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ --libdir=%{_libdir} \ -%ifnarch s390x --vimdir=%{vimdir} \ -%endif --fsstnd=suse \ --with-readline \ --with-dynamic-modules \ @@ -279,10 +274,9 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=clx/new-clx \ --with-module=berkeley-db \ --with-module=postgresql -%ifarch s390x + %_make -C build lispbibl.h -cat build/lispbibl.h -%endif +grep TYPECODES build/lispbibl.h %_make -C build %_make -C build check From d01ca0f3a1abc1d3ea559f88532b3b0a155f9e725cafa22d6e6cb347b95ac049 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 11:26:10 +0000 Subject: [PATCH 29/37] Try s390x without stack protection OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=109 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index ca8e6d9..58845c7 100644 --- a/clisp.spec +++ b/clisp.spec @@ -276,7 +276,7 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! --with-module=postgresql %_make -C build lispbibl.h -grep TYPECODES build/lispbibl.h +grep TYPECODES build/lispbibl.h || : %_make -C build %_make -C build check From 4afa3abd699d4f9b3da2e3baf32582bde142316f27f11fd55a4a9d60f661b817 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 11:45:36 +0000 Subject: [PATCH 30/37] Try s390x without stack protection, 2nd OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=110 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index 58845c7..c809fb7 100644 --- a/clisp.spec +++ b/clisp.spec @@ -151,7 +151,7 @@ else CC="gcc" fi %ifarch s390x -RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-f(stack-[a-z-]+)/-fno\1/g') -fno-stack-limit" +RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-f(stack-[a-z-]+)/-fno-\1/g') -fno-stack-limit" %endif CC="${CC} -g ${RPM_OPT_FLAGS} -falign-functions=4 -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in From 1fd3093bca14e38485c37377269cb9f61a76752604551ecb70534664ee22bc76 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 12:21:08 +0000 Subject: [PATCH 31/37] Try s390x without stack protection, 3th OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=111 --- clisp.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index c809fb7..85282ab 100644 --- a/clisp.spec +++ b/clisp.spec @@ -151,7 +151,7 @@ else CC="gcc" fi %ifarch s390x -RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-f(stack-[a-z-]+)/-fno-\1/g') -fno-stack-limit" +RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-protector-strong ?//g;s/-f(stack-clash-protection)/-fno-\1/') -fno-stack-limit" %endif CC="${CC} -g ${RPM_OPT_FLAGS} -falign-functions=4 -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in From 34acd2d1091eeb8824445434a8240ef866ba71c0700af01bd13bc97c476eb1aa Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 13:27:35 +0000 Subject: [PATCH 32/37] Grummble ... giving up for now OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=112 --- clisp.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/clisp.spec b/clisp.spec index 85282ab..fe9da03 100644 --- a/clisp.spec +++ b/clisp.spec @@ -153,7 +153,7 @@ fi %ifarch s390x RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-protector-strong ?//g;s/-f(stack-clash-protection)/-fno-\1/') -fno-stack-limit" %endif -CC="${CC} -g ${RPM_OPT_FLAGS} -falign-functions=4 -fno-strict-aliasing -fPIC -pipe" +CC="${CC} -g ${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in i[0-9]86) CC="${CC} -mieee-fp -ffloat-store" ;; @@ -164,7 +164,8 @@ case "$(uname -m)" in x86_64) CC="${CC} -fno-gcse" ;; sparc*) CC="${CC} -mcpu=v9 -fno-gcse" ;; ppc64) CC="${CC} -fno-gcse -mpowerpc64" ;; - s390x) CC="${CC} -fno-gcse" ;; + ppc64le)CC="${CC} -fno-gcse" ;; + s390x) CC="${CC} -fno-gcse -fno-schedule-insns";; ia64) CC="${CC} -fno-gcse" ;; axp|alpha) CC="${CC}" ;; @@ -195,7 +196,8 @@ case "$(uname -m)" in sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DSAFETY=3" + port=--enable-portabilit ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From f4ccd410b99fda5c6e6eb694a22f96eb9f61060d5e7e1b0ea48d588378f6a756 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 13:44:58 +0000 Subject: [PATCH 33/37] Grummble ... giving up for now OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=113 --- clisp.spec | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/clisp.spec b/clisp.spec index fe9da03..7ad97d5 100644 --- a/clisp.spec +++ b/clisp.spec @@ -184,7 +184,17 @@ else MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE" fi MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var" +# From src/makemake.in +# +# Do NOT enable -DSAFETY=3 here, because -DSAFETY=3 not only disables some +# optimizations but also enables some debugging features (STACKCHECKs), which +# is not in the scope of --enable-portability. +# +%ifarch s390x +port='--enable-portability' +%else port='' +%endif case "$(uname -m)" in i[0-9]86) MYCFLAGS="${MYCFLAGS}" ;; @@ -196,8 +206,7 @@ case "$(uname -m)" in sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety}" ;; - s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DSAFETY=3" - port=--enable-portabilit ;; + s390x) MYCFLAGS="${MYCFLAGS} ${safety}" ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;; axp|alpha) MYCFLAGS="${MYCFLAGS}" ;; From 4c51cea558c0227cc56d2e9f874908d1408277a3dcec8f3a26082d27acec1a59 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 14:32:20 +0000 Subject: [PATCH 34/37] Cross compile? OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=114 --- clisp.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clisp.spec b/clisp.spec index 7ad97d5..ac6289d 100644 --- a/clisp.spec +++ b/clisp.spec @@ -262,6 +262,11 @@ find -name configure | xargs -r \ > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! %_configure build ${DEBUG} \ +%ifarch s390x + --build=s390x-ibm-linux-gnu \ + --target=s390x-ibm-linux-gnu\ + --host=s390x-nixda-gnu \ +%endif ${port+"$port"} \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ From 7d4d88a75f3cd1ae301195f767ff485ab323351ec08e304981417be0b4c3b55f Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 21 Feb 2018 16:10:05 +0000 Subject: [PATCH 35/37] Cross compile? OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=115 --- clisp.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/clisp.spec b/clisp.spec index ac6289d..02fe5e3 100644 --- a/clisp.spec +++ b/clisp.spec @@ -264,7 +264,6 @@ tail -q -s 0.5 -f $SCREENLOG & pid=$! %_configure build ${DEBUG} \ %ifarch s390x --build=s390x-ibm-linux-gnu \ - --target=s390x-ibm-linux-gnu\ --host=s390x-nixda-gnu \ %endif ${port+"$port"} \ From 22b2117ff782f3afa7a6dbef1f151d667f70df9e8320c5142764f9f2700770bd Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 22 Feb 2018 12:05:40 +0000 Subject: [PATCH 36/37] Other compiler for s390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=116 --- clisp.spec | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/clisp.spec b/clisp.spec index 02fe5e3..6d83949 100644 --- a/clisp.spec +++ b/clisp.spec @@ -54,6 +54,9 @@ BuildRequires: db-devel BuildRequires: dbus-1-devel BuildRequires: fdupes BuildRequires: ffcall +%ifarch s390x +BuildRequires: gcc8 +%endif BuildRequires: gdbm-devel BuildRequires: gtk2-devel BuildRequires: libglade2-devel @@ -151,7 +154,7 @@ else CC="gcc" fi %ifarch s390x -RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-protector-strong ?//g;s/-f(stack-clash-protection)/-fno-\1/') -fno-stack-limit" +##RPM_OPT_FLAGS="$(echo %{optflags}|sed -r 's/-fstack-protector-strong ?//g;s/-f(stack-clash-protection)/-fno-\1/') -fno-stack-limit" %endif CC="${CC} -g ${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC -pipe" case "$(uname -m)" in @@ -190,10 +193,9 @@ MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough - # optimizations but also enables some debugging features (STACKCHECKs), which # is not in the scope of --enable-portability. # -%ifarch s390x -port='--enable-portability' -%else port='' +%ifarch s390x +##port='--enable-portability' %endif case "$(uname -m)" in i[0-9]86) @@ -262,10 +264,6 @@ find -name configure | xargs -r \ > $SCREENLOG tail -q -s 0.5 -f $SCREENLOG & pid=$! %_configure build ${DEBUG} \ -%ifarch s390x - --build=s390x-ibm-linux-gnu \ - --host=s390x-nixda-gnu \ -%endif ${port+"$port"} \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ From 700bb807bdf1fcf19f20396d95e784d57953bb77adc41fe56c84ca45e902022a Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 22 Feb 2018 15:03:45 +0000 Subject: [PATCH 37/37] Other compiler for s390x OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=117 --- clisp.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clisp.spec b/clisp.spec index 6d83949..58aed29 100644 --- a/clisp.spec +++ b/clisp.spec @@ -54,9 +54,9 @@ BuildRequires: db-devel BuildRequires: dbus-1-devel BuildRequires: fdupes BuildRequires: ffcall -%ifarch s390x -BuildRequires: gcc8 -%endif +#%ifarch s390x +#BuildRequires: gcc8 +#%endif BuildRequires: gdbm-devel BuildRequires: gtk2-devel BuildRequires: libglade2-devel