diff --git a/clisp-2.43.tar.bz2 b/clisp-2.43.tar.bz2 deleted file mode 100644 index a933b02..0000000 --- a/clisp-2.43.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5213ccc59d65c190f47c0e4f04d568a1a66bcb28ae5ed59705e59c6b8b11e83 -size 8143871 diff --git a/clisp-2.39-ia64.dif b/clisp-2.44.1-ia64.dif similarity index 98% rename from clisp-2.39-ia64.dif rename to clisp-2.44.1-ia64.dif index 79c4821..32f58d8 100644 --- a/clisp-2.39-ia64.dif +++ b/clisp-2.44.1-ia64.dif @@ -1,5 +1,5 @@ ---- ffcall/avcall/avcall-ia64.s -+++ ffcall/avcall/avcall-ia64.s 2006-07-21 16:24:20.000000000 +0200 +--- ffcall-1.10+2.43/avcall/avcall-ia64.s ++++ ffcall-1.10+2.43/avcall/avcall-ia64.s 2006-07-21 16:24:20.000000000 +0200 @@ -1,739 +1,822 @@ .file "avcall-ia64.c" - .version "01.01" @@ -1317,8 +1317,8 @@ .endp __builtin_avcall# - .ident "GCC: (GNU) 2.9-ia64-000216 snap-000324" + .ident "GCC: (GNU) 4.1.0 (SUSE Linux)" ---- ffcall/avcall/avcall.h.in -+++ ffcall/avcall/avcall.h.in 2006-07-19 17:19:49.000000000 +0200 +--- ffcall-1.10+2.43/avcall/avcall.h.in ++++ ffcall-1.10+2.43/avcall/avcall.h.in 2006-07-19 17:19:49.000000000 +0200 @@ -1112,7 +1112,7 @@ typedef struct * different alignment. */ @@ -1337,8 +1337,8 @@ /* Types larger than a word have 2-word alignment. */ #define __av_struct(LIST,TYPE,TYPE_SIZE,TYPE_ALIGN,ASSIGN,VAL) \ ((LIST).aptr = (__avword*)(((__avword)(LIST).aptr+(TYPE_SIZE)+__av_struct_alignment(TYPE_ALIGN)-1) & -(long)__av_struct_alignment(TYPE_ALIGN)), \ ---- ffcall/callback/vacall_r/vacall_r.h.in -+++ ffcall/callback/vacall_r/vacall_r.h.in 2006-07-19 17:23:49.000000000 +0200 +--- ffcall-1.10+2.43/callback/vacall_r/vacall_r.h.in ++++ ffcall-1.10+2.43/callback/vacall_r/vacall_r.h.in 2006-07-19 17:23:49.000000000 +0200 @@ -1059,7 +1059,7 @@ typedef __va_alist* va_alist; #endif #define __va_align_struct(LIST,TYPE_SIZE,TYPE_ALIGN) \ diff --git a/clisp-2.31-map_private.patch b/clisp-2.44.1-map_private.patch similarity index 76% rename from clisp-2.31-map_private.patch rename to clisp-2.44.1-map_private.patch index 5323feb..b12a6af 100644 --- a/clisp-2.31-map_private.patch +++ b/clisp-2.44.1-map_private.patch @@ -1,5 +1,5 @@ ---- ffcall/callback/trampoline_r/trampoline.c -+++ ffcall/callback/trampoline_r/trampoline.c 2003-12-10 23:14:50.000000000 -0800 +--- ffcall-1.10+2.43/callback/trampoline_r/trampoline.c ++++ ffcall-1.10+2.43/callback/trampoline_r/trampoline.c 2003-12-10 23:14:50.000000000 -0800 @@ -452,7 +452,7 @@ { /* Get a new page. */ char* page; diff --git a/clisp-2.31-map_variable.patch b/clisp-2.44.1-map_variable.patch similarity index 57% rename from clisp-2.31-map_variable.patch rename to clisp-2.44.1-map_variable.patch index 8c5ae57..0814cba 100644 --- a/clisp-2.31-map_variable.patch +++ b/clisp-2.44.1-map_variable.patch @@ -1,5 +1,5 @@ ---- ffcall/callback/trampoline_r/trampoline_r.h.in -+++ ffcall/callback/trampoline_r/trampoline_r.h.in 2003-12-10 22:04:30.000000000 -0800 +--- ffcall-1.10+2.43/callback/trampoline_r/trampoline_r.h.in ++++ ffcall-1.10+2.43/callback/trampoline_r/trampoline_r.h.in 2003-12-10 22:04:30.000000000 -0800 @@ -31,4 +31,9 @@ extern void* trampoline_r_data1 (); #endif diff --git a/clisp-2.43.dif b/clisp-2.44.1.dif similarity index 78% rename from clisp-2.43.dif rename to clisp-2.44.1.dif index 4aeee2e..cb1eab6 100644 --- a/clisp-2.43.dif +++ b/clisp-2.44.1.dif @@ -1,5 +1,5 @@ --- .pkgextract -+++ .pkgextract 2006-05-22 18:06:36.000000000 +0200 ++++ .pkgextract 2008-02-25 14:00:17.898813972 +0100 @@ -0,0 +1,9 @@ +patch -p0 -s --suffix=.mappriv < ../clisp-2.31-map_private.patch +patch -p0 -s --suffix=.mapvar < ../clisp-2.31-map_variable.patch @@ -10,8 +10,24 @@ +patch -p0 -s --suffix=.clx < ../clisp-2.39-clx.dif +patch -p0 -s --suffix=.bdb < ../clisp-2.39-berkeley-db.dif +patch -p1 -s --suffix=.ffcall < ../ffcall_1.10+2.41-3.diff ---- ffcall/build-aux/config.guess -+++ ffcall/build-aux/config.guess 2006-05-22 18:06:36.000000000 +0200 +--- configure ++++ configure 2008-02-25 14:01:29.307946002 +0100 +@@ -391,11 +391,11 @@ do + passnextm=yes ;; + + --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=yes +--- ffcall-1.10+2.43/build-aux/config.guess ++++ ffcall-1.10+2.43/build-aux/config.guess 2008-02-25 14:00:17.902814484 +0100 @@ -985,6 +985,7 @@ EOF exit ;; esac @@ -20,8 +36,8 @@ eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include ---- ffcall/callback/trampoline_r/trampoline.c -+++ ffcall/callback/trampoline_r/trampoline.c 2006-05-22 18:06:36.000000000 +0200 +--- ffcall-1.10+2.43/callback/trampoline_r/trampoline.c ++++ ffcall-1.10+2.43/callback/trampoline_r/trampoline.c 2008-02-25 14:00:17.938819088 +0100 @@ -191,15 +191,11 @@ extern RETGETPAGESIZETYPE getpagesize (v #ifdef ultrix #include @@ -39,7 +55,7 @@ #include #endif --- modules/clx/new-clx/README.SuSE -+++ modules/clx/new-clx/README.SuSE 2006-05-22 18:06:36.000000000 +0200 ++++ modules/clx/new-clx/README.SuSE 2008-02-25 14:00:17.978824204 +0100 @@ -1,35 +1,34 @@ - # @@ -88,7 +104,7 @@ + clisp -K full -q -i qix --- modules/clx/new-clx/clx.lisp -+++ modules/clx/new-clx/clx.lisp 2006-05-22 18:06:36.000000000 +0200 ++++ modules/clx/new-clx/clx.lisp 2008-02-25 14:00:18.006827785 +0100 @@ -22,6 +22,7 @@ ;;;; -------------------------------------------------------------------------- ;;;; Exports @@ -98,7 +114,7 @@ '(*version* access-control access-error access-hosts activate-screen-saver add-access-host add-resource add-to-save-set alist alloc-color --- modules/clx/new-clx/demos/clx-demos.lisp -+++ modules/clx/new-clx/demos/clx-demos.lisp 2007-12-17 15:28:27.914179351 +0100 ++++ modules/clx/new-clx/demos/clx-demos.lisp 2008-02-25 14:00:18.050833413 +0100 @@ -11,7 +11,7 @@ (defparameter *demos* @@ -109,7 +125,7 @@ (defmacro do-demos ((fun-var) &body body) --- modules/clx/new-clx/demos/koch.lisp -+++ modules/clx/new-clx/demos/koch.lisp 2007-12-17 15:30:15.215811911 +0100 ++++ modules/clx/new-clx/demos/koch.lisp 2008-02-25 14:00:18.078836994 +0100 @@ -7,7 +7,30 @@ ;;; $Id: koch.lisp,v 1.4 2007/10/08 00:43:32 sds Exp $ ;;; $Source: /cvsroot/clisp/clisp/modules/clx/new-clx/demos/koch.lisp,v $ @@ -152,7 +168,7 @@ + (provide "koch") --- modules/clx/new-clx/demos/qix.lisp -+++ modules/clx/new-clx/demos/qix.lisp 2007-12-17 15:29:47.712318245 +0100 ++++ modules/clx/new-clx/demos/qix.lisp 2008-02-25 14:00:18.114841598 +0100 @@ -14,7 +14,30 @@ ;;;; o or a spline option?! ;;;; @@ -196,7 +212,7 @@ + (provide "qix") --- modules/clx/new-clx/demos/sokoban.lisp -+++ modules/clx/new-clx/demos/sokoban.lisp 2007-12-17 15:30:21.648628989 +0100 ++++ modules/clx/new-clx/demos/sokoban.lisp 2008-02-25 14:00:18.146845691 +0100 @@ -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 ... @@ -251,8 +267,8 @@ + (provide "sokoban") --- modules/postgresql/configure -+++ modules/postgresql/configure 2007-12-14 17:11:57.972092000 +0100 -@@ -4552,7 +4552,7 @@ done ++++ modules/postgresql/configure 2008-02-25 14:00:18.182850296 +0100 +@@ -4557,7 +4557,7 @@ done if test "$ac_cv_header_postgres_ext_h" = "no" \ -a "$ac_cv_header_postgresql_postgres_ext_h" = "no" \ @@ -262,8 +278,8 @@ echo "$as_me: error: cannot find PostgreSQL headers" >&2;} { (exit 1); exit 1; }; } --- modules/postgresql/configure.in -+++ modules/postgresql/configure.in 2007-12-14 17:11:40.257845000 +0100 -@@ -19,7 +19,7 @@ BOLD_MSG([PostgreSQL (Headers)]) ++++ modules/postgresql/configure.in 2008-02-25 14:00:18.218854900 +0100 +@@ -22,7 +22,7 @@ BOLD_MSG([PostgreSQL (Headers)]) AC_CHECK_HEADERS(postgres_ext.h postgresql/postgres_ext.h pgsql/postgres_ext.h) if test "$ac_cv_header_postgres_ext_h" = "no" \ -a "$ac_cv_header_postgresql_postgres_ext_h" = "no" \ @@ -273,7 +289,7 @@ fi --- modules/postgresql/link.sh.in -+++ modules/postgresql/link.sh.in 2006-05-22 18:06:36.000000000 +0200 ++++ modules/postgresql/link.sh.in 2008-02-25 14:00:18.258860016 +0100 @@ -4,5 +4,5 @@ make clisp-module \ INCLUDES="$absolute_linkkitdir" NEW_FILES='' @@ -282,8 +298,8 @@ +NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl" TO_LOAD='postgresql sql' --- src/aclocal.m4 -+++ src/aclocal.m4 2007-12-14 16:58:01.413975000 +0100 -@@ -9872,7 +9872,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], ++++ src/aclocal.m4 2008-02-25 14:00:18.270861551 +0100 +@@ -9877,7 +9877,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_SEARCH],[dnl 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 @@ -293,27 +309,43 @@ fi ]) --- src/lispbibl.d -+++ src/lispbibl.d 2006-05-22 18:06:36.000000000 +0200 -@@ -223,7 +223,7 @@ ++++ src/lispbibl.d 2008-02-25 14:00:18.302865644 +0100 +@@ -121,7 +121,7 @@ + #if (defined(sun) && defined(unix) && defined(sun386)) + #define SUN386 + #endif +- #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(mc68020)) +@@ -222,8 +222,14 @@ #endif #ifdef GENERIC_UNIX #define UNIX - #ifdef __linux__ + #if defined(__linux__) || defined(linux) - #define UNIX_LINUX # Linux (Linus Torvalds Unix) + #define UNIX_LINUX /* Linux (Linus Torvalds Unix) */ ++ #ifndef linux ++ #define linux ++ #endif ++ #ifndef __linux__ ++ #define __linux__ ++ #endif #endif #ifdef __GNU__ -@@ -1255,7 +1255,7 @@ typedef signed int signean; + #define UNIX_HURD /* the GNU system (Hurd + glibc) */ +@@ -1245,7 +1251,7 @@ typedef signed int signean; #include #else #undef 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': + /* Determine the offset of an array 'ident' in a struct of the type 'type': */ #if defined(__cplusplus) || defined(MICROSOFT) -@@ -3318,9 +3318,9 @@ typedef signed_int_with_n_bits(intVsize) - # type_data_object(type,data) +@@ -3316,9 +3322,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}) @@ -325,7 +357,7 @@ #elif !(oint_addr_shift==0) #define type_data_object(type,data) \ --- src/makemake.in -+++ src/makemake.in 2007-12-17 13:52:35.689747081 +0100 ++++ src/makemake.in 2008-02-25 14:00:18.306866155 +0100 @@ -226,6 +226,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} # Handle --with-... arguments while test -z "$endofargs"; do @@ -336,7 +368,7 @@ -verb* | --verb* ) verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` test -n "${verbose}" || verbose=true -@@ -822,8 +825,8 @@ fi +@@ -825,8 +828,8 @@ fi # and the implied value from fsstnd overrides the default. if [ -z "$docdir" ] ; then if [ $HOS = unix ] ; then @@ -347,7 +379,7 @@ docdir= else PACKAGE=clisp ; eval docdir=\"$docdir\" -@@ -1210,6 +1213,10 @@ if [ $XCC_GCC = true ] ; then +@@ -1213,6 +1216,10 @@ if [ $XCC_GCC = true ] ; then XCFLAGS=${XCFLAGS}" -pthread" fi @@ -359,7 +391,7 @@ if [ $TSYS = sun4 -a $CROSS = false ] ; then --- src/build-aux/config.guess -+++ src/build-aux/config.guess 2006-05-22 18:06:36.000000000 +0200 ++++ src/build-aux/config.guess 2008-02-25 14:00:18.342870760 +0100 @@ -985,6 +985,7 @@ EOF exit ;; esac @@ -368,18 +400,18 @@ eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include ---- utils/gctrigger.d -+++ utils/gctrigger.d 2006-05-22 18:06:36.000000000 +0200 -@@ -602,6 +602,7 @@ local inline void VectorToken_delete (Ve - local Token nexttoken (boolean within_prep_directive) +--- utils/gctrigger.c ++++ utils/gctrigger.c 2008-02-25 14:00:18.374874853 +0100 +@@ -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: - { var int c = next_char(); + { int c = next_char(); switch (c) { --- utils/modprep.lisp -+++ utils/modprep.lisp 2007-12-14 17:18:49.740318000 +0100 ++++ utils/modprep.lisp 2008-02-25 14:00:18.418880480 +0100 @@ -313,7 +313,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) (t (format out "_~2,'0x" (char-code cc)))))) diff --git a/clisp-2.44.1.tar.bz2 b/clisp-2.44.1.tar.bz2 new file mode 100644 index 0000000..4c70abf --- /dev/null +++ b/clisp-2.44.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b5bab580ec467771048210faf5482d71aa5b2d50e7b014d521b9ea98ec30f95 +size 7285170 diff --git a/clisp-rpmlintrc b/clisp-rpmlintrc new file mode 100644 index 0000000..28af753 --- /dev/null +++ b/clisp-rpmlintrc @@ -0,0 +1,3 @@ +addFilter(".*devel-file-in-non-devel-package.*/usr/lib/clisp-.*/.*") +addFilter(".*files-duplicate.*/usr/lib/clisp-.*/.*") +addFilter(".*make-check-outside-check-section.*make\ check.*") diff --git a/clisp.changes b/clisp.changes index beaa544..e2298fc 100644 --- a/clisp.changes +++ b/clisp.changes @@ -1,3 +1,60 @@ +------------------------------------------------------------------- +Tue Feb 26 13:45:14 CET 2008 - werner@suse.de + +- Update 2.44.1 + + * Portability: + + Add a workaround against a gcc 4.2.x bug. + + Make it work with gcc 4.3 snapshots. + + * CLISP does not come with GNU libffcall anymore. + This is now a separate package and should be installed separately. + Pass --with-libffcall-prefix to the top-level configure if it is not + installed in a standard place. + Option --with-dynamic-ffi is now replaced with --with-ffcall. + + * CLOS now issues warnings of type CLOS:CLOS-WARNING. + See + for details. + + * The AFFI (simple ffi, originally for Amiga) code has been removed. + + * Speed up list and sequence functions when :TEST is EQ, EQL, EQUAL or EQUALP. + + * Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to + EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY, + respectively, for consistency with EXT:PROBE-DIRECTORY, + EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY. + The old names are still available, but deprecated. + + * The :VERBOSE argument to SAVEINITMEM defaults to a new user variable + *SAVEINITMEM-VERBOSE*, intial value T. + See for details. + + * Bug fixes: + + Fix FRESH-LINE at the end of a line containing only TABs. [ 1834193 ] + + PPRINT-LOGICAL-BLOCK no longer ignores *PRINT-PPRINT-DISPATCH-TABLE*. + [ 1835520 ] + + BYTE is now a full-fledged type. [ 1854698 ] + + Fix linux:dirent definition in the bindings/glibc module. [ 1779490 ] + + Symbolic links into non-existent directories can now be deleted. [ 1860489 ] + + DIRECTORY :FULL on directories now returns the same information as + on files. [ 1860677 ] + + CLISP no longer hangs at the end of a script coming via a pipe + ("clisp < script.lisp" or "cat script | clisp"). [ 1865567 ] + + When *CURRENT-LANGUAGE* is incompatible with *TERMINAL-ENCODING*, + CLISP no longer goes into an infinite recursion trying to print + various help messages. [ 1865636 ] + + Fix the "Quit" debugger command. [ 1448744 ] + + Repeated terminating signals kill CLISP instantly with the correct + exit code. [ 1871205 ] + + Stack inspection is now safer. [ 1506316 ] + + Errors in the RC-file and init files are now handled properly. [ 1714737 ] + + Avoid the growth of the restart set with each image save. [ 1877497 ] + + Handle foreign functions coming from the old image which cannot be + validated. [ 1407486 ] + + Fix signal code in bindings/glibc/linux.lisp. [ 1781476 ] + ------------------------------------------------------------------- Thu Jan 24 15:28:13 CET 2008 - werner@suse.de diff --git a/clisp.spec b/clisp.spec index 11fa4da..19aea88 100644 --- a/clisp.spec +++ b/clisp.spec @@ -1,5 +1,5 @@ # -# spec file for package clisp (Version 2.43) +# spec file for package clisp (Version 2.44.1) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -10,10 +10,10 @@ # norootforbuild + Name: clisp # BuildRequires: db43-devel gcc-c++ libstdc++-devel openssl-devel pcre-devel postgresql-devel readline-devel texlive-latex xorg-x11-devel BuildRequires: db43-devel openssl-devel pcre-devel postgresql-devel readline-devel xorg-x11-devel -ExcludeArch: ppc64 s390x armv4l # # If set to yes do not forget to add # gcc-c++ @@ -24,23 +24,28 @@ License: GPL v2 or later Group: Development/Languages/Other PreReq: vim AutoReqProv: on -Version: 2.43 -Release: 10 +Version: 2.44.1 +Release: 1 Summary: A Common Lisp Interpreter Url: http://clisp.cons.org -Source: ftp://ftp.gnu.org/pub/gnu/clisp/latest/clisp-%{version}.tar.bz2 -Patch: clisp-%{version}.dif -Patch1: clisp-2.31-map_private.patch -Patch2: clisp-2.31-map_variable.patch +Source0: ftp://ftp.gnu.org/pub/gnu/clisp/latest/clisp-%{version}.tar.bz2 +Source1: ftp://ftp.santafe.edu/pub/gnu/ffcall-1.10+2.43.tar.bz2 +Source2: ftp://ftp.gnu.org/pub/gnu/libsigsegv/libsigsegv-2.5.tar.bz2 +Source3: clisp-rpmlintrc +Patch0: clisp-2.44.1.dif +Patch1: clisp-2.44.1-map_private.patch +Patch2: clisp-2.44.1-map_variable.patch Patch3: clisp-2.31-personality.patch -Patch4: clisp-2.39-ia64.dif +Patch4: clisp-2.44.1-ia64.dif Patch5: clisp-2.36-alloca.patch Patch7: clisp-2.39-ia64-wooh.dif Patch8: clisp-2.39-clx.dif Patch9: clisp-2.39-berkeley-db.dif -Patch10: ffcall_1.10+2.41-3.diff +Patch10: ffcall-1.10+2.43.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global vimdir %{_datadir}/vim/site/after/syntax +%global xarch ppc64 s390x armv4l +ExcludeArch: ppc64 s390x armv4l %description Common Lisp is a high-level, all-purpose programming language. CLISP is @@ -78,7 +83,7 @@ Authors: Gilbert Baumann %prep -%setup -q +%setup -qT -b0 -a1 -a2 %patch1 -p0 -b .mappriv %patch2 -p0 -b .mapvar %patch3 -p0 -b .sel @@ -87,7 +92,7 @@ Authors: %patch7 -p0 -b .wooh %patch8 -p0 -b .clx %patch9 -p0 -b .bdb -%patch10 -p1 -b .ffcall +%patch10 -p0 -b .ffcall %patch %build @@ -172,6 +177,36 @@ fi # 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 +# # The modules i18n, syscalls, regexp # are part of the base clisp system. # @@ -181,9 +216,13 @@ unset CFLAGS --libdir=%{_libdir} \ --vimdir=%{vimdir} \ --fsstnd=suse \ - --ignore-absence-of-libsigsegv \ --with-readline \ - --with-dynamic-ffi \ + --with-libsigsegv-prefix=${SEGV}\ +%ifnarch %xarch + --with-libffcall-prefix=${FFCALL}\ +%else + --without-ffcall \ +%endif --with-dynamic-modules \ --with-gettext \ --with-module=queens \ @@ -238,7 +277,9 @@ popd pushd ${SYSTEM}/clx/ tar xfz clx-manual.tar.gz -C %{buildroot}${CLXDOC} popd -chmod -R g+r,o+r %{buildroot}${LSPDOC}/ +chmod -R g+r,o+r %{buildroot}${LSPDOC}/ +chmod u+xrw,a+rx %{buildroot}${LSPLIB}/clisp-link +chmod a-x %{buildroot}${CLXDOC}/clx-manual/html/doc-index.cgi find %{buildroot}${LSPDOC} -type d | xargs chmod 755 rm -f %{buildroot}${CLXDOC}/*,v rm -f %{buildroot}${CLXDOC}/.\#* @@ -265,6 +306,52 @@ find %{buildroot}${LSPLIB}/ -name '*.run' | xargs -r chmod 0755 %doc %{_mandir}/man1/clisp.1.gz %changelog +* Tue Feb 26 2008 werner@suse.de +- Update 2.44.1 + * Portability: + + Add a workaround against a gcc 4.2.x bug. + + Make it work with gcc 4.3 snapshots. + * CLISP does not come with GNU libffcall anymore. + This is now a separate package and should be installed separately. + Pass --with-libffcall-prefix to the top-level configure if it is not + installed in a standard place. + Option --with-dynamic-ffi is now replaced with --with-ffcall. + * CLOS now issues warnings of type CLOS:CLOS-WARNING. + See + for details. + * The AFFI (simple ffi, originally for Amiga) code has been removed. + * Speed up list and sequence functions when :TEST is EQ, EQL, EQUAL or EQUALP. + * Rename EXT:DELETE-DIR, EXT:MAKE-DIR, and EXT:RENAME-DIR to + EXT:DELETE-DIRECTORY, EXT:MAKE-DIRECTORY, and EXT:RENAME-DIRECTORY, + respectively, for consistency with EXT:PROBE-DIRECTORY, + EXT:DEFAULT-DIRECTORY and CL:PATHNAME-DIRECTORY. + The old names are still available, but deprecated. + * The :VERBOSE argument to SAVEINITMEM defaults to a new user variable + *SAVEINITMEM-VERBOSE*, intial value T. + See for details. + * Bug fixes: + + Fix FRESH-LINE at the end of a line containing only TABs. [ 1834193 ] + + PPRINT-LOGICAL-BLOCK no longer ignores *PRINT-PPRINT-DISPATCH-TABLE*. + [ 1835520 ] + + BYTE is now a full-fledged type. [ 1854698 ] + + Fix linux:dirent definition in the bindings/glibc module. [ 1779490 ] + + Symbolic links into non-existent directories can now be deleted. [ 1860489 ] + + DIRECTORY :FULL on directories now returns the same information as + on files. [ 1860677 ] + + CLISP no longer hangs at the end of a script coming via a pipe + ("clisp < script.lisp" or "cat script | clisp"). [ 1865567 ] + + When *CURRENT-LANGUAGE* is incompatible with *TERMINAL-ENCODING*, + CLISP no longer goes into an infinite recursion trying to print + various help messages. [ 1865636 ] + + Fix the "Quit" debugger command. [ 1448744 ] + + Repeated terminating signals kill CLISP instantly with the correct + exit code. [ 1871205 ] + + Stack inspection is now safer. [ 1506316 ] + + Errors in the RC-file and init files are now handled properly. [ 1714737 ] + + Avoid the growth of the restart set with each image save. [ 1877497 ] + + Handle foreign functions coming from the old image which cannot be + validated. [ 1407486 ] + + Fix signal code in bindings/glibc/linux.lisp. [ 1781476 ] * Thu Jan 24 2008 werner@suse.de - Correct vim site path to current used one * Sun Jan 13 2008 coolo@suse.de diff --git a/ffcall_1.10+2.41-3.diff b/ffcall-1.10+2.43.dif similarity index 64% rename from ffcall_1.10+2.41-3.diff rename to ffcall-1.10+2.43.dif index b7f975f..02bc9a4 100644 --- a/ffcall_1.10+2.41-3.diff +++ b/ffcall-1.10+2.43.dif @@ -1,111 +1,62 @@ ---- ffcall-1.10+2.41.orig/ffcall/avcall/avcall.h.in -+++ ffcall-1.10+2.41/ffcall/avcall/avcall.h.in -@@ -286,9 +286,11 @@ - #if defined(__i386__) || defined(__m68k__) || defined(__mipsn32__) || defined(__mips64__) || defined(__sparc64__) || defined(__alpha__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) || defined(__convex__) || defined(__ia64__) || defined(__x86_64__) || defined(__s390__) - __AV_REGISTER_STRUCT_RETURN = 1<<9, - #endif --#if defined(__mips__) && !defined(__mipsn32__) -+#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) - __AV_FLOAT_1 = 1<<10, - __AV_FLOAT_2 = 1<<11, -+ __AV_DOUBLE_1 = 1<<12, -+ __AV_DOUBLE_2 = 1<<13, - #endif +--- ffcall-1.10+2.43/avcall/Makefile.in ++++ ffcall-1.10+2.43/avcall/Makefile.in 2008-02-25 14:49:20.095314920 +0100 +@@ -155,34 +155,34 @@ libavcall.la : $(OBJECTS) + # Installs the library and include files only. Typically called with only + # $(libdir) and $(includedir) - don't use $(prefix) and $(exec_prefix) here. + install-lib : all force +- if [ ! -d $(libdir) ] ; then mkdir $(libdir) ; fi +- $(LIBTOOL_INSTALL) $(INSTALL_DATA) libavcall.la $(libdir)/libavcall.la +- if [ ! -d $(includedir) ] ; then mkdir $(includedir) ; fi +- $(INSTALL_DATA) avcall.h $(includedir)/avcall.h ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ $(LIBTOOL_INSTALL) $(INSTALL_DATA) libavcall.la $(DESTDIR)$(libdir)/libavcall.la ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ $(INSTALL_DATA) avcall.h $(DESTDIR)$(includedir)/avcall.h - __AV_flag_for_broken_compilers_that_dont_like_trailing_commas -@@ -330,10 +332,11 @@ - __avword* iaptr; - __avword iargs[6]; - #endif --#if defined(__mips__) && !defined(__mipsn32__) -+#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) - /* store the floating-point arguments in an extra array */ - int anum; -- double floatarg[2]; -+ float floatarg[2]; -+ double doublearg[2]; - #endif - #if defined(__mipsn32__) || defined(__mips64__) - /* store the floating-point arguments in an extra array */ -@@ -410,7 +413,7 @@ - #define __av_start1(LIST) \ - (LIST).aptr = &(LIST).args[0], - #endif --#if defined(__mips__) && !defined(__mipsn32__) -+#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) - #define __av_start1(LIST) \ - (LIST).anum = 0, \ - (LIST).aptr = &(LIST).args[0], -@@ -569,7 +572,7 @@ - #define __av_start_struct3(LIST) \ - 0 - #endif --#if defined(__mips__) && !defined(__mipsn32__) -+#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) - #define __av_reg_struct_return(LIST,TYPE_SIZE,TYPE_SPLITTABLE) \ - ((TYPE_SIZE) == 1 || (TYPE_SIZE) == 2 || (TYPE_SIZE) == 4) - /* Test __AV_SMALL_STRUCT_RETURN instead of __AV_REGISTER_STRUCT_RETURN. */ -@@ -737,7 +740,7 @@ - /* `long long' fits in __avword. */ - #define av_longlong __av_word - #define av_ulonglong(LIST,VAL) __av_word(LIST,(unsigned long long)(VAL)) --#elif defined(__i386__) || defined(__m68k__) || defined(__mips__) || (defined(__sparc__) && !defined(__sparc64__)) || defined(__hppa__) || defined(__arm__) || defined(__powerpc__) || defined(__m88k__) || defined(__convex__) || defined(__s390__) -+#elif defined(__i386__) || defined(__m68k__) || (defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__)) || (defined(__sparc__) && !defined(__sparc64__)) || defined(__hppa__) || defined(__arm__) || defined(__powerpc__) || defined(__m88k__) || defined(__convex__) || defined(__s390__) - /* `long long's are passed embedded on the arg stack. */ - #define av_longlong(LIST,VAL) __av_longlong(LIST,long long,VAL) - #define av_ulonglong(LIST,VAL) __av_longlong(LIST,unsigned long long,VAL) -@@ -804,7 +807,7 @@ + install : all force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi + $(LIBTOOL_INSTALL) $(INSTALL_DATA) libavcall.la $(DESTDIR)$(libdir)/libavcall.la +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi + $(INSTALL_DATA) avcall.h $(DESTDIR)$(includedir)/avcall.h +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi + $(INSTALL_DATA) $(srcdir)/avcall.3 $(DESTDIR)$(mandir)/man3/avcall.3 +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + $(INSTALL_DATA) $(srcdir)/avcall.html $(DESTDIR)$(htmldir)/avcall.html - #endif + installdirs : force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi --#if defined(__mips__) && !defined(__mipsn32__) -+#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) - - /* Up to 2 leading float or double non-varargs args can be passed in - * float registers, but we also push them into the corresponding int -@@ -815,22 +818,22 @@ - (++(LIST).aptr > __av_eptr(LIST) \ - ? -1 : ((++(LIST).anum == 1 \ - ? ((LIST).flags |= __AV_FLOAT_1, \ -- ((float*)(LIST).floatarg)[1] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ -- : (LIST).anum == 2 && ((LIST).flags & __AV_FLOAT_1) \ -+ (LIST).floatarg[0] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ -+ : (LIST).anum == 2 && (((LIST).flags & __AV_FLOAT_1) || ((LIST).flags & __AV_DOUBLE_1))\ - ? ((LIST).flags |= __AV_FLOAT_2, \ -- ((float*)(LIST).floatarg)[3] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ -- : (*(float*)&(LIST).aptr[-1] = (float)(VAL))), \ -+ (LIST).floatarg[1] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ -+ : (((float*)(LIST).aptr)[-1] = (float)(VAL))), \ - 0)) - - #define av_double(LIST,VAL) \ - (((LIST).aptr = (__avword*)(((__avword)(LIST).aptr+15)&-8)) \ - > __av_eptr(LIST) \ - ? -1 : ((++(LIST).anum == 1 \ -- ? ((LIST).flags |= __AV_FLOAT_1, \ -- (LIST).floatarg[0] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ -- : (LIST).anum == 2 && ((LIST).flags & __AV_FLOAT_1) \ -- ? ((LIST).flags |= __AV_FLOAT_2, \ -- (LIST).floatarg[1] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ -+ ? ((LIST).flags |= __AV_DOUBLE_1, \ -+ (LIST).doublearg[0] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ -+ : (LIST).anum == 2 && (((LIST).flags & __AV_FLOAT_1) || ((LIST).flags & __AV_DOUBLE_1))\ -+ ? ((LIST).flags |= __AV_DOUBLE_2, \ -+ (LIST).doublearg[1] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ - : (((double*)(LIST).aptr)[-1] = (double)(VAL))), \ - 0)) - -@@ -1132,7 +1135,7 @@ - 0))) - #endif - /* small structures < 1 word are adjusted depending on compiler */ --#if defined(__mips__) && !defined(__mipsn32__) -+#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) - #define __av_struct_leftadjusted(LIST,TYPE,TYPE_SIZE,TYPE_ALIGN,ASSIGN,VAL) \ - (((LIST).aptr = \ - (__avword*)(((__avword)(LIST).aptr+(TYPE_SIZE)+(TYPE_ALIGN)-1) & -(long)(TYPE_ALIGN)))\ ---- ffcall-1.10+2.41.orig/ffcall/avcall/avcall-mips.S -+++ ffcall-1.10+2.41/ffcall/avcall/avcall-mips.S + uninstall : force + $(LIBTOOL_UNINSTALL) $(RM) $(DESTDIR)$(libdir)/libavcall.la +--- ffcall-1.10+2.43/avcall/avcall-mips.S ++++ ffcall-1.10+2.43/avcall/avcall-mips.S 2008-02-25 14:49:16.398841723 +0100 @@ -1,418 +1,406 @@ -#include "asmmips.h" .file 1 "avcall-mips.c" @@ -906,8 +857,8 @@ - .end __builtin_avcall + .ident "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-8)" ---- ffcall-1.10+2.41.orig/ffcall/avcall/avcall-mips.c -+++ ffcall-1.10+2.41/ffcall/avcall/avcall-mips.c +--- ffcall-1.10+2.43/avcall/avcall-mips.c ++++ ffcall-1.10+2.43/avcall/avcall-mips.c 2008-02-25 14:49:16.418844285 +0100 @@ -3,6 +3,7 @@ /** Copyright 1993 Bill Triggs, @@ -916,7 +867,7 @@ This is free software distributed under the GNU General Public Licence described in the file COPYING. Contact the author if -@@ -49,108 +50,122 @@ +@@ -49,108 +50,122 @@ register func_pointer t9 __asm__("$25"); int __builtin_avcall(av_alist* l) { @@ -1105,31 +1056,226 @@ } return 0; } ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/Makefile.in -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/Makefile.in -@@ -99,6 +99,9 @@ - cache-alpha.lo : $(srcdir)/cache-alpha.s - $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-alpha.s +--- ffcall-1.10+2.43/avcall/avcall.h.in ++++ ffcall-1.10+2.43/avcall/avcall.h.in 2008-02-25 14:49:16.398841723 +0100 +@@ -286,9 +286,11 @@ enum __AV_alist_flags + #if defined(__i386__) || defined(__m68k__) || defined(__mipsn32__) || defined(__mips64__) || defined(__sparc64__) || defined(__alpha__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) || defined(__convex__) || defined(__ia64__) || defined(__x86_64__) || defined(__s390__) + __AV_REGISTER_STRUCT_RETURN = 1<<9, + #endif +-#if defined(__mips__) && !defined(__mipsn32__) ++#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) + __AV_FLOAT_1 = 1<<10, + __AV_FLOAT_2 = 1<<11, ++ __AV_DOUBLE_1 = 1<<12, ++ __AV_DOUBLE_2 = 1<<13, + #endif -+cache-arm.lo : $(srcdir)/cache-arm.s -+ $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-arm.s -+ - cache-hppa.lo : $(srcdir)/cache-hppa.s - $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-hppa.s + __AV_flag_for_broken_compilers_that_dont_like_trailing_commas +@@ -330,10 +332,11 @@ typedef struct + __avword* iaptr; + __avword iargs[6]; + #endif +-#if defined(__mips__) && !defined(__mipsn32__) ++#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) + /* store the floating-point arguments in an extra array */ + int anum; +- double floatarg[2]; ++ float floatarg[2]; ++ double doublearg[2]; + #endif + #if defined(__mipsn32__) || defined(__mips64__) + /* store the floating-point arguments in an extra array */ +@@ -410,7 +413,7 @@ typedef struct + #define __av_start1(LIST) \ + (LIST).aptr = &(LIST).args[0], + #endif +-#if defined(__mips__) && !defined(__mipsn32__) ++#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) + #define __av_start1(LIST) \ + (LIST).anum = 0, \ + (LIST).aptr = &(LIST).args[0], +@@ -569,7 +572,7 @@ typedef struct + #define __av_start_struct3(LIST) \ + 0 + #endif +-#if defined(__mips__) && !defined(__mipsn32__) ++#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) + #define __av_reg_struct_return(LIST,TYPE_SIZE,TYPE_SPLITTABLE) \ + ((TYPE_SIZE) == 1 || (TYPE_SIZE) == 2 || (TYPE_SIZE) == 4) + /* Test __AV_SMALL_STRUCT_RETURN instead of __AV_REGISTER_STRUCT_RETURN. */ +@@ -737,7 +740,7 @@ typedef struct + /* `long long' fits in __avword. */ + #define av_longlong __av_word + #define av_ulonglong(LIST,VAL) __av_word(LIST,(unsigned long long)(VAL)) +-#elif defined(__i386__) || defined(__m68k__) || defined(__mips__) || (defined(__sparc__) && !defined(__sparc64__)) || defined(__hppa__) || defined(__arm__) || defined(__powerpc__) || defined(__m88k__) || defined(__convex__) || defined(__s390__) ++#elif defined(__i386__) || defined(__m68k__) || (defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__)) || (defined(__sparc__) && !defined(__sparc64__)) || defined(__hppa__) || defined(__arm__) || defined(__powerpc__) || defined(__m88k__) || defined(__convex__) || defined(__s390__) + /* `long long's are passed embedded on the arg stack. */ + #define av_longlong(LIST,VAL) __av_longlong(LIST,long long,VAL) + #define av_ulonglong(LIST,VAL) __av_longlong(LIST,unsigned long long,VAL) +@@ -804,7 +807,7 @@ typedef struct ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/configure.in -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/configure.in -@@ -43,7 +43,7 @@ - *) ;; - esac - fi --if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex; then -+if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex -o ${host_cpu_abi} = arm; then - CPU_OBJECTS="$CPU_OBJECTS "'cache-$(CPU).lo' - fi - if test ${host_cpu_abi} = powerpc; then ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/cache-arm.c -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/cache-arm.c + #endif + +-#if defined(__mips__) && !defined(__mipsn32__) ++#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) + + /* Up to 2 leading float or double non-varargs args can be passed in + * float registers, but we also push them into the corresponding int +@@ -815,22 +818,22 @@ typedef struct + (++(LIST).aptr > __av_eptr(LIST) \ + ? -1 : ((++(LIST).anum == 1 \ + ? ((LIST).flags |= __AV_FLOAT_1, \ +- ((float*)(LIST).floatarg)[1] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ +- : (LIST).anum == 2 && ((LIST).flags & __AV_FLOAT_1) \ ++ (LIST).floatarg[0] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ ++ : (LIST).anum == 2 && (((LIST).flags & __AV_FLOAT_1) || ((LIST).flags & __AV_DOUBLE_1))\ + ? ((LIST).flags |= __AV_FLOAT_2, \ +- ((float*)(LIST).floatarg)[3] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ +- : (*(float*)&(LIST).aptr[-1] = (float)(VAL))), \ ++ (LIST).floatarg[1] = ((float*)(LIST).aptr)[-1] = (float)(VAL))\ ++ : (((float*)(LIST).aptr)[-1] = (float)(VAL))), \ + 0)) + + #define av_double(LIST,VAL) \ + (((LIST).aptr = (__avword*)(((__avword)(LIST).aptr+15)&-8)) \ + > __av_eptr(LIST) \ + ? -1 : ((++(LIST).anum == 1 \ +- ? ((LIST).flags |= __AV_FLOAT_1, \ +- (LIST).floatarg[0] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ +- : (LIST).anum == 2 && ((LIST).flags & __AV_FLOAT_1) \ +- ? ((LIST).flags |= __AV_FLOAT_2, \ +- (LIST).floatarg[1] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ ++ ? ((LIST).flags |= __AV_DOUBLE_1, \ ++ (LIST).doublearg[0] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ ++ : (LIST).anum == 2 && (((LIST).flags & __AV_FLOAT_1) || ((LIST).flags & __AV_DOUBLE_1))\ ++ ? ((LIST).flags |= __AV_DOUBLE_2, \ ++ (LIST).doublearg[1] = ((double*)(LIST).aptr)[-1] = (double)(VAL))\ + : (((double*)(LIST).aptr)[-1] = (double)(VAL))), \ + 0)) + +@@ -1132,7 +1135,7 @@ typedef struct + 0))) + #endif + /* small structures < 1 word are adjusted depending on compiler */ +-#if defined(__mips__) && !defined(__mipsn32__) ++#if defined(__mips__) && !defined(__mipsn32__) && !defined(__mips64__) + #define __av_struct_leftadjusted(LIST,TYPE,TYPE_SIZE,TYPE_ALIGN,ASSIGN,VAL) \ + (((LIST).aptr = \ + (__avword*)(((__avword)(LIST).aptr+(TYPE_SIZE)+(TYPE_ALIGN)-1) & -(long)(TYPE_ALIGN)))\ +--- ffcall-1.10+2.43/callback/Makefile.in ++++ ffcall-1.10+2.43/callback/Makefile.in 2008-02-25 14:49:20.095314920 +0100 +@@ -67,36 +67,36 @@ libcallback.la : vacall_r/libvacall.la t + # $(libdir) and $(includedir) - don't use $(prefix) and $(exec_prefix) here. + install-lib : all force + cd @subdir@; $(MAKE) install-lib libdir='$(libdir)' includedir='$(includedir)' +- if [ ! -d $(libdir) ] ; then mkdir $(libdir) ; fi +- $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcallback.la $(libdir)/libcallback.la +- if [ ! -d $(includedir) ] ; then mkdir $(includedir) ; fi +- $(INSTALL_DATA) callback.h $(includedir)/callback.h ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcallback.la $(DESTDIR)$(libdir)/libcallback.la ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ $(INSTALL_DATA) callback.h $(DESTDIR)$(includedir)/callback.h + + install : force + cd @subdir@; $(MAKE) install +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi + $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcallback.la $(DESTDIR)$(libdir)/libcallback.la +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi + $(INSTALL_DATA) callback.h $(DESTDIR)$(includedir)/callback.h +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi + $(INSTALL_DATA) $(srcdir)/callback.3 $(DESTDIR)$(mandir)/man3/callback.3 +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + $(INSTALL_DATA) $(srcdir)/callback.html $(DESTDIR)$(htmldir)/callback.html + + installdirs : force + cd @subdir@; $(MAKE) installdirs +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + + uninstall : force + cd @subdir@; $(MAKE) uninstall +--- ffcall-1.10+2.43/callback/trampoline_r/Makefile.in ++++ ffcall-1.10+2.43/callback/trampoline_r/Makefile.in 2008-02-25 14:49:20.119317993 +0100 +@@ -126,32 +126,32 @@ libtrampoline.la : $(OBJECTS) + # Installs the library and include files only. Typically called with only + # $(libdir) and $(includedir) - don't use $(prefix) and $(exec_prefix) here. + install-lib : all force +- if [ ! -d $(includedir) ] ; then mkdir $(includedir) ; fi +- $(INSTALL_DATA) trampoline_r.h $(includedir)/trampoline_r.h ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ $(INSTALL_DATA) trampoline_r.h $(DESTDIR)$(includedir)/trampoline_r.h + + install : all force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +-# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi + # $(LIBTOOL_INSTALL) $(INSTALL_DATA) libtrampoline.la $(DESTDIR)$(libdir)/libtrampoline.la +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi + $(INSTALL_DATA) trampoline_r.h $(DESTDIR)$(includedir)/trampoline_r.h +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi + $(INSTALL_DATA) $(srcdir)/trampoline_r.3 $(DESTDIR)$(mandir)/man3/trampoline_r.3 +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + $(INSTALL_DATA) $(srcdir)/trampoline_r.html $(DESTDIR)$(htmldir)/trampoline_r.html + + installdirs : force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +-# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + + uninstall : force + # $(LIBTOOL_UNINSTALL) $(RM) $(DESTDIR)$(libdir)/libtrampoline.la +--- ffcall-1.10+2.43/callback/trampoline_r/cache-arm.c ++++ ffcall-1.10+2.43/callback/trampoline_r/cache-arm.c 2008-02-25 14:49:16.506855549 +0100 @@ -0,0 +1,16 @@ +/* Instruction cache flushing for arm */ + @@ -1147,9 +1293,84 @@ +{ + asm volatile ("swi %0" : : "i" (__ARM_NR_cacheflush)); +} ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/trampoline.c -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/trampoline.c -@@ -240,11 +240,7 @@ +--- ffcall-1.10+2.43/callback/trampoline_r/cache-arm.s ++++ ffcall-1.10+2.43/callback/trampoline_r/cache-arm.s 2008-02-25 14:49:16.566863234 +0100 +@@ -0,0 +1,15 @@ ++ .file "cache-arm.c" ++ .text ++ .align 2 ++ .global __TR_clear_cache ++ .type __TR_clear_cache, %function ++__TR_clear_cache: ++ @ args = 0, pretend = 0, frame = 0 ++ @ frame_needed = 0, uses_anonymous_args = 0 ++ @ link register save eliminated. ++ @ lr needed for prologue ++#APP ++ swi #10420226 ++ mov pc, lr ++ .size __TR_clear_cache, .-__TR_clear_cache ++ .ident "GCC: (GNU) 3.4.0 (Debian 20040516)" +--- ffcall-1.10+2.43/callback/trampoline_r/configure.in ++++ ffcall-1.10+2.43/callback/trampoline_r/configure.in 2008-02-25 14:49:16.474851452 +0100 +@@ -30,7 +30,7 @@ if test ${host_cpu_abi} = powerpc; then + *) ;; + esac + fi +-if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex; then ++if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex -o ${host_cpu_abi} = arm; then + CPU_OBJECTS="$CPU_OBJECTS "'cache-$(CPU).lo' + fi + if test ${host_cpu_abi} = powerpc; then +--- ffcall-1.10+2.43/callback/trampoline_r/tramp-arm.s ++++ ffcall-1.10+2.43/callback/trampoline_r/tramp-arm.s 2008-02-25 14:49:16.598867330 +0100 +@@ -22,19 +22,15 @@ pc .req r15 + _tramp: + @ Immediate constants are a problem. I take the indirect load approach + @ because I don't want 4 instructions for each constant. +- ldr ip,[pc,#_function-.-8] +- ldr ip,[ip,#0] +- stmfd sp!,{ip} +- ldr ip,[pc,#_data-.-8] +- ldr ip,[ip,#0] +- ldmfd sp!,{pc}^ ++ add ip,pc,#8 ++ ldr pc,[pc] + + .global _data + .align 0 + _data: + .word 0x73554711 + +- .global _function + .align 0 + _function: + .word 0xbabebec0 ++ .global _function +--- ffcall-1.10+2.43/callback/trampoline_r/tramp-mips.s ++++ ffcall-1.10+2.43/callback/trampoline_r/tramp-mips.s 2008-02-25 14:49:16.634871936 +0100 +@@ -17,12 +17,12 @@ + .globl tramp + .ent tramp + tramp: +- li $2,0x73550000 +- ori $2,$2,0x4711 +- li $25,0xbabe0000 +- ori $25,$25,0xbec0 ++ /* We can assume that our own address (=tramp) is in $25. */ ++ lw $2,$LC0-tramp($25) ++ lw $25,$LC1-tramp($25) + /* The called function expects to see its own address in $25. */ + j $25 +- /* Some Mips hardware running Irix-4.0.5 needs this nop. */ +- nop ++ nop ++$LC0: .word 0x73554711 ++$LC1: .word 0xbabebec0 + .end tramp +--- ffcall-1.10+2.43/callback/trampoline_r/trampoline.c ++++ ffcall-1.10+2.43/callback/trampoline_r/trampoline.c 2008-02-25 14:49:16.538859649 +0100 +@@ -240,11 +240,7 @@ extern void __TR_clear_cache(); #define TRAMP_LENGTH 14 #define TRAMP_ALIGN 16 #endif @@ -1162,7 +1383,7 @@ #define TRAMP_LENGTH 24 #define TRAMP_ALIGN 4 #endif -@@ -278,7 +274,7 @@ +@@ -278,7 +274,7 @@ extern void __TR_clear_cache(); #define TRAMP_BIAS 2 #endif #ifdef __arm__ @@ -1171,7 +1392,7 @@ #define TRAMP_ALIGN 4 #endif #ifdef __powerpcsysv4__ -@@ -467,41 +463,7 @@ +@@ -467,41 +463,7 @@ __TR_function alloc_trampoline_r (__TR_f #define tramp_data(function) \ *(long *) (function + 2) #endif @@ -1214,7 +1435,7 @@ /* function: * lw $2,16($25) 8F 22 00 10 * lw $25,20($25) 8F 39 00 14 -@@ -510,7 +472,6 @@ +@@ -510,7 +472,6 @@ __TR_function alloc_trampoline_r (__TR_f * .word * .word
*/ @@ -1222,7 +1443,7 @@ *(unsigned int *) (function + 0) = 0x8F220010; *(unsigned int *) (function + 4) = 0x8F390014; *(unsigned int *) (function + 8) = 0x03200008; -@@ -518,10 +479,10 @@ +@@ -518,10 +479,10 @@ __TR_function alloc_trampoline_r (__TR_f *(unsigned int *) (function +16) = (unsigned int) data; *(unsigned int *) (function +20) = (unsigned int) address; #define is_tramp(function) \ @@ -1237,7 +1458,7 @@ #define tramp_address(function) \ *(unsigned int *) (function +20) #define tramp_data(function) \ -@@ -605,14 +566,17 @@ +@@ -605,14 +566,17 @@ __TR_function alloc_trampoline_r (__TR_f * .dword * .dword
*/ @@ -1260,7 +1481,7 @@ #define tramp_address(function) \ *(unsigned long *) (function +24) #define tramp_data(function) \ -@@ -788,37 +752,26 @@ +@@ -788,37 +752,26 @@ __TR_function alloc_trampoline_r (__TR_f #endif #ifdef __arm__ /* function: @@ -1311,7 +1532,7 @@ #endif #ifdef __powerpcsysv4__ #ifdef __NetBSD__ -@@ -1175,7 +1128,7 @@ +@@ -1175,7 +1128,7 @@ __TR_function alloc_trampoline_r (__TR_f __TR_clear_cache(function,function+TRAMP_LENGTH-1); #endif #ifdef __arm__ @@ -1320,73 +1541,62 @@ #endif #if defined(__powerpc__) && !defined(__powerpc64__) __TR_clear_cache(function); ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/cache-arm.s -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/cache-arm.s -@@ -0,0 +1,15 @@ -+ .file "cache-arm.c" -+ .text -+ .align 2 -+ .global __TR_clear_cache -+ .type __TR_clear_cache, %function -+__TR_clear_cache: -+ @ args = 0, pretend = 0, frame = 0 -+ @ frame_needed = 0, uses_anonymous_args = 0 -+ @ link register save eliminated. -+ @ lr needed for prologue -+#APP -+ swi #10420226 -+ mov pc, lr -+ .size __TR_clear_cache, .-__TR_clear_cache -+ .ident "GCC: (GNU) 3.4.0 (Debian 20040516)" ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/tramp-arm.s -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/tramp-arm.s -@@ -22,19 +22,15 @@ - _tramp: - @ Immediate constants are a problem. I take the indirect load approach - @ because I don't want 4 instructions for each constant. -- ldr ip,[pc,#_function-.-8] -- ldr ip,[ip,#0] -- stmfd sp!,{ip} -- ldr ip,[pc,#_data-.-8] -- ldr ip,[ip,#0] -- ldmfd sp!,{pc}^ -+ add ip,pc,#8 -+ ldr pc,[pc] +--- ffcall-1.10+2.43/callback/vacall_r/Makefile.in ++++ ffcall-1.10+2.43/callback/vacall_r/Makefile.in 2008-02-25 14:49:20.155322601 +0100 +@@ -163,32 +163,32 @@ libvacall.la : $(OBJECTS) + # Installs the library and include files only. Typically called with only + # $(libdir) and $(includedir) - don't use $(prefix) and $(exec_prefix) here. + install-lib : all force +- if [ ! -d $(includedir) ] ; then mkdir $(includedir) ; fi +- $(INSTALL_DATA) vacall_r.h $(includedir)/vacall_r.h ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ $(INSTALL_DATA) vacall_r.h $(DESTDIR)$(includedir)/vacall_r.h - .global _data - .align 0 - _data: - .word 0x73554711 + install : all force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +-# if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +-# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++# if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi + # $(LIBTOOL_INSTALL) $(INSTALL_DATA) libvacall.la $(DESTDIR)$(libdir)/libvacall.la +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi + $(INSTALL_DATA) vacall_r.h $(DESTDIR)$(includedir)/vacall_r.h +-# if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +-# if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi ++# if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++# if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi + # $(INSTALL_DATA) $(srcdir)/vacall_r.3 $(DESTDIR)$(mandir)/man3/vacall_r.3 +-# if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +-# if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++# if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++# if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + # $(INSTALL_DATA) $(srcdir)/vacall_r.html $(DESTDIR)$(htmldir)/vacall_r.html -- .global _function - .align 0 - _function: - .word 0xbabebec0 -+ .global _function ---- ffcall-1.10+2.41.orig/ffcall/callback/trampoline_r/tramp-mips.s -+++ ffcall-1.10+2.41/ffcall/callback/trampoline_r/tramp-mips.s -@@ -17,12 +17,12 @@ - .globl tramp - .ent tramp - tramp: -- li $2,0x73550000 -- ori $2,$2,0x4711 -- li $25,0xbabe0000 -- ori $25,$25,0xbec0 -+ /* We can assume that our own address (=tramp) is in $25. */ -+ lw $2,$LC0-tramp($25) -+ lw $25,$LC1-tramp($25) - /* The called function expects to see its own address in $25. */ - j $25 -- /* Some Mips hardware running Irix-4.0.5 needs this nop. */ -- nop -+ nop -+$LC0: .word 0x73554711 -+$LC1: .word 0xbabebec0 - .end tramp ---- ffcall-1.10+2.41.orig/ffcall/callback/vacall_r/vacall_r.h.in -+++ ffcall-1.10+2.41/ffcall/callback/vacall_r/vacall_r.h.in -@@ -288,7 +288,7 @@ + installdirs : force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +-# if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +-# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi +-# if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +-# if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi +-# if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +-# if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++# if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++# if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++# if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++# if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi ++# if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++# if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + + uninstall : force + # $(LIBTOOL_UNINSTALL) $(RM) $(DESTDIR)$(libdir)/libvacall.la +--- ffcall-1.10+2.43/callback/vacall_r/vacall_r.h.in ++++ ffcall-1.10+2.43/callback/vacall_r/vacall_r.h.in 2008-02-25 14:49:16.662875524 +0100 +@@ -288,7 +288,7 @@ enum __VA_alist_flags #if defined(__i386__) || defined(__m68k__) || defined(__mipsn32__) || defined(__mips64__) || defined(__sparc64__) || defined(__alpha__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) || defined(__convex__) || defined(__ia64__) || defined(__x86_64__) || defined(__s390__) __VA_REGISTER_STRUCT_RETURN = 1<<10, #endif @@ -1395,7 +1605,7 @@ __VA_FLOAT_1 = 1<<11, __VA_FLOAT_2 = 1<<12, #endif -@@ -352,7 +352,7 @@ +@@ -352,7 +352,7 @@ typedef struct float farg[4]; double darg[2]; #endif @@ -1404,7 +1614,7 @@ int anum; float farg[2]; double darg[2]; -@@ -502,11 +502,11 @@ +@@ -502,11 +502,11 @@ typedef __va_alist* va_alist; #define __va_start_struct1(LIST,TYPE_SIZE,TYPE_ALIGN,TYPE_SPLITTABLE) \ 0 #endif @@ -1418,7 +1628,7 @@ #define __va_start_struct1(LIST,TYPE_SIZE,TYPE_ALIGN,TYPE_SPLITTABLE) \ ((LIST)->anum++, \ 0 \ -@@ -614,7 +614,7 @@ +@@ -614,7 +614,7 @@ typedef __va_alist* va_alist; /* Padding of non-struct arguments. */ #define __va_argsize(TYPE_SIZE) \ (((TYPE_SIZE) + sizeof(__vaword)-1) & -(long)sizeof(__vaword)) @@ -1427,7 +1637,7 @@ /* args grow up */ /* small structures < 1 word are adjusted depending on compiler */ #define __va_arg_leftadjusted(LIST,TYPE_SIZE,TYPE_ALIGN) \ -@@ -700,20 +700,26 @@ +@@ -700,20 +700,26 @@ typedef __va_alist* va_alist; (LIST)->aptr + ((-(TYPE_SIZE)) & 3) \ ) #endif @@ -1457,7 +1667,7 @@ #endif #if defined(__x86_64__) /* the first 6 argument words are passed in registers */ -@@ -785,7 +791,7 @@ +@@ -785,7 +791,7 @@ typedef __va_alist* va_alist; #if defined(__i386__) || defined(__m68k__) || defined(__mipsn32__) || defined(__mips64__) || defined(__sparc__) || defined(__sparc64__) || defined(__alpha__) || defined(__arm__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__convex__) || defined(__ia64__) || defined(__x86_64__) || defined(__s390__) #define __va_align_double(LIST) #endif @@ -1466,7 +1676,7 @@ /* __VA_alignof(double) > sizeof(__vaword) */ #define __va_align_double(LIST) \ (LIST)->aptr = ((LIST)->aptr + sizeof(double)-1) & -(long)sizeof(double), -@@ -850,7 +856,7 @@ +@@ -850,7 +856,7 @@ typedef __va_alist* va_alist; )) #endif #endif @@ -1475,7 +1685,7 @@ /* The first 0,1,2 registers are stored elsewhere if they are floating-point * parameters. */ -@@ -1065,7 +1071,7 @@ +@@ -1065,7 +1071,7 @@ typedef __va_alist* va_alist; __va_arg_adjusted(LIST,TYPE_SIZE,TYPE_ALIGN) \ ) #endif @@ -1484,9 +1694,9 @@ /* small structures < 1 word are adjusted depending on compiler */ #define __va_arg_struct(LIST,TYPE_SIZE,TYPE_ALIGN) \ (__va_align_struct(LIST,TYPE_SIZE,TYPE_ALIGN) \ ---- ffcall-1.10+2.41.orig/ffcall/m4/general.m4 -+++ ffcall-1.10+2.41/ffcall/m4/general.m4 -@@ -138,7 +138,7 @@ +--- ffcall-1.10+2.43/m4/general.m4 ++++ ffcall-1.10+2.43/m4/general.m4 2008-02-25 14:49:16.686878594 +0100 +@@ -149,7 +149,7 @@ changequote(,)dnl host_cpu_instructionset=arm ;; changequote([,])dnl @@ -1495,7 +1705,7 @@ AC_CACHE_CHECK([for 64-bit MIPS], cl_cv_host_mips64, [ AC_EGREP_CPP(yes, [#if defined(_MIPS_SZLONG) -@@ -151,6 +151,8 @@ +@@ -162,6 +162,8 @@ AC_EGREP_CPP(yes, ]) if test $cl_cv_host_mips64 = yes; then host_cpu_instructionset=mips64 @@ -1504,7 +1714,7 @@ fi ;; dnl On powerpc64 systems, the C compiler may still be generating 32-bit code. -@@ -234,7 +236,7 @@ +@@ -245,7 +247,7 @@ changequote(,)dnl host_cpu_abi=arm ;; changequote([,])dnl @@ -1513,19 +1723,55 @@ AC_CACHE_CHECK([for 64-bit MIPS], cl_cv_host_mips64, [ AC_EGREP_CPP(yes, [#if defined(_MIPS_SZLONG) ---- ffcall-1.10+2.41.orig/ffcall/trampoline/configure.in -+++ ffcall-1.10+2.41/ffcall/trampoline/configure.in -@@ -37,7 +37,7 @@ - *) ;; - esac - fi --if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex; then -+if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex -o ${host_cpu_abi} = arm; then - CPU_OBJECTS="$CPU_OBJECTS "'cache-$(CPU).o' - fi - if test ${host_cpu_abi} = powerpc; then ---- ffcall-1.10+2.41.orig/ffcall/trampoline/cache-arm.c -+++ ffcall-1.10+2.41/ffcall/trampoline/cache-arm.c +--- ffcall-1.10+2.43/trampoline/Makefile.in ++++ ffcall-1.10+2.43/trampoline/Makefile.in 2008-02-25 14:49:20.179325674 +0100 +@@ -110,28 +110,28 @@ libtrampoline.a : $(OBJECTS) + $(RANLIB) libtrampoline.a + + install : all force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi + $(INSTALL_DATA) libtrampoline.a $(DESTDIR)$(libdir)/libtrampoline.a +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi + $(INSTALL_DATA) trampoline.h $(DESTDIR)$(includedir)/trampoline.h +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi + $(INSTALL_DATA) $(srcdir)/trampoline.3 $(DESTDIR)$(mandir)/man3/trampoline.3 +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + $(INSTALL_DATA) $(srcdir)/trampoline.html $(DESTDIR)$(htmldir)/trampoline.html + + installdirs : force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + + uninstall : force + $(RM) $(DESTDIR)$(libdir)/libtrampoline.a +--- ffcall-1.10+2.43/trampoline/cache-arm.c ++++ ffcall-1.10+2.43/trampoline/cache-arm.c 2008-02-25 14:49:16.750886790 +0100 @@ -0,0 +1,16 @@ +/* Instruction cache flushing for arm */ + @@ -1543,9 +1789,59 @@ +{ + asm volatile ("swi %0" : : "i" (__ARM_NR_cacheflush)); +} ---- ffcall-1.10+2.41.orig/ffcall/trampoline/trampoline.c -+++ ffcall-1.10+2.41/ffcall/trampoline/trampoline.c -@@ -278,7 +278,7 @@ +--- ffcall-1.10+2.43/trampoline/cache-arm.s ++++ ffcall-1.10+2.43/trampoline/cache-arm.s 2008-02-25 14:49:16.814894982 +0100 +@@ -0,0 +1,15 @@ ++ .file "cache-arm.c" ++ .text ++ .align 2 ++ .global __TR_clear_cache ++ .type __TR_clear_cache, %function ++__TR_clear_cache: ++ @ args = 0, pretend = 0, frame = 0 ++ @ frame_needed = 0, uses_anonymous_args = 0 ++ @ link register save eliminated. ++ @ lr needed for prologue ++#APP ++ swi #10420226 ++ mov pc, lr ++ .size __TR_clear_cache, .-__TR_clear_cache ++ .ident "GCC: (GNU) 3.4.0 (Debian 20040516)" +--- ffcall-1.10+2.43/trampoline/configure.in ++++ ffcall-1.10+2.43/trampoline/configure.in 2008-02-25 14:49:16.718882694 +0100 +@@ -28,7 +28,7 @@ if test ${host_cpu_abi} = powerpc; then + *) ;; + esac + fi +-if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex; then ++if test ${host_cpu_abi} = sparc -o ${host_cpu_abi} = sparc64 -o ${host_cpu_abi} = alpha -o ${host_cpu_abi} = hppa -o ${host_cpu_abi} = convex -o ${host_cpu_abi} = arm; then + CPU_OBJECTS="$CPU_OBJECTS "'cache-$(CPU).o' + fi + if test ${host_cpu_abi} = powerpc; then +--- ffcall-1.10+2.43/trampoline/tramp-arm.s ++++ ffcall-1.10+2.43/trampoline/tramp-arm.s 2008-02-25 14:49:16.850899593 +0100 +@@ -23,13 +23,11 @@ _tramp: + @ Immediate constants are a problem. I take the indirect load approach + @ because I don't want 4 instructions for each constant. + stmfd sp!,{r0} +- ldr r0,[pc,#_data-.-8] +- ldr ip,[r0,#0] +- ldr r0,[pc,#_variable-.-8] +- str ip,[r0,#0] +- ldmfd sp!,{r0}^ +- ldr ip,[pc,#_function-.-8] +- ldr pc,[ip,#0] ++ ldr r0,[pc,#12] ++ ldr ip,[pc,#12] ++ str r0,[ip] ++ ldmfd sp!,{r0} ++ ldr pc,[pc,#4] + + .global _data + .align 0 +--- ffcall-1.10+2.43/trampoline/trampoline.c ++++ ffcall-1.10+2.43/trampoline/trampoline.c 2008-02-25 14:49:16.778890375 +0100 +@@ -278,7 +278,7 @@ extern void __TR_clear_cache(); #define TRAMP_BIAS 2 #endif #ifdef __arm__ @@ -1554,7 +1850,7 @@ #define TRAMP_ALIGN 4 #endif #ifdef __powerpcsysv4__ -@@ -855,46 +855,43 @@ +@@ -855,46 +855,43 @@ __TR_function alloc_trampoline (__TR_fun #endif #ifdef __arm__ /* function: @@ -1629,7 +1925,7 @@ #endif #ifdef __powerpcsysv4__ /* function: -@@ -1286,7 +1283,7 @@ +@@ -1286,7 +1283,7 @@ __TR_function alloc_trampoline (__TR_fun __TR_clear_cache(function,function+TRAMP_LENGTH-1); #endif #ifdef __arm__ @@ -1638,48 +1934,56 @@ #endif #if defined(__powerpc__) && !defined(__powerpc64__) __TR_clear_cache(function); ---- ffcall-1.10+2.41.orig/ffcall/trampoline/cache-arm.s -+++ ffcall-1.10+2.41/ffcall/trampoline/cache-arm.s -@@ -0,0 +1,15 @@ -+ .file "cache-arm.c" -+ .text -+ .align 2 -+ .global __TR_clear_cache -+ .type __TR_clear_cache, %function -+__TR_clear_cache: -+ @ args = 0, pretend = 0, frame = 0 -+ @ frame_needed = 0, uses_anonymous_args = 0 -+ @ link register save eliminated. -+ @ lr needed for prologue -+#APP -+ swi #10420226 -+ mov pc, lr -+ .size __TR_clear_cache, .-__TR_clear_cache -+ .ident "GCC: (GNU) 3.4.0 (Debian 20040516)" ---- ffcall-1.10+2.41.orig/ffcall/trampoline/tramp-arm.s -+++ ffcall-1.10+2.41/ffcall/trampoline/tramp-arm.s -@@ -23,13 +23,11 @@ - @ Immediate constants are a problem. I take the indirect load approach - @ because I don't want 4 instructions for each constant. - stmfd sp!,{r0} -- ldr r0,[pc,#_data-.-8] -- ldr ip,[r0,#0] -- ldr r0,[pc,#_variable-.-8] -- str ip,[r0,#0] -- ldmfd sp!,{r0}^ -- ldr ip,[pc,#_function-.-8] -- ldr pc,[ip,#0] -+ ldr r0,[pc,#12] -+ ldr ip,[pc,#12] -+ str r0,[ip] -+ ldmfd sp!,{r0} -+ ldr pc,[pc,#4] +--- ffcall-1.10+2.43/vacall/Makefile.in ++++ ffcall-1.10+2.43/vacall/Makefile.in 2008-02-25 14:49:20.215330284 +0100 +@@ -145,28 +145,28 @@ libvacall.a : $(OBJECTS) + $(RANLIB) libvacall.a - .global _data - .align 0 ---- ffcall-1.10+2.41.orig/ffcall/vacall/vacall.h.in -+++ ffcall-1.10+2.41/ffcall/vacall/vacall.h.in -@@ -289,7 +289,7 @@ + install : all force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi + $(INSTALL_DATA) libvacall.a $(DESTDIR)$(libdir)/libvacall.a +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi + $(INSTALL_DATA) vacall.h $(DESTDIR)$(includedir)/vacall.h +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi + $(INSTALL_DATA) $(srcdir)/vacall.3 $(DESTDIR)$(mandir)/man3/vacall.3 +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + $(INSTALL_DATA) $(srcdir)/vacall.html $(DESTDIR)$(htmldir)/vacall.html + + installdirs : force +- if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi +- if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$(exec_prefix) ; fi +- if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi +- if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$(includedir) ; fi +- if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi +- if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$(mandir)/man3 ; fi +- if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$(datadir) ; fi +- if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$(htmldir) ; fi ++ if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir -p $(DESTDIR)$(prefix) ; fi ++ if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir -p $(DESTDIR)$(exec_prefix) ; fi ++ if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir -p $(DESTDIR)$(libdir) ; fi ++ if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir -p $(DESTDIR)$(includedir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir -p $(DESTDIR)$(mandir) ; fi ++ if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir -p $(DESTDIR)$(mandir)/man3 ; fi ++ if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir -p $(DESTDIR)$(datadir) ; fi ++ if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir -p $(DESTDIR)$(htmldir) ; fi + + uninstall : force + $(RM) $(DESTDIR)$(libdir)/libvacall.a +--- ffcall-1.10+2.43/vacall/vacall.h.in ++++ ffcall-1.10+2.43/vacall/vacall.h.in 2008-02-25 14:49:16.878903178 +0100 +@@ -289,7 +289,7 @@ enum __VA_alist_flags #if defined(__i386__) || defined(__m68k__) || defined(__mipsn32__) || defined(__mips64__) || defined(__sparc64__) || defined(__alpha__) || defined(__arm__) || (defined(__powerpc__) && !defined(__powerpc64__)) || defined(__convex__) || defined(__ia64__) || defined(__x86_64__) || defined(__s390__) __VA_REGISTER_STRUCT_RETURN = 1<<10, #endif @@ -1688,7 +1992,7 @@ __VA_FLOAT_1 = 1<<11, __VA_FLOAT_2 = 1<<12, #endif -@@ -353,7 +353,7 @@ +@@ -353,7 +353,7 @@ typedef struct float farg[4]; double darg[2]; #endif @@ -1697,7 +2001,7 @@ int anum; float farg[2]; double darg[2]; -@@ -503,11 +503,11 @@ +@@ -503,11 +503,11 @@ typedef __va_alist* va_alist; #define __va_start_struct1(LIST,TYPE_SIZE,TYPE_ALIGN,TYPE_SPLITTABLE) \ 0 #endif @@ -1711,7 +2015,7 @@ #define __va_start_struct1(LIST,TYPE_SIZE,TYPE_ALIGN,TYPE_SPLITTABLE) \ ((LIST)->anum++, \ 0 \ -@@ -615,7 +615,7 @@ +@@ -615,7 +615,7 @@ typedef __va_alist* va_alist; /* Padding of non-struct arguments. */ #define __va_argsize(TYPE_SIZE) \ (((TYPE_SIZE) + sizeof(__vaword)-1) & -(long)sizeof(__vaword)) @@ -1720,7 +2024,7 @@ /* args grow up */ /* small structures < 1 word are adjusted depending on compiler */ #define __va_arg_leftadjusted(LIST,TYPE_SIZE,TYPE_ALIGN) \ -@@ -711,7 +711,7 @@ +@@ -711,7 +711,7 @@ typedef __va_alist* va_alist; #define __va_arg_adjusted(LIST,TYPE_SIZE,TYPE_ALIGN) \ __va_arg_rightadjusted(LIST,TYPE_SIZE,TYPE_ALIGN) #endif @@ -1729,7 +2033,7 @@ /* big endian -> small args < 1 word are adjusted to the right */ #define __va_arg_adjusted(LIST,TYPE_SIZE,TYPE_ALIGN) \ ((LIST)->anum++, __va_arg_rightadjusted(LIST,TYPE_SIZE,TYPE_ALIGN)) -@@ -786,7 +786,7 @@ +@@ -786,7 +786,7 @@ typedef __va_alist* va_alist; #if defined(__i386__) || defined(__m68k__) || defined(__mipsn32__) || defined(__mips64__) || defined(__sparc__) || defined(__sparc64__) || defined(__alpha__) || defined(__arm__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__convex__) || defined(__ia64__) || defined(__x86_64__) || defined(__s390__) #define __va_align_double(LIST) #endif @@ -1738,7 +2042,7 @@ /* __VA_alignof(double) > sizeof(__vaword) */ #define __va_align_double(LIST) \ (LIST)->aptr = ((LIST)->aptr + sizeof(double)-1) & -(long)sizeof(double), -@@ -851,7 +851,7 @@ +@@ -851,7 +851,7 @@ typedef __va_alist* va_alist; )) #endif #endif @@ -1747,7 +2051,7 @@ /* The first 0,1,2 registers are stored elsewhere if they are floating-point * parameters. */ -@@ -1066,7 +1066,7 @@ +@@ -1066,7 +1066,7 @@ typedef __va_alist* va_alist; __va_arg_adjusted(LIST,TYPE_SIZE,TYPE_ALIGN) \ ) #endif diff --git a/ffcall-1.10+2.43.tar.bz2 b/ffcall-1.10+2.43.tar.bz2 new file mode 100644 index 0000000..44435ec --- /dev/null +++ b/ffcall-1.10+2.43.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49824e0e18975e754a0ef833ff25619b9b22502002af54bad22980d2846eda2d +size 878623 diff --git a/libsigsegv-2.5.tar.bz2 b/libsigsegv-2.5.tar.bz2 new file mode 100644 index 0000000..53b492c --- /dev/null +++ b/libsigsegv-2.5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e94d710ff665262bafdee66c9bfe7db0702eb8e65c34b96783a9a677d144aa3 +size 273064