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
This commit is contained in:
Dr. Werner Fink 2018-02-12 09:08:26 +00:00 committed by Git OBS Bridge
parent d545bb4e9e
commit f1624bdea7
12 changed files with 201 additions and 986 deletions

View File

@ -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

View File

@ -2,9 +2,10 @@
tests/streams.tst | 4 ++-- tests/streams.tst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/streams.tst b/tests/streams.tst
--- a/tests/streams.tst --- a/tests/streams.tst
+++ b/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))) (describe (make-array nil :element-type nil) s)))
T T

View File

@ -1,13 +1,13 @@
--- ---
clisp-9c43d428/configure | 4 ++-- clisp-2.49.90/configure | 4 ++--
clisp-9c43d428/src/lispbibl.d | 16 +++++++++++----- clisp-2.49.90/src/lispbibl.d | 16 +++++++++++-----
clisp-9c43d428/src/makemake.in | 15 ++++++++++++--- clisp-2.49.90/src/makemake.in | 17 +++++++++++++----
clisp-9c43d428/utils/modprep.lisp | 2 +- clisp-2.49.90/utils/modprep.lisp | 2 +-
4 files changed, 26 insertions(+), 11 deletions(-) 4 files changed, 27 insertions(+), 12 deletions(-)
--- clisp-9c43d428/configure --- clisp-2.49.90/configure
+++ clisp-9c43d428/configure 2017-07-27 12:30:20.772795623 +0000 +++ clisp-2.49.90/configure 2018-02-12 08:20:34.280915654 +0000
@@ -405,11 +405,11 @@ do @@ -429,11 +429,11 @@ do
passnext=makemake ;; passnext=makemake ;;
--vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*) --vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*)
@ -21,9 +21,9 @@
makemake_args="$makemake_args --vimdir=" makemake_args="$makemake_args --vimdir="
prev=vimdir prev=vimdir
passnext=both ;; passnext=both ;;
--- clisp-9c43d428/src/lispbibl.d --- clisp-2.49.90/src/lispbibl.d
+++ clisp-9c43d428/src/lispbibl.d 2017-07-27 12:22:29.421471307 +0000 +++ clisp-2.49.90/src/lispbibl.d 2018-02-12 08:20:34.284915577 +0000
@@ -175,7 +175,7 @@ @@ -178,7 +178,7 @@
#define PC386 /* IBMPC-compatible with 80386/80486-processor */ #define PC386 /* IBMPC-compatible with 80386/80486-processor */
#endif #endif
#ifdef GENERIC_UNIX #ifdef GENERIC_UNIX
@ -32,7 +32,7 @@
#define PC386 #define PC386
#endif #endif
#if (defined(sun) && defined(unix) && defined(sparc)) #if (defined(sun) && defined(unix) && defined(sparc))
@@ -278,8 +278,14 @@ @@ -270,8 +270,14 @@
#endif #endif
#ifdef GENERIC_UNIX #ifdef GENERIC_UNIX
#define UNIX #define UNIX
@ -48,7 +48,7 @@
#endif #endif
#ifdef __GNU__ #ifdef __GNU__
#define UNIX_HURD /* the GNU system (Hurd + glibc) */ #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: */ address of its component 'ident' and return it as number: */
#include <stddef.h> #include <stddef.h>
#ifndef offsetof #ifndef offsetof
@ -57,7 +57,7 @@
#endif #endif
/* Determine the offset of an array 'ident' in a struct of the type 'type': */ /* Determine the offset of an array 'ident' in a struct of the type 'type': */
#if defined(__cplusplus) || defined(MICROSOFT) #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) */ type_data_object(type,data) */
#if defined(WIDE) && defined(WIDE_STRUCT) #if defined(WIDE) && defined(WIDE_STRUCT)
#if BIG_ENDIAN_P==WIDE_ENDIANNESS #if BIG_ENDIAN_P==WIDE_ENDIANNESS
@ -69,8 +69,8 @@
#endif #endif
#elif !(oint_addr_shift==0) #elif !(oint_addr_shift==0)
#define type_data_object(type,data) \ #define type_data_object(type,data) \
--- clisp-9c43d428/src/makemake.in --- clisp-2.49.90/src/makemake.in
+++ clisp-9c43d428/src/makemake.in 2017-07-27 12:29:06.778157626 +0000 +++ clisp-2.49.90/src/makemake.in 2018-02-12 08:24:54.275897762 +0000
@@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} @@ -250,6 +250,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false}
# Handle --with-... arguments # Handle --with-... arguments
while test -z "$endofargs"; do while test -z "$endofargs"; do
@ -81,32 +81,30 @@
-verb* | --verb* ) -verb* | --verb* )
verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` verbose=`echol "$1"|sed 's/-*v[^=]*=*//'`
test -n "${verbose}" || verbose=true test -n "${verbose}" || verbose=true
@@ -1147,6 +1150,7 @@ else @@ -1183,11 +1186,13 @@ else
fi fi
# Main cpu dependencies: # Main cpu dependencies:
+set -x +set -x
cpu=$host_cpu_c_abi cpu="${host_cpu_c_abi}"
if test -z "$cpu"; then if test -z "$cpu"; then
echo "$0: WARNING: host_cpu_c_abi is void; using host_cpu=${host_cpu}" >&2 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}"
* ) cpu=${host_cpu} ;;
esac
fi fi
+set +x +set +x
test "${verbose}" = true -o "${verbose}" = yes && \ test "${verbose}" = true -o "${verbose}" = yes && \
cat <<EOF >&2 cat <<EOF >&2
@@ -1293,7 +1298,7 @@ if [ $XCC_GCC = true ] ; then @@ -1337,7 +1342,7 @@ if [ $XCC_GCC = true ] ; then
fi fi
# For platforms that use global register variables... # For platforms that use global register variables...
case "$cpu" in case "$cpu" in
- m68k | i386 | sparc | sparc64 | hppa | m88k | arm | alpha* | convex | s390*) - m68k | i386 | sparc | sparc64 | hppa | arm | armhf | alpha | s390*)
+ m68k | i386 | sparc | sparc64 | hppa | m88k | arm* | alpha* | convex | s390*) + m68k | i386 | sparc | sparc64 | hppa | arm | armhf | armel | alpha | s390*)
if [ $CROSS = false ] ; then if [ $CROSS = false ] ; then
case "$XCC_GCC_VERSION" in case "$XCC_GCC_VERSION" in
3.1*) 3.1*)
@@ -1333,6 +1338,9 @@ if [ $XCC_GCC = true ] ; then @@ -1384,6 +1389,9 @@ if [ $XCC_GCC = true ] ; then
XCFLAGS=${XCFLAGS}" -pthread" XCFLAGS=${XCFLAGS}" -pthread"
fi fi
@ -116,16 +114,25 @@
else else
if [ $CROSS = false ] ; then if [ $CROSS = false ] ; then
@@ -1714,7 +1722,7 @@ if [ "${enable_portability}" = no ] ; th @@ -1605,7 +1613,7 @@ else
ARI_ASMD=$ARI_ASMD' arihppa' ;;
ARI_ASMS=$ARI_ASMS' arihppa'
# 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 fi
- if [ "$cpu" = arm -o "$cpu" = armhf ] ; then - if [ "$cpu" = arm -o "$cpu" = armhf ] ; then
+ if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then + if [ "$cpu" = arm -o "$cpu" = armhf -o "$cpu" = armel ] ; then
ARI_ASMD=$ARI_ASMD' ariarm' ARI_ASMD=$ARI_ASMD' ari_asm_arm'
ARI_ASMS=$ARI_ASMS' ariarm' ARI_ASMS=$ARI_ASMS' ari_asm_arm'
fi fi
@@ -3559,8 +3567,9 @@ if [ $CROSS = false ] ; then @@ -4105,8 +4113,9 @@ if [ $CROSS = false ] ; then
echol echol
if [ "${with_dynamic_modules}" != no ]; then if [ "${with_dynamic_modules}" != no ]; then
depends="full install-modules force" depends="full install-modules force"
@ -136,9 +143,9 @@
echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod" echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/dynmod"
echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)" echotab "DESTDIR=\`cd \"\$(DESTDIR)\$(lisplibdir)\"; pwd\` CLISP='./clisp -q -norc' ./clisp-link install \$(MODULES)"
echol echol
--- clisp-9c43d428/utils/modprep.lisp --- clisp-2.49.90/utils/modprep.lisp
+++ clisp-9c43d428/utils/modprep.lisp 2017-07-27 12:22:29.421471307 +0000 +++ clisp-2.49.90/utils/modprep.lisp 2018-02-12 08:20:34.288915500 +0000
@@ -327,7 +327,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); @@ -328,7 +328,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot);
((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out))
(t (format out "_~2,'0x" (char-code cc)))))) (t (format out "_~2,'0x" (char-code cc))))))

View File

@ -2,6 +2,7 @@
src/_clisp.c | 11 +++++++++++ src/_clisp.c | 11 +++++++++++
1 file changed, 11 insertions(+) 1 file changed, 11 insertions(+)
diff --git a/src/_clisp.c b/src/_clisp.c
--- a/src/_clisp.c --- a/src/_clisp.c
+++ b/src/_clisp.c +++ b/src/_clisp.c
@@ -48,6 +48,11 @@ @@ -48,6 +48,11 @@
@ -16,7 +17,7 @@
#if defined(WIN32_NATIVE) #if defined(WIN32_NATIVE)
# include <windows.h> # include <windows.h>
int shell_quote (char * dest, const char * source); 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 #undef W32ERR
#else #else

View File

@ -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 diff --git a/src/aclocal.m4 b/src/aclocal.m4
--- a/src/aclocal.m4 --- a/src/aclocal.m4
+++ b/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 When using libtool, the option that works for both libraries and
dnl executables is -R. The -R options are cumulative. dnl executables is -R. The -R options are cumulative.
for found_dir in $ltrpathdirs; do for found_dir in $ltrpathdirs; do

3
clisp-2.49.90.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:47efb9275171a4a469da00bab4935d9d9c9af6892b5c1951cd7d111a4e37e7fa
size 8921458

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2b2f97c69b2800887fe6773c7f27e958c927bb1f2747d4603973cf3dab9dd062
size 8659436

View File

@ -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__

View File

@ -4,8 +4,8 @@
2 files changed, 4 insertions(+), 2 deletions(-) 2 files changed, 4 insertions(+), 2 deletions(-)
--- src/clisp-link.in --- src/clisp-link.in
+++ src/clisp-link.in 2017-07-27 12:34:06.144647126 +0000 +++ src/clisp-link.in 2018-02-12 08:31:51.215851048 +0000
@@ -578,7 +578,7 @@ case "$1" in @@ -579,7 +579,7 @@ case "$1" in
# when running "CLISP=./clisp ./clisp-link install <modname>" # when running "CLISP=./clisp ./clisp-link install <modname>"
# in the build directory, avoid "cp: `...' and `...' are the same file" # in the build directory, avoid "cp: `...' and `...' are the same file"
if [ "${absolute_moduledir}" != "${absdestdir}/$moduledir" ]; then if [ "${absolute_moduledir}" != "${absdestdir}/$moduledir" ]; then
@ -15,8 +15,8 @@
for f in ${DYNDIR_FILES}; do for f in ${DYNDIR_FILES}; do
cp ${f} ${absdestdir}/${DYNMOD}/ cp ${f} ${absdestdir}/${DYNMOD}/
--- src/lispbibl.d --- src/lispbibl.d
+++ src/lispbibl.d 2017-07-27 12:34:06.152646979 +0000 +++ src/lispbibl.d 2018-02-12 08:31:51.219850972 +0000
@@ -1571,6 +1571,8 @@ typedef SLONG sint32; /* signed 32 bi @@ -1621,6 +1621,8 @@ typedef SLONG sint32; /* signed 32 bi
/* Emulate 64-Bit-numbers using two 32-Bit-numbers. */ /* Emulate 64-Bit-numbers using two 32-Bit-numbers. */
typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */ typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */
typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */ typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */
@ -25,7 +25,7 @@
#endif #endif
/* Use 'uintX' and 'sintX' for Integers with approximately given width /* Use 'uintX' and 'sintX' for Integers with approximately given width
and a minumum of storage space. */ 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) #define pushSTACK(obj) (STACK_(-1) = (obj), STACK skipSTACKop -1)
/* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but /* Almost equivalent with *--STACK = obj resp. *STACK++ = obj , but
Careful: first enter the object into STACK_(-1), THEN modify the STACK! */ Careful: first enter the object into STACK_(-1), THEN modify the STACK! */

View File

@ -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 --- a/modules/bindings/glibc/linux.lisp
+++ b/modules/bindings/glibc/linux.lisp +++ b/modules/bindings/glibc/linux.lisp
@@ -294,6 +294,8 @@ @@ -294,6 +294,8 @@
@ -9,11 +14,3 @@
; -------------------------- <bits/errno.h> ----------------------------------- ; -------------------------- <bits/errno.h> -----------------------------------
@@ -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))

View File

@ -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 <http://clisp.org/impnotes/syscalls.html#wildcard> for details.
* Module REGEXP:
+ Function REGEXP:REGEXP-EXEC no longer accepts :BOOLEAN argument; use
:RETURN-TYPE 'BOOLEAN instead.
See <http://clisp.org/impnotes/regexp.html#re-regexp-exec> for details.
* Module RAWSOCK:
+ Function RAWSOCK:CONVERT-ADDRESS now returns byte vectors instead of
integers.
See <http://clisp.org/impnotes/rawsock.html#rawsock-convert-address>
for details.
* Mixing &OPTIONAL and &KEY in the same lambda list is a bad design
and now triggers a STYLE-WARNING during compilation.
See <http://clisp.org/impnotes/compilation.html#key-optional> for details.
* Redefinition warnings are now of type STYLE-WARNING.
Some CLOS warnings are now of type STYLE-WARNING.
See <http://clisp.org/impnotes/evaluation.html#suppress-check-redef>
and <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-warn>
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 <http://clisp.org/impnotes/require.html#module-providers> for details.
* The readline-based completion facility is now more customizable.
See <http://clisp.org/impnotes/terminal.html#readline-extend> for details.
* New declaration DYNAMICALLY-MODIFIABLE disables GF-ALREADY-CALLED-WARNING.
See <http://clisp.org/impnotes/mop-clisp.html#mop-clisp-gf-dynamically-modifiable>
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 <http://clisp.org/impnotes/socket.html#so-handles> 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 <http://clisp.org/impnotes/image.html#images-in-distros> for how to use
these options.
* Module SYSCALLS:
+ New function POSIX:FILE-TREE-WALK calls nftw().
See <http://clisp.org/impnotes/syscalls.html#file-tree-walk> for details.
+ New function POSIX:GETDATE calls getdate().
See <http://clisp.org/impnotes/syscalls.html#getdate> for details.
+ New macro POSIX:WITH-SUBPROCESSES temporarily enables SIGCLD so that
functions POSIX:WAIT, LINUX:wait and LINUX:waitpid work (bug#592).
See <http://clisp.org/impnotes/syscalls.html#with-subprocesses> for details.
+ Function POSIX:USAGE now accept an optional argument and returns a
single value.
See <http://clisp.org/impnotes/syscalls.html#usage> for details.
* Module berkeley-db now supports Berkeley-DB 5.1.
(Older versions are, of course, still supported).
See <http://clisp.org/impnotes/berkeley-db.html> for details.
* Module pari now supports PARI 2.9.3 and most of the interface
functions are generated automatically.
See <http://clisp.org/impnotes/pari.html> 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 Thu Dec 7 11:04:09 UTC 2017 - dimstar@opensuse.org

View File

@ -1,7 +1,7 @@
# #
# spec file for package clisp # 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 # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # 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 Name: clisp
Version: 2.49.60+ Version: 2.49.90
Release: 0 Release: 0
Summary: A Common Lisp Interpreter Summary: A Common Lisp Interpreter
License: GPL-2.0+ License: GPL-2.0+
@ -28,15 +25,13 @@ Group: Development/Languages/Other
Url: http://clisp.cons.org Url: http://clisp.cons.org
#Source: http://downloads.sf.net/clisp/%name-%version.tar.bz2 #Source: http://downloads.sf.net/clisp/%name-%version.tar.bz2
Source: %name-%uuid.tar.bz2 Source: %name-%version.tar.bz2
Source3: clisp-rpmlintrc Source3: clisp-rpmlintrc
Source4: README.SUSE Source4: README.SUSE
# PATCH-EXTEND-OPENSUSE Set the process execution domain # PATCH-EXTEND-OPENSUSE Set the process execution domain
Patch1: clisp-2.49-personality.patch Patch1: clisp-2.49-personality.patch
# PATCH-FIX-OPENSUSE Fix crash on Ia64 # PATCH-FIX-OPENSUSE Fix crash on Ia64
Patch2: clisp-2.39-ia64-wooh.dif 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 # PATCH-EXTEND-OPENSUSE Make sure to be able to use MYCLFAGS
Patch4: clisp-2.49-configure.dif Patch4: clisp-2.49-configure.dif
# PATCH-FIX-OPENSUSE Make sure to use initialized token on garbage collection # 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 Patch8: clisp-2.49-rpath.dif
# PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls # PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls
Patch12: clisp-linux.patch Patch12: clisp-linux.patch
# PATCH-EXTEND-UPSTREAM Make armv7l work
Patch15: clisp-arm.patch
Patch14: clisp-link.dif Patch14: clisp-link.dif
Patch16: clisp-db6.diff Patch16: clisp-db6.diff
@ -121,10 +114,9 @@ with the file README. The subdirectory
contains two nice applications. contains two nice applications.
%prep %prep
%setup -qT -b0 -n clisp-%uuid %setup -qT -b0
%patch1 -p1 -b .sel %patch1 -p1 -b .sel
%patch2 -p1 -b .wooh %patch2 -p1 -b .wooh
%patch3 -p1 -b .clx
%patch4 -p1 -b .conf %patch4 -p1 -b .conf
%patch5 -p1 -b .gc %patch5 -p1 -b .gc
%patch6 -p1 -b .demos %patch6 -p1 -b .demos
@ -132,7 +124,6 @@ contains two nice applications.
%patch8 -p1 -b .rpath %patch8 -p1 -b .rpath
%patch12 -p1 -b .p12 %patch12 -p1 -b .p12
%patch14 -p0 -b .p14 %patch14 -p0 -b .p14
%patch15 -p0 -b .p15
%patch16 -p1 -b .p16 %patch16 -p1 -b .p16
%build %build
@ -174,9 +165,7 @@ case "$(uname -m)" in
axp|alpha) axp|alpha)
CC="${CC}" ;; CC="${CC}" ;;
esac esac
noexec='-DKERNELVOID32A_HEAPCODES' safety='-O'
nommap='-DNO_MULTIMAP_SHM -DNO_MULTIMAP_FILE -DNO_SINGLEMAP -DNO_TRIVIALMAP'
safety='-DSAFETY=3 -O'
MYCFLAGS="$(getconf LFS_CFLAGS)" MYCFLAGS="$(getconf LFS_CFLAGS)"
if grep -q _DEFAULT_SOURCE /usr/include/features.h if grep -q _DEFAULT_SOURCE /usr/include/features.h
then then
@ -184,27 +173,23 @@ then
else else
MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE" MYCFLAGS="${MYCFLAGS} -D_GNU_SOURCE"
fi fi
MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized" MYCFLAGS="${MYCFLAGS} -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var"
port='' port=''
case "$(uname -m)" in case "$(uname -m)" in
i[0-9]86) i[0-9]86)
MYCFLAGS="${MYCFLAGS}" ;; MYCFLAGS="${MYCFLAGS}" ;;
arm*) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; arm*) MYCFLAGS="${MYCFLAGS}" ;;
aarch64)MYCFLAGS="${MYCFLAGS}" aarch64)MYCFLAGS="${MYCFLAGS}" ;;
port=--enable-portability ;; ppc) MYCFLAGS="${MYCFLAGS}" ;;
ppc) MYCFLAGS="${MYCFLAGS} ${noexec}" ;; s390) MYCFLAGS="${MYCFLAGS}" ;;
s390) MYCFLAGS="${MYCFLAGS} ${noexec}" ;;
x86_64) MYCFLAGS="${MYCFLAGS}" ;; x86_64) MYCFLAGS="${MYCFLAGS}" ;;
sparc*) MYCFLAGS="${MYCFLAGS} ${nommap} ${safety}" ;; sparc*) MYCFLAGS="${MYCFLAGS} ${safety}" ;;
ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ppc64) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;;
port=--enable-portability ;; ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;;
ppc64le)MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD" ;;
port=--enable-portability ;; ia64) MYCFLAGS="${MYCFLAGS} ${safety}" ;;
s390x) MYCFLAGS="${MYCFLAGS} ${safety} -DWIDE_HARD"
port=--enable-portability ;;
ia64) MYCFLAGS="${MYCFLAGS} ${nommap} ${safety}" ;;
axp|alpha) axp|alpha)
MYCFLAGS="${MYCFLAGS} ${nommap}" ;; MYCFLAGS="${MYCFLAGS}" ;;
esac esac
export CC export CC
export MYCFLAGS export MYCFLAGS