Accepting request 176281 from devel:languages:misc

Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/176281
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/clisp?expand=0&rev=33
This commit is contained in:
Stephan Kulow 2013-05-27 07:43:11 +00:00 committed by Git OBS Bridge
commit 4eaaaaaa6c
18 changed files with 1312 additions and 4147 deletions

View File

@ -1,7 +1,3 @@
---
modules/clx/new-clx/clx.f | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/modules/clx/new-clx/clx.f
+++ b/modules/clx/new-clx/clx.f
@@ -1721,7 +1721,8 @@ static void general_lookup (object type)
@ -24,3 +20,13 @@
/* -----------------------------------------------------------------------
--- 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

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +0,0 @@
---
ffcall-1.10+2.43/callback/trampoline_r/trampoline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/ffcall-1.10+2.43/callback/trampoline_r/trampoline.c
+++ b/ffcall-1.10+2.43/callback/trampoline_r/trampoline.c
@@ -368,7 +368,7 @@ __TR_function alloc_trampoline_r (__TR_f
{ /* Get a new page. */
char* page;
#ifdef EXECUTABLE_VIA_MMAP_ANONYMOUS
- page = mmap(0, pagesize, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANONYMOUS | MAP_VARIABLE, -1, 0);
+ page = mmap(0, pagesize, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS | MAP_VARIABLE, -1, 0);
#endif
#ifdef EXECUTABLE_VIA_MMAP_DEVZERO
page = mmap(0, pagesize, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, zero_fd, 0);

View File

@ -1,16 +0,0 @@
---
ffcall-1.10+2.43/callback/trampoline_r/trampoline_r.h.in | 5 +++++
1 file changed, 5 insertions(+)
--- a/ffcall-1.10+2.43/callback/trampoline_r/trampoline_r.h.in
+++ b/ffcall-1.10+2.43/callback/trampoline_r/trampoline_r.h.in
@@ -22,4 +22,9 @@ extern __TR_function trampoline_r_addres
extern void* trampoline_r_data0 (void*);
extern void* trampoline_r_data1 (void*);
+/* http://article.gmane.org/gmane.lisp.clisp.general/7485 */
+#ifndef MAP_VARIABLE
+# define MAP_VARIABLE 0
+#endif
+
#endif /* _TRAMPOLINE_R_H */

153
clisp-2.49-clx_demos.dif Normal file
View File

@ -0,0 +1,153 @@
--- a/modules/clx/new-clx/demos/clx-demos.lisp
+++ b/modules/clx/new-clx/demos/clx-demos.lisp
@@ -11,7 +11,7 @@
(defparameter *demos*
;; (demo-name [package requirements])
- '((koch) (qix) (sokoban #:xpm) (greynetic) (petal) (hanoi)
+ '((greynetic) (petal) (hanoi)
(recurrence) (plaid) (clclock) (bball) (bwindow)))
(defmacro do-demos ((fun-var) &body body)
--- a/modules/clx/new-clx/demos/koch.lisp
+++ b/modules/clx/new-clx/demos/koch.lisp
@@ -7,7 +7,30 @@
;;; $Id: koch.lisp,v 1.5 2008/06/25 23:05:28 sds Exp $
;;; $Source: /cvsroot/clisp/clisp/modules/clx/new-clx/demos/koch.lisp,v $
-(in-package :clx-demos)
+(defpackage "KOCH"
+ (:use "COMMON-LISP" "XLIB" "EXT")
+ (:import-from "SYS" "GETENV")
+ (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH
+ (:export "KOCH"))
+
+(in-package :koch)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+ "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+ (if disp
+ (let* ((pos1 (position #\: disp))
+ (pos2 (and pos1 (position #\. disp :start pos1))))
+ (values (subseq disp 0 pos1)
+ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+ (values "" 0 0)))
+
+(defun x-open-display ()
+ "Open the appropriate X display."
+ (multiple-value-bind (host di) (x-host-display)
+ (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun koch-point (cx width/2 height/2 scale)
(list (round (+ width/2 (* scale width/2 (realpart cx))))
@@ -123,4 +146,8 @@ Returns the new list and an indicator of
(xlib:unmap-window win)
(xlib:display-finish-output dpy))))
+(format t "~& Koch snoflake:~%
+ (koch:koch :width :height :delay :x :y :scale :font)
+~% Call (koch:koch)~%~%")
+
(provide "koch")
--- a/modules/clx/new-clx/demos/qix.lisp
+++ b/modules/clx/new-clx/demos/qix.lisp
@@ -14,7 +14,30 @@
;;;; o or a spline option?!
;;;;
-(in-package :clx-demos)
+(defpackage "QIX"
+ (:use "COMMON-LISP" "XLIB" "EXT")
+ (:import-from "SYS" "GETENV")
+ (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH
+ (:export "QIX"))
+
+(in-package :qix)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+ "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+ (if disp
+ (let* ((pos1 (position #\: disp))
+ (pos2 (and pos1 (position #\. disp :start pos1))))
+ (values (subseq disp 0 pos1)
+ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+ (values "" 0 0)))
+
+(defun x-open-display ()
+ "Open the appropriate X display."
+ (multiple-value-bind (host di) (x-host-display)
+ (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar *offset* 3)
(defvar *delta* 6)
@@ -87,4 +110,9 @@
(xlib:unmap-window win)
(xlib:display-finish-output dpy))))
+;; since we have no herald, simply dump it:
+(format t "~& The famous swirling vectors.~%
+ (qix:qix :host :display :dpy :width :height :delay :nqixs :nlines)
+~% Call (qix:qix) or (qix:qix :delay 0)~%~%")
+
(provide "qix")
--- a/modules/clx/new-clx/demos/sokoban.lisp
+++ b/modules/clx/new-clx/demos/sokoban.lisp
@@ -41,7 +41,30 @@
;;;; - maximum field size is hard wired to 20x20. (This is not in the LISP spirit!)
;;;; - sometimes the programm could not count correctly ...
-(in-package :clx-demos)
+(defpackage "SOKOBAN"
+ (:use "COMMON-LISP")
+ (:import-from "SYS" "GETENV")
+ (:import-from "XLIB" "CLOSED-DISPLAY-P")
+ (:export "SOKOBAN"))
+
+(in-package :sokoban)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+ "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+ (if disp
+ (let* ((pos1 (position #\: disp))
+ (pos2 (and pos1 (position #\. disp :start pos1))))
+ (values (subseq disp 0 pos1)
+ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+ (values "" 0 0)))
+
+(defun x-open-display ()
+ "Open the appropriate X display."
+ (multiple-value-bind (host di) (x-host-display)
+ (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; First a lot of global variables ...
(defvar *pixmaps* nil) ;array of pixmaps according to below indices
@@ -228,7 +251,12 @@
(nny (+ ny dy)))
(when (>= (field nnx nny) %floor)
;;Ok its legal ...
- (when (and (= (field nx ny) %object)
+ ;;Allow moving through
+ (when (and (= (field nx ny) %treasure)
+ (= (field nnx nny) %floor))
+ (incf *n-objects*))
+ ;;Take this point
+ (when (and (= (field nx ny) %object)
(= (field nnx nny) %goal))
(decf *n-objects*))
(incf (field nx ny) 4) ;remove object and add man
@@ -475,4 +503,6 @@ If you quit sokoban using 'q' the curren
(setq *level* 1)
(init-field))) )
+(format t "~&~% Call (sokoban:sokoban)~%~%")
+
(provide "sokoban")

108
clisp-2.49-configure.dif Normal file
View File

@ -0,0 +1,108 @@
--- a/configure
+++ b/configure
@@ -393,11 +393,11 @@ do
passnext=both ;;
--vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*)
- subdir_configure_args="$subdir_configure_args $arg"
+# subdir_configure_args="$subdir_configure_args $arg"
makemake_args="$makemake_args --vimdir="`getarg "$arg"` ;;
--vimdir | --vimdi | --vimd | --vim | --vi)
- subdir_configure_args="$subdir_configure_args $arg"
+# subdir_configure_args="$subdir_configure_args $arg"
makemake_args="$makemake_args --vimdir="
prev=vimdir
passnext=both ;;
--- a/src/lispbibl.d
+++ b/src/lispbibl.d
@@ -121,7 +121,7 @@
#define PC386 /* IBMPC-compatible with 80386/80486-processor */
#endif
#ifdef GENERIC_UNIX
- #if (defined(unix) && (defined(linux) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__)))
+ #if (defined(unix) && ((defined(linux) || defined(__linux__)) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__)))
#define PC386
#endif
#if (defined(sun) && defined(unix) && defined(sparc))
@@ -218,8 +218,14 @@
#endif
#ifdef GENERIC_UNIX
#define UNIX
- #ifdef __linux__
+ #if defined(__linux__) || defined(linux)
#define UNIX_LINUX /* Linux (Linus Torvalds Unix) */
+ #ifndef linux
+ #define linux
+ #endif
+ #ifndef __linux__
+ #define __linux__
+ #endif
#endif
#ifdef __GNU__
#define UNIX_HURD /* the GNU system (Hurd + glibc) */
@@ -1245,7 +1251,7 @@ typedef signed int signean;
address of its component 'ident' and return it as number: */
#include <stddef.h>
#ifndef offsetof
- #define offsetof(type,ident) ((ULONG)&(((type*)0)->ident))
+ #define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
#endif
/* Determine the offset of an array 'ident' in a struct of the type 'type': */
#if defined(__cplusplus) || defined(MICROSOFT)
@@ -3312,9 +3318,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
- #define type_data_object(type,data) ((object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP})
+ #define type_data_object(type,data) (object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP}
#else
- #define type_data_object(type,data) ((object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP})
+ #define type_data_object(type,data) (object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP}
#endif
#elif !(oint_addr_shift==0)
#define type_data_object(type,data) \
--- a/src/makemake.in
+++ b/src/makemake.in
@@ -228,6 +228,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false}
# Handle --with-... arguments
while test -z "$endofargs"; do
case "$1" in
+ -ignore* | --ignore* )
+ shift
+ ;;
-verb* | --verb* )
verbose=`echol "$1"|sed 's/-*v[^=]*=*//'`
test -n "${verbose}" || verbose=true
@@ -1335,6 +1338,10 @@ if [ $XCC_GCC = true ] ; then
XCFLAGS=${XCFLAGS}" -pthread"
fi
+ if [ -n "${MYCFLAGS}" ] ; then
+ XCFLAGS=$XCFLAGS' ${MYCFLAGS} '
+ fi
+
else
if [ $TSYS = sun4 -a $CROSS = false ] ; then
@@ -3593,7 +3600,8 @@ if [ $CROSS = false ] ; then
echotab " mkdir -p \"\$\$absdest/\$\$m\"; \\"
echotab " cd \$\$m; \$(MAKE) clisp-module-distrib LN=\"\$(INSTALL_DATA)\" distribdir=\"\$\$absdest/\$\$m\" ; cd \"\$\$here\"; \\"
echotab " done; fi"
- line='linkkit/* base/*'
+ echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full"
+ line='linkkit/* base/* full/*'
else
echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full"
line='linkkit/* base/* full/*'
--- a/utils/modprep.lisp
+++ b/utils/modprep.lisp
@@ -345,7 +345,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))))))
-(defvar *tag-length-limit* 2000
+(defvar *tag-length-limit* 4096
"The approximate maximum length of a C name.
This works around the failure on i18n on Alpha Linux:
/tmp/ccYZBYCX.s: Assembler messages:

10
clisp-2.49-gctoken.dif Normal file
View File

@ -0,0 +1,10 @@
--- a/utils/gctrigger.c
+++ b/utils/gctrigger.c
@@ -599,6 +599,7 @@ static inline void VectorToken_delete (V
static Token nexttoken (boolean within_prep_directive)
{
Token token;
+ memset(&token, 0, sizeof(Token));
restart:
{ int c = next_char();
switch (c) {

View File

@ -0,0 +1,9 @@
--- a/modules/postgresql/link.sh.in
+++ b/modules/postgresql/link.sh.in
@@ -4,5 +4,5 @@ ${MAKE-make} clisp-module \
NEW_MODULES='postgresql'
NEW_FILES=''
for f in ${NEW_MODULES}; do NEW_FILES=${NEW_FILES}" ${f}.o"; done
-NEW_LIBS="${NEW_FILES} @LIBS@"
+NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl"
TO_LOAD='postgresql sql'

11
clisp-2.49-rpath.dif Normal file
View File

@ -0,0 +1,11 @@
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -6668,7 +6668,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
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir"
done
fi
popdef([P_A_C_K])

View File

@ -1,487 +0,0 @@
---
configure | 6 --
ffcall-1.10+2.43/build-aux/config.guess | 1
ffcall-1.10+2.43/callback/trampoline_r/trampoline.c | 4 -
modules/clx/new-clx/clx.lisp | 1
modules/clx/new-clx/demos/clx-demos.lisp | 2
modules/clx/new-clx/demos/koch.lisp | 29 ++++++++++
modules/clx/new-clx/demos/qix.lisp | 30 ++++++++++-
modules/clx/new-clx/demos/sokoban.lisp | 34 +++++++++++-
modules/postgresql/link.sh.in | 2
src/aclocal.m4 | 2
src/build-aux/config.guess | 54 ++++++++++----------
src/lispbibl.d | 16 ++++-
src/makemake.in | 10 +++
utils/gctrigger.c | 1
utils/modprep.lisp | 2
15 files changed, 145 insertions(+), 49 deletions(-)
--- a/configure
+++ b/configure
@@ -393,11 +393,11 @@ do
passnext=both ;;
--vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*)
- subdir_configure_args="$subdir_configure_args $arg"
+# subdir_configure_args="$subdir_configure_args $arg"
makemake_args="$makemake_args --vimdir="`getarg "$arg"` ;;
--vimdir | --vimdi | --vimd | --vim | --vi)
- subdir_configure_args="$subdir_configure_args $arg"
+# subdir_configure_args="$subdir_configure_args $arg"
makemake_args="$makemake_args --vimdir="
prev=vimdir
passnext=both ;;
@@ -430,11 +430,9 @@ do
passnext=configure ;;
--build=* | --buil=* | --bui=* | --bu=*)
- target=cross
subdir_configure_args="$subdir_configure_args $arg" ;;
--build | --buil | --bui | --bu)
- target=cross
subdir_configure_args="$subdir_configure_args $arg"
prev=host
passnext=configure ;;
--- a/ffcall-1.10+2.43/build-aux/config.guess
+++ b/ffcall-1.10+2.43/build-aux/config.guess
@@ -985,6 +985,7 @@ EOF
exit ;;
esac
# Determine whether the default compiler is a.out or elf
+ test -e /etc/SuSE-release && VENDOR=suse
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <features.h>
--- a/ffcall-1.10+2.43/callback/trampoline_r/trampoline.c
+++ b/ffcall-1.10+2.43/callback/trampoline_r/trampoline.c
@@ -191,15 +191,11 @@ extern RETGETPAGESIZETYPE getpagesize (v
#ifdef ultrix
#include <mips/cachectl.h>
#else
-#ifdef linux
-#include <asm/cachectl.h>
-#else
#ifdef HAVE_SYS_CACHECTL_H
#include <sys/cachectl.h>
#endif
#endif
#endif
-#endif
#ifdef __m88k__
#include <sys/syslocal.h>
#endif
--- 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
--- a/modules/clx/new-clx/demos/clx-demos.lisp
+++ b/modules/clx/new-clx/demos/clx-demos.lisp
@@ -11,7 +11,7 @@
(defparameter *demos*
;; (demo-name [package requirements])
- '((koch) (qix) (sokoban #:xpm) (greynetic) (petal) (hanoi)
+ '((greynetic) (petal) (hanoi)
(recurrence) (plaid) (clclock) (bball) (bwindow)))
(defmacro do-demos ((fun-var) &body body)
--- a/modules/clx/new-clx/demos/koch.lisp
+++ b/modules/clx/new-clx/demos/koch.lisp
@@ -7,7 +7,30 @@
;;; $Id: koch.lisp,v 1.5 2008/06/25 23:05:28 sds Exp $
;;; $Source: /cvsroot/clisp/clisp/modules/clx/new-clx/demos/koch.lisp,v $
-(in-package :clx-demos)
+(defpackage "KOCH"
+ (:use "COMMON-LISP" "XLIB" "EXT")
+ (:import-from "SYS" "GETENV")
+ (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH
+ (:export "KOCH"))
+
+(in-package :koch)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+ "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+ (if disp
+ (let* ((pos1 (position #\: disp))
+ (pos2 (and pos1 (position #\. disp :start pos1))))
+ (values (subseq disp 0 pos1)
+ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+ (values "" 0 0)))
+
+(defun x-open-display ()
+ "Open the appropriate X display."
+ (multiple-value-bind (host di) (x-host-display)
+ (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun koch-point (cx width/2 height/2 scale)
(list (round (+ width/2 (* scale width/2 (realpart cx))))
@@ -123,4 +146,8 @@ Returns the new list and an indicator of
(xlib:unmap-window win)
(xlib:display-finish-output dpy))))
+(format t "~& Koch snoflake:~%
+ (koch:koch :width :height :delay :x :y :scale :font)
+~% Call (koch:koch)~%~%")
+
(provide "koch")
--- a/modules/clx/new-clx/demos/qix.lisp
+++ b/modules/clx/new-clx/demos/qix.lisp
@@ -14,7 +14,30 @@
;;;; o or a spline option?!
;;;;
-(in-package :clx-demos)
+(defpackage "QIX"
+ (:use "COMMON-LISP" "XLIB" "EXT")
+ (:import-from "SYS" "GETENV")
+ (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH
+ (:export "QIX"))
+
+(in-package :qix)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+ "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+ (if disp
+ (let* ((pos1 (position #\: disp))
+ (pos2 (and pos1 (position #\. disp :start pos1))))
+ (values (subseq disp 0 pos1)
+ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+ (values "" 0 0)))
+
+(defun x-open-display ()
+ "Open the appropriate X display."
+ (multiple-value-bind (host di) (x-host-display)
+ (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar *offset* 3)
(defvar *delta* 6)
@@ -87,4 +110,9 @@
(xlib:unmap-window win)
(xlib:display-finish-output dpy))))
+;; since we have no herald, simply dump it:
+(format t "~& The famous swirling vectors.~%
+ (qix:qix :host :display :dpy :width :height :delay :nqixs :nlines)
+~% Call (qix:qix) or (qix:qix :delay 0)~%~%")
+
(provide "qix")
--- a/modules/clx/new-clx/demos/sokoban.lisp
+++ b/modules/clx/new-clx/demos/sokoban.lisp
@@ -41,7 +41,30 @@
;;;; - maximum field size is hard wired to 20x20. (This is not in the LISP spirit!)
;;;; - sometimes the programm could not count correctly ...
-(in-package :clx-demos)
+(defpackage "SOKOBAN"
+ (:use "COMMON-LISP")
+ (:import-from "SYS" "GETENV")
+ (:import-from "XLIB" "CLOSED-DISPLAY-P")
+ (:export "SOKOBAN"))
+
+(in-package :sokoban)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun x-host-display (&optional (disp (getenv "DISPLAY")))
+ "Parse the DISPLAY environment variable.
+Return 3 values: host, server, screen."
+ (if disp
+ (let* ((pos1 (position #\: disp))
+ (pos2 (and pos1 (position #\. disp :start pos1))))
+ (values (subseq disp 0 pos1)
+ (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0)
+ (if pos2 (parse-integer (subseq disp (1+ pos2))) 0)))
+ (values "" 0 0)))
+
+(defun x-open-display ()
+ "Open the appropriate X display."
+ (multiple-value-bind (host di) (x-host-display)
+ (xlib:open-display host :display di)))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; First a lot of global variables ...
(defvar *pixmaps* nil) ;array of pixmaps according to below indices
@@ -228,7 +251,12 @@
(nny (+ ny dy)))
(when (>= (field nnx nny) %floor)
;;Ok its legal ...
- (when (and (= (field nx ny) %object)
+ ;;Allow moving through
+ (when (and (= (field nx ny) %treasure)
+ (= (field nnx nny) %floor))
+ (incf *n-objects*))
+ ;;Take this point
+ (when (and (= (field nx ny) %object)
(= (field nnx nny) %goal))
(decf *n-objects*))
(incf (field nx ny) 4) ;remove object and add man
@@ -475,4 +503,6 @@ If you quit sokoban using 'q' the curren
(setq *level* 1)
(init-field))) )
+(format t "~&~% Call (sokoban:sokoban)~%~%")
+
(provide "sokoban")
--- a/modules/postgresql/link.sh.in
+++ b/modules/postgresql/link.sh.in
@@ -4,5 +4,5 @@ ${MAKE-make} clisp-module \
NEW_MODULES='postgresql'
NEW_FILES=''
for f in ${NEW_MODULES}; do NEW_FILES=${NEW_FILES}" ${f}.o"; done
-NEW_LIBS="${NEW_FILES} @LIBS@"
+NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl"
TO_LOAD='postgresql sql'
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -6668,7 +6668,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
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir"
done
fi
popdef([P_A_C_K])
--- a/src/build-aux/config.guess
+++ b/src/build-aux/config.guess
@@ -870,29 +870,29 @@ EOF
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ echo ${UNAME_MACHINE}-suse-linux-gnu${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ echo ${UNAME_MACHINE}-suse-linux-gnueabi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo cris-suse-linux-gnu
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo crisv32-suse-linux-gnu
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo frv-suse-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
@@ -903,16 +903,16 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ echo "${UNAME_MACHINE}-suse-linux-${LIBC}"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
@@ -931,51 +931,51 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ test x"${CPU}" != x && { echo "${CPU}-suse-linux-gnu"; exit; }
;;
or32:Linux:*:*)
- echo or32-unknown-linux-gnu
+ echo or32-suse-linux-gnu
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
+ echo sparc-suse-linux-gnu
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ echo hppa64-suse-linux-gnu
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-suse-linux-gnu ;;
+ PA8*) echo hppa2.0-suse-linux-gnu ;;
+ *) echo hppa-suse-linux-gnu ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ echo powerpc64-suse-linux-gnu
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ echo powerpc-suse-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-suse-linux
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo x86_64-suse-linux-gnu
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-suse-linux-gnu
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
--- a/src/lispbibl.d
+++ b/src/lispbibl.d
@@ -121,7 +121,7 @@
#define PC386 /* IBMPC-compatible with 80386/80486-processor */
#endif
#ifdef GENERIC_UNIX
- #if (defined(unix) && (defined(linux) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__)))
+ #if (defined(unix) && ((defined(linux) || defined(__linux__)) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__)))
#define PC386
#endif
#if (defined(sun) && defined(unix) && defined(sparc))
@@ -218,8 +218,14 @@
#endif
#ifdef GENERIC_UNIX
#define UNIX
- #ifdef __linux__
+ #if defined(__linux__) || defined(linux)
#define UNIX_LINUX /* Linux (Linus Torvalds Unix) */
+ #ifndef linux
+ #define linux
+ #endif
+ #ifndef __linux__
+ #define __linux__
+ #endif
#endif
#ifdef __GNU__
#define UNIX_HURD /* the GNU system (Hurd + glibc) */
@@ -1245,7 +1251,7 @@ typedef signed int signean;
address of its component 'ident' and return it as number: */
#include <stddef.h>
#ifndef offsetof
- #define offsetof(type,ident) ((ULONG)&(((type*)0)->ident))
+ #define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
#endif
/* Determine the offset of an array 'ident' in a struct of the type 'type': */
#if defined(__cplusplus) || defined(MICROSOFT)
@@ -3312,9 +3318,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
- #define type_data_object(type,data) ((object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP})
+ #define type_data_object(type,data) (object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP}
#else
- #define type_data_object(type,data) ((object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP})
+ #define type_data_object(type,data) (object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP}
#endif
#elif !(oint_addr_shift==0)
#define type_data_object(type,data) \
--- a/src/makemake.in
+++ b/src/makemake.in
@@ -228,6 +228,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false}
# Handle --with-... arguments
while test -z "$endofargs"; do
case "$1" in
+ -ignore* | --ignore* )
+ shift
+ ;;
-verb* | --verb* )
verbose=`echol "$1"|sed 's/-*v[^=]*=*//'`
test -n "${verbose}" || verbose=true
@@ -1335,6 +1338,10 @@ if [ $XCC_GCC = true ] ; then
XCFLAGS=${XCFLAGS}" -pthread"
fi
+ if [ -n "${MYCFLAGS}" ] ; then
+ XCFLAGS=$XCFLAGS' ${MYCFLAGS} '
+ fi
+
else
if [ $TSYS = sun4 -a $CROSS = false ] ; then
@@ -3593,7 +3600,8 @@ if [ $CROSS = false ] ; then
echotab " mkdir -p \"\$\$absdest/\$\$m\"; \\"
echotab " cd \$\$m; \$(MAKE) clisp-module-distrib LN=\"\$(INSTALL_DATA)\" distribdir=\"\$\$absdest/\$\$m\" ; cd \"\$\$here\"; \\"
echotab " done; fi"
- line='linkkit/* base/*'
+ echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full"
+ line='linkkit/* base/* full/*'
else
echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full"
line='linkkit/* base/* full/*'
--- a/utils/gctrigger.c
+++ b/utils/gctrigger.c
@@ -599,6 +599,7 @@ static inline void VectorToken_delete (V
static Token nexttoken (boolean within_prep_directive)
{
Token token;
+ memset(&token, 0, sizeof(Token));
restart:
{ int c = next_char();
switch (c) {
--- a/utils/modprep.lisp
+++ b/utils/modprep.lisp
@@ -345,7 +345,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))))))
-(defvar *tag-length-limit* 2000
+(defvar *tag-length-limit* 4096
"The approximate maximum length of a C name.
This works around the failure on i18n on Alpha Linux:
/tmp/ccYZBYCX.s: Assembler messages:

856
clisp-arm.patch Normal file
View File

@ -0,0 +1,856 @@
--- src/ariarm.d.orig Fri May 04 01:04:01 2012 -0400
+++ src/ariarm.d Thu May 24 16:48:47 2012 -0600
@@ -86,7 +86,7 @@
#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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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_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 @@
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_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_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 @@
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 @@
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_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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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_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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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_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 @@
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_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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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
END

View File

@ -1,4 +1,5 @@
addFilter(".*devel-file-in-non-devel-package.*/usr/lib.*/clisp-.*/.*")
addFilter(".*make-check-outside-check-section.*make\ check.*")
addFilter(".*executable-stack.*/usr/lib.*/clisp-2.49/.*")
addFilter(".*binary-or-shlib-calls-gethostbyname.*/usr/lib.*/clisp-2.49/.*")
addFilter(".*executable-stack.*/usr/lib.*/clisp-.*")
addFilter(".*binary-or-shlib-calls-gethostbyname.*/usr/lib.*/clisp-.*")
addFilter(".*file-contains-date-and-time.*/usr/lib.*/clisp-.*")

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Tue May 14 11:24:33 UTC 2013 - werner@suse.de
- Reintroduce my old patches
+ clisp-2.49-configure.dif -- Make sure to be able to use MYCLFAGS
+ clisp-2.49-gctoken.dif -- Make sure to use initialized token on
garbage collection
+ clisp-2.49-clx_demos.dif -- Make CLX demos usable at runtime
+ clisp-2.49-postgresql.dif -- Enable postgresql SSL feature
+ re-add clisp-2.49-rpath.dif -- Do not use rpath but rpath-link
- Re-enable test suite
- Use screen to have a terminla around even in build system
-------------------------------------------------------------------
Thu Apr 18 19:46:40 UTC 2013 - leviathanch@opensuse.org
- This (split up) package is one of three changes in order to make
clisp build on armv7l and other platforms. (SR#172680)
-------------------------------------------------------------------
Wed Apr 3 17:35:18 UTC 2013 - dvaleev@suse.com
@ -12,7 +31,6 @@ Wed Nov 28 15:03:30 UTC 2012 - toganm@opensuse.org
* rebase patches to -p1 as stated in the patching guidelines
* update to libsegsev-2.10
-------------------------------------------------------------------
Fri Jul 27 20:10:16 UTC 2012 - aj@suse.de

View File

@ -21,13 +21,17 @@
Name: clisp
BuildRequires: db-devel
BuildRequires: ffcall
BuildRequires: gdbm-devel
BuildRequires: gtk2-devel
BuildRequires: libglade2-devel
BuildRequires: libsigsegv-devel
BuildRequires: openssl-devel
BuildRequires: pcre-devel
BuildRequires: postgresql-devel
BuildRequires: readline-devel
BuildRequires: screen
BuildRequires: vim-data
%if 0%{?suse_version} >= %min_suse_ver
BuildRequires: dbus-1-devel
BuildRequires: fdupes
@ -40,6 +44,10 @@ BuildRequires: xorg-x11-devel
#
%define debug no
Requires(pre): vim
Requires(pre): vim-data
Requires: ffcall
Provides: %{name}-devel
Suggests: %{name}-doc
Version: 2.49
Release: 0
Summary: A Common Lisp Interpreter
@ -47,25 +55,33 @@ License: GPL-2.0+
Group: Development/Languages/Other
Url: http://clisp.cons.org
Source0: http://switch.dl.sourceforge.net/sourceforge/clisp/clisp-2.49.tar.bz2
# Original source at http://www.haible.de/bruno/gnu/ffcall-1.10.tar.gz
# adopted to work with clisp-2.43 and higher
Source1: ffcall-1.10+2.43.tar.bz2
Source2: ftp://ftp.gnu.org/pub/gnu/libsigsegv/libsigsegv-2.10.tar.gz
Source3: clisp-rpmlintrc
Source4: README.SuSE
Patch0: clisp-2.49.dif
Patch1: clisp-2.44.1-map_private.patch
Patch2: clisp-2.44.1-map_variable.patch
Patch3: clisp-2.49-personality.patch
Patch4: clisp-2.44.1-ia64.dif
Patch7: clisp-2.39-ia64-wooh.dif
Patch8: clisp-2.39-clx.dif
Patch10: ffcall-1.10+2.43.dif
Patch11: fix-build-in-qemu.patch
# 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
Patch5: clisp-2.49-gctoken.dif
# PATCH-FEATURE-OPENSUSE Make CLX demos usable at runtime
Patch6: clisp-2.49-clx_demos.dif
# PATCH-EXTEND-OPENSUSE Enable postgresql SSL feature
Patch7: clisp-2.49-postgresql.dif
# PATCH-FIX-OPENSUSE Do not use rpath but rpath-link
Patch8: clisp-2.49-rpath.dif
# PATCH-FIX-OPENSUSE Correct path for header for System V IPC system calls
Patch12: clisp-linux.patch
# PATCH-FIX-OPENSUSE Glibc got rid of unused __swblk_t type therefore update linux.lisp
Patch13: clisp-glibc-fix.patch
#PATCH-FIX-UPSTREAM patch#3474660 changeset 15557 4f5985f83127
Patch14: clisp-hostname.patch
# PATCH-EXTEND-UPSTREAM Make armv7l work
Patch15: clisp-arm.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global vimdir %{_datadir}/vim/site/after/syntax
%global xarch ppc64 s390x armv4l
@ -78,6 +94,15 @@ Lisp - The Language" by Guy L. Steele Jr. This package includes an
interactive programming environment with an interpreter, a compiler,
and a debugger. Start this environment with the command 'clisp'.
%package doc
Summary: Documentation of CLisp
Group: Development/Languages/Other
Requires: %{name}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc
CLISP documentation is placed in the following directories:
/usr/share/doc/packages/clisp/
@ -98,24 +123,21 @@ with the file README. The subdirectory
contains two nice applications.
%prep
%setup -qT -b0 -a1 -a2
%patch1 -p1 -b .mappriv
%patch2 -p1 -b .mapvar
%patch3 -p1 -b .sel
%patch4 -p1 -b .ia64
%patch7 -p1 -b .wooh
%patch8 -p1 -b .clx
%patch10 -p1 -b .ffcall
%patch0 -p1
%if 0%{?qemu_user_space_build:1}
# qemu does not support stack overflows well ;)
%patch11 -p1 -b .qemu
%endif
%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
%patch7 -p1 -b .psql
%patch8 -p1 -b .rpath
%patch12 -p1
%if 0%{?suse_version} > 1220
%patch13 -p1 -b .glibc
%endif
%patch14 -p0
%patch15 -p0
%build
#
@ -142,7 +164,8 @@ else
fi
CC="${CC} -g ${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC -pipe"
case "$RPM_ARCH" in
i[0-9]86) CC="${CC} -falign-functions=4 -mieee-fp -ffloat-store" ;;
i[0-9]86)
CC="${CC} -falign-functions=4 -mieee-fp -ffloat-store" ;;
ppc) CC="${CC}" ;;
s390) CC="${CC}" ;;
x86_64) CC="${CC} -fno-gcse" ;;
@ -174,11 +197,24 @@ unset cfi386 noexec nommap safety
#
# Environment for the case of missing terminal
#
rm -rf /tmp/clispIO
mknod /tmp/clispIO p
cat /tmp/clispIO &
%global _configure screen -L -D -m ./configure
%global _make screen -L -D -m make
SCREENDIR=$(mktemp -d ${PWD}/screen.XXXXXX) || exit 1
SCREENRC=${SCREENDIR}/clisp
export SCREENRC SCREENDIR
exec 0< /dev/null
exec 1> /tmp/clispIO 2>&1
SCREENLOG=${SCREENDIR}/log
cat > $SCREENRC<<-EOF
deflogin off
logfile $SCREENLOG
logfile flush 1
logtstamp off
log on
setsid on
scrollback 0
silence on
utf8 on
EOF
#
# Build the current system
#
@ -189,62 +225,22 @@ else
DEBUG=""
MYCFLAGS="${MYCFLAGS}"
fi
#
# May interfere with configure
#
unset CFLAGS
#
# The libsigsegv
#
SEGV=${PWD}/libsigsegv
pushd libsigsegv-*/
./configure --build ${SYSTEM} ${DEBUG}\
--prefix=%{_prefix} \
--libdir=%{_libdir}
make
make check
make DESTDIR=${SEGV} install
popd
SEGV=${SEGV}/usr
#
# The libffcall
#
%ifnarch %xarch
FFCALL=${PWD}/ffcall
pushd ffcall-*
./configure --build ${SYSTEM} ${DEBUG}\
--prefix=%{_prefix} \
--libdir=%{_libdir}
make -C avcall
make -C callback
make -C avcall check
make -C callback check
make DESTDIR=${FFCALL} install
popd
FFCALL=${FFCALL}/usr
%endif
#
#
#
find -name configure | xargs -r \
sed -ri "/ac_precious_vars='build_alias\$/ {N; s/build_alias\\n//; }"
#
# The modules i18n, syscalls, regexp
# are part of the base clisp system.
#
./configure --build ${SYSTEM} ${DEBUG} \
> $SCREENLOG
tail -q -s 0.5 -f $SCREENLOG & pid=$!
%_configure build ${DEBUG} \
--prefix=%{_prefix} \
--exec-prefix=%{_prefix} \
--libdir=%{_libdir} \
--vimdir=%{vimdir} \
--fsstnd=suse \
--with-readline \
--with-libsigsegv-prefix=${SEGV}\
%ifnarch %xarch
--with-libffcall-prefix=${FFCALL}\
%else
--without-ffcall \
%endif
--with-dynamic-modules \
--with-gettext \
%if 0%{?suse_version} >= %min_suse_ver
@ -257,22 +253,23 @@ find -name configure | xargs -r \
--with-module=rawsock \
--with-module=zlib \
--with-module=wildcard \
--with-module=bindings/glibc \
--with-module=bindings/glibc\
--with-module=clx/new-clx \
--with-module=berkeley-db \
--with-module=postgresql
pushd src/
make
make check
popd
%_make -C build
%_make -C build check
#
# Remove pipe
# Stop tail
#
rm -f /tmp/clispIO
kill $pid
#
# Check for errors
#
test -z "$(ls tests/*.erg 2>/dev/null)"
test -z "$(ls build/tests/*.erg 2>/dev/null)"
%install
#
@ -287,14 +284,13 @@ CLXLIB=${LSPLIB}/full
#
# Install the current system
#
pushd src/
make install prefix=%{_prefix} \
make -C build install prefix=%{_prefix} \
exec_prefix=%{_prefix} \
mandir=%{_mandir} \
libdir=%{_libdir} \
DESTDIR=%{buildroot} \
INSTALL_DATA='install -cm 0444'
popd
#
# The CLX interface
#
@ -321,6 +317,9 @@ rm -f %{buildroot}${CLXDOC}/demos/.\#*
rm -f %{buildroot}${CLXDOC}/demos/*.orig
find %{buildroot}${LSPLIB}/ -name '*.dvi' | xargs -r rm -f
find %{buildroot}${LSPLIB}/ -name '*.run' | xargs -r chmod 0755
rm -rf %{buildroot}${LSPLIB}/new-clx/demos/
find %{buildroot} -type f | xargs -r chmod u+w
chmod a+x %{buildroot}${LSPLIB}/build-aux/{config,depcomp}*
%if 0%{?suse_version} >= %min_suse_ver
%fdupes %{buildroot}${LSPLIB}/
%endif
@ -329,19 +328,16 @@ find %{buildroot}${LSPLIB}/ -name '*.run' | xargs -r chmod 0755
%files -f clisp.lang
%defattr(-,root,root,755)
%doc %{_docdir}/clisp/
%{_bindir}/clisp
%{_bindir}/clisp-link
%{_libdir}/clisp-%{version}/
%{_datadir}/aclocal/clisp.m4
%{_datadir}/emacs/site-lisp/clhs.el
%{_datadir}/emacs/site-lisp/clisp-coding.el
%{_datadir}/emacs/site-lisp/clisp-ffi.el
%{_datadir}/emacs/site-lisp/clisp-indent.el
%{_datadir}/emacs/site-lisp/clisp-indent.lisp
# Do not touch this but wait on check in of new vim!!!
%{_datadir}/emacs/site-lisp/
%doc %{_datadir}/man/man1/clisp*.1.gz
%{vimdir}/lisp.vim
%doc %{_mandir}/man1/clisp.1.gz
%doc %{_mandir}/man1/clisp-link.1.gz
%files doc
%defattr(-,root,root,755)
%{_docdir}/clisp/
%changelog

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:49824e0e18975e754a0ef833ff25619b9b22502002af54bad22980d2846eda2d
size 878623

View File

@ -1,26 +0,0 @@
---
libsigsegv-2.10/tests/Makefile.am | 2 +-
libsigsegv-2.10/tests/Makefile.in | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
--- a/libsigsegv-2.10/tests/Makefile.am
+++ b/libsigsegv-2.10/tests/Makefile.am
@@ -20,7 +20,7 @@
AUTOMAKE_OPTIONS = 1.11 gnits no-dependencies color-tests
-TESTS = sigsegv1 sigsegv2 sigsegv3 stackoverflow1 stackoverflow2
+TESTS = sigsegv1 sigsegv2 sigsegv3
EXTRA_DIST = mmaputil.h altstack.h
--- a/libsigsegv-2.10/tests/Makefile.in
+++ b/libsigsegv-2.10/tests/Makefile.in
@@ -35,7 +35,6 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
TESTS = sigsegv1$(EXEEXT) sigsegv2$(EXEEXT) sigsegv3$(EXEEXT) \
- stackoverflow1$(EXEEXT) stackoverflow2$(EXEEXT) \
$(am__EXEEXT_1) $(am__EXEEXT_2)
noinst_PROGRAMS = sigsegv1$(EXEEXT) sigsegv2$(EXEEXT) \
sigsegv3$(EXEEXT) stackoverflow1$(EXEEXT) \

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8460a4a3dd4954c3d96d7a4f5dd5bc4d9b76f5754196aa245287553b26d2199a
size 402279