clisp/clisp-2.49.dif
OBS User mrdocs d5a36a868b Accepting request 143477 from home:toganm:branches:devel:languages:misc
- Fix build with glibc 2.17 (clisp-glibc-fix.patch)
  * rebase patches to -p1 as stated in the patching guidelines
  * update to libsegsev-2.10

OBS-URL: https://build.opensuse.org/request/show/143477
OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/clisp?expand=0&rev=36
2012-11-28 21:22:46 +00:00

488 lines
17 KiB
Plaintext

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