diff options
-rw-r--r-- | lang/clisp/Makefile | 8 | ||||
-rw-r--r-- | lang/clisp/distinfo | 9 | ||||
-rw-r--r-- | lang/clisp/files/tramp-rs6000-netbsd.o | bin | 0 -> 487 bytes | |||
-rw-r--r-- | lang/clisp/files/tramp-rs6000-netbsd.s | 29 | ||||
-rw-r--r-- | lang/clisp/files/vacall-rs6000-netbsd.s | 159 | ||||
-rw-r--r-- | lang/clisp/patches/patch-ab | 20 | ||||
-rw-r--r-- | lang/clisp/patches/patch-ac | 18 | ||||
-rw-r--r-- | lang/clisp/patches/patch-ad | 19 | ||||
-rw-r--r-- | lang/clisp/patches/patch-ae | 13 | ||||
-rw-r--r-- | lang/clisp/patches/patch-af | 22 | ||||
-rw-r--r-- | lang/clisp/patches/patch-ag | 16 | ||||
-rw-r--r-- | lang/clisp/patches/patch-ah | 79 |
12 files changed, 390 insertions, 2 deletions
diff --git a/lang/clisp/Makefile b/lang/clisp/Makefile index 2dcd17a795f..180fdf1383a 100644 --- a/lang/clisp/Makefile +++ b/lang/clisp/Makefile @@ -1,8 +1,9 @@ -# $NetBSD: Makefile,v 1.23 2002/02/21 04:13:20 dillo Exp $ +# $NetBSD: Makefile,v 1.24 2002/03/14 07:44:21 jmc Exp $ DISTNAME= clisp-2.27 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=clisp/} +PKGVERSION= 1 EXTRACT_SUFX= .tar.bz2 MAINTAINER= mjl@netbsd.org @@ -24,6 +25,11 @@ LIBTOOL_OVERRIDE+= ${WRKSRC}/callback/trampoline_r/libtool LIBTOOL_OVERRIDE+= ${WRKSRC}/libiconv/libcharset/libtool LIBTOOL_OVERRIDE+= ${WRKSRC}/libiconv/libtool ${WRKSRC}/sigsegv/libtool +post-patch: + cp files/tramp-rs6000-netbsd.o ${WRKSRC}/../ffcall/callback/trampoline_r + cp files/tramp-rs6000-netbsd.s ${WRKSRC}/../ffcall/callback/trampoline_r + cp files/vacall-rs6000-netbsd.s ${WRKSRC}/../ffcall/callback/vacall_r + do-configure: cd ${WRKSRC}; \ (cd .. ; ${SETENV} ${CONFIGURE_ENV} \ diff --git a/lang/clisp/distinfo b/lang/clisp/distinfo index 5086efc8354..b0f33ab7165 100644 --- a/lang/clisp/distinfo +++ b/lang/clisp/distinfo @@ -1,5 +1,12 @@ -$NetBSD: distinfo,v 1.3 2002/02/21 04:13:21 dillo Exp $ +$NetBSD: distinfo,v 1.4 2002/03/14 07:44:22 jmc Exp $ SHA1 (clisp-2.27.tar.bz2) = ee0a9bfcb9c4d86bdcb8e0bfd3b9ff3defe4c1a8 Size (clisp-2.27.tar.bz2) = 8965902 bytes SHA1 (patch-aa) = 1151b28bf18cd4a3137f014c66e6a0d09da1756e +SHA1 (patch-ab) = 0e56664e15f66c2d8c5465aa3b0dd8493e50a179 +SHA1 (patch-ac) = 25e3fe8944ae8d7aa6c7d44c075d5f9d2d12c31e +SHA1 (patch-ad) = 18d3a6973ca29fd10b73f6f49a0801a4db24605e +SHA1 (patch-ae) = 5f60ddf54028a724c4d6be391645383874642042 +SHA1 (patch-af) = 0d14872e6c7efa32361c6722b6d8ae6e8cb05902 +SHA1 (patch-ag) = 25d995296e3af6ad007d11508e3ef9bb4a990164 +SHA1 (patch-ah) = e230ba8eeb1e7a2fe363aa99d4e7094446c9ab1f diff --git a/lang/clisp/files/tramp-rs6000-netbsd.o b/lang/clisp/files/tramp-rs6000-netbsd.o Binary files differnew file mode 100644 index 00000000000..ef578f6b491 --- /dev/null +++ b/lang/clisp/files/tramp-rs6000-netbsd.o diff --git a/lang/clisp/files/tramp-rs6000-netbsd.s b/lang/clisp/files/tramp-rs6000-netbsd.s new file mode 100644 index 00000000000..758fe31f916 --- /dev/null +++ b/lang/clisp/files/tramp-rs6000-netbsd.s @@ -0,0 +1,29 @@ +/* Trampoline for rs6000 CPU with SysV.4 ABI */ + +/* + * Copyright 1995-1999 Bruno Haible, <haible@clisp.cons.org> + * + * This is free software distributed under the GNU General Public Licence + * described in the file COPYING. Contact the author if you don't have this + * or can't live with it. There is ABSOLUTELY NO WARRANTY, explicit or implied, + * on this software. + */ + +/* Available registers: r0, r12, r11, r10, r9, r8, r7, r6, r5, r4, r3. */ +/* However, r0 is special in that it cannot be used as a base register. */ +/* And r3...r10 should not be clobbered because they contain the first 8 + * integer arguments to the function being called. + * Use r13 as it's the last possible register allocated with gcc and r11/12 + * get used during dynamic linkage. + */ + + .globl tramp +tramp: +/* Move <data> into register r13 */ + lis 13,0x7355 + ori 13,13,0x4711 +/* Get <function> */ + lis 0,0xbabe + ori 0,0,0xbec0 + mtctr 0 + bctr diff --git a/lang/clisp/files/vacall-rs6000-netbsd.s b/lang/clisp/files/vacall-rs6000-netbsd.s new file mode 100644 index 00000000000..3486025a314 --- /dev/null +++ b/lang/clisp/files/vacall-rs6000-netbsd.s @@ -0,0 +1,159 @@ + .file "vacall-rs6000.c" +gcc2_compiled.: + .section ".text" + .align 2 + .globl __vacall_r + .type __vacall_r,@function +__vacall_r: + stwu 1,-208(1) + mflr 0 + stw 0,212(1) + stw 3,152(1) + stw 4,156(1) + stw 5,160(1) + stw 6,164(1) + stw 7,168(1) + stw 8,172(1) + stw 9,176(1) + stw 10,180(1) + stfd 1,48(1) + stfd 2,56(1) + stfd 3,64(1) + stfd 4,72(1) + stfd 5,80(1) + stfd 6,88(1) + stfd 7,96(1) + stfd 8,104(1) + li 9,0 + stw 9,8(1) + addi 0,1,152 + stw 0,12(1) + addi 0,1,216 + stw 0,184(1) + stw 9,188(1) + stw 9,16(1) + stw 9,20(1) + addi 0,1,48 + stw 0,40(1) + lwz 9,0(13) + lwz 3,4(13) + addi 4,1,8 + mtlr 9 + blrl + lwz 0,20(1) + cmpwi 0,0,0 + bc 12,2,.L4 + cmpwi 0,0,1 + bc 12,2,.L42 + lwz 0,20(1) + cmpwi 0,0,2 + bc 4,2,.L7 + lbz 0,32(1) + extsb 3,0 + b .L4 +.L7: + lwz 0,20(1) + cmpwi 0,0,3 + bc 4,2,.L9 +.L42: + lbz 3,32(1) + b .L4 +.L9: + lwz 0,20(1) + cmpwi 0,0,4 + bc 4,2,.L11 + lha 3,32(1) + b .L4 +.L11: + lwz 0,20(1) + cmpwi 0,0,5 + bc 4,2,.L13 + lhz 3,32(1) + b .L4 +.L13: + lwz 0,20(1) + cmpwi 0,0,6 + bc 12,2,.L43 + lwz 0,20(1) + cmpwi 0,0,7 + bc 12,2,.L43 + lwz 0,20(1) + cmpwi 0,0,8 + bc 12,2,.L43 + lwz 0,20(1) + cmpwi 0,0,9 + bc 12,2,.L43 + lwz 9,20(1) + addi 9,9,-10 + cmplwi 0,9,1 + bc 12,1,.L23 + lwz 3,32(1) + lwz 4,36(1) + b .L4 +.L23: + lwz 0,20(1) + cmpwi 0,0,12 + bc 4,2,.L25 + lfs 1,32(1) + b .L4 +.L25: + lwz 0,20(1) + cmpwi 0,0,13 + bc 4,2,.L27 + lfd 1,32(1) + b .L4 +.L27: + lwz 0,20(1) + cmpwi 0,0,14 + bc 4,2,.L29 +.L43: + lwz 3,32(1) + b .L4 +.L29: + lwz 0,20(1) + cmpwi 0,0,15 + bc 4,2,.L4 + lwz 0,8(1) + andi. 9,0,1 + bc 12,2,.L32 + lwz 3,16(1) + b .L4 +.L32: + lwz 0,8(1) + andi. 9,0,1024 + bc 12,2,.L4 + lwz 0,24(1) + cmpwi 0,0,1 + bc 4,2,.L35 + lwz 9,16(1) + lbz 3,0(9) + b .L4 +.L35: + lwz 0,24(1) + cmpwi 0,0,2 + bc 4,2,.L37 + lwz 9,16(1) + lhz 3,0(9) + b .L4 +.L37: + lwz 0,24(1) + cmpwi 0,0,4 + bc 4,2,.L39 + lwz 9,16(1) + lwz 3,0(9) + b .L4 +.L39: + lwz 0,24(1) + cmpwi 0,0,8 + bc 4,2,.L4 + lwz 9,16(1) + lwz 3,0(9) + lwz 4,4(9) +.L4: + lwz 0,212(1) + mtlr 0 + la 1,208(1) + blr +.Lfe1: + .size __vacall_r,.Lfe1-__vacall_r + .ident "GCC: (GNU) 2.95.2 19991024 (release/franzo)" diff --git a/lang/clisp/patches/patch-ab b/lang/clisp/patches/patch-ab new file mode 100644 index 00000000000..f5b51f87779 --- /dev/null +++ b/lang/clisp/patches/patch-ab @@ -0,0 +1,20 @@ +$NetBSD: patch-ab,v 1.4 2002/03/14 07:44:23 jmc Exp $ + +--- .././ffcall/avcall/Makefile.in.orig Tue Jun 12 07:31:01 2001 ++++ .././ffcall/avcall/Makefile.in Wed Mar 6 05:38:16 2002 +@@ -117,12 +117,12 @@ + case "$(OS)" in \ + aix3*) syntax=aix.old;; \ + aix*) syntax=aix.new;; \ +- linux*) syntax=linux;; \ ++ linux* | netbsd*) syntax=linux;; \ + *) syntax=sysv4;; \ + esac; \ + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/avcall-rs6000-$${syntax}.s ; \ +- cp avcall-rs6000-$${syntax}.lo avcall-rs6000.lo ; rm -f avcall-rs6000-$${syntax}.lo ; \ +- if test -f avcall-rs6000-$${syntax}.o; then mv avcall-rs6000-$${syntax}.o avcall-rs6000.o; fi ++ cp avcall-rs6000-$${syntax}.lo avcall-rs6000.lo ; \ ++ if test -f avcall-rs6000-$${syntax}.o; then cp avcall-rs6000-$${syntax}.o avcall-rs6000.o; fi + + avcall-m88k.lo : $(srcdir)/avcall-m88k.s + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/avcall-m88k.s diff --git a/lang/clisp/patches/patch-ac b/lang/clisp/patches/patch-ac new file mode 100644 index 00000000000..f7293a7d226 --- /dev/null +++ b/lang/clisp/patches/patch-ac @@ -0,0 +1,18 @@ +$NetBSD: patch-ac,v 1.4 2002/03/14 07:44:23 jmc Exp $ + +--- .././ffcall/vacall/Makefile.in.orig Tue Mar 5 09:50:39 2002 ++++ .././ffcall/vacall/Makefile.in Wed Mar 6 05:38:50 2002 +@@ -108,11 +108,11 @@ + case "$(OS)" in \ + aix3*) syntax=aix.old;; \ + aix*) syntax=aix.new;; \ +- linux*) syntax=linux;; \ ++ linux* | netbsd*) syntax=linux;; \ + *) syntax=sysv4;; \ + esac; \ + $(CC) @GCC_X_NONE@ -c $(srcdir)/vacall-rs6000-$${syntax}.s ; \ +- mv vacall-rs6000-$${syntax}.o vacall-rs6000.o ++ cp vacall-rs6000-$${syntax}.o vacall-rs6000.o + + vacall-m88k.o : $(srcdir)/vacall-m88k.s + $(CC) @GCC_X_NONE@ -c $(srcdir)/vacall-m88k.s diff --git a/lang/clisp/patches/patch-ad b/lang/clisp/patches/patch-ad new file mode 100644 index 00000000000..a3ae8a80c97 --- /dev/null +++ b/lang/clisp/patches/patch-ad @@ -0,0 +1,19 @@ +$NetBSD: patch-ad,v 1.4 2002/03/14 07:44:23 jmc Exp $ + +--- ../ffcall/callback/vacall_r/Makefile.in.orig Tue Jun 12 07:31:01 2001 ++++ ../ffcall/callback/vacall_r/Makefile.in Thu Mar 14 07:13:43 2002 +@@ -118,11 +118,12 @@ + aix3*) syntax=aix.old;; \ + aix*) syntax=aix.new;; \ + linux*) syntax=linux;; \ ++ netbsd*) syntax=netbsd;; \ + *) syntax=sysv4;; \ + esac; \ + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/vacall-rs6000-$${syntax}.s ; \ +- cp vacall-rs6000-$${syntax}.lo vacall-rs6000.lo ; rm -f vacall-rs6000-$${syntax}.lo ; \ +- if test -f vacall-rs6000-$${syntax}.o; then mv vacall-rs6000-$${syntax}.o vacall-rs6000.o; fi ++ cp vacall-rs6000-$${syntax}.lo vacall-rs6000.lo ; \ ++ if test -f vacall-rs6000-$${syntax}.o; then cp vacall-rs6000-$${syntax}.o vacall-rs6000.o; fi + + vacall-m88k.lo : $(srcdir)/vacall-m88k.s + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/vacall-m88k.s diff --git a/lang/clisp/patches/patch-ae b/lang/clisp/patches/patch-ae new file mode 100644 index 00000000000..eb56286eca0 --- /dev/null +++ b/lang/clisp/patches/patch-ae @@ -0,0 +1,13 @@ +$NetBSD: patch-ae,v 1.4 2002/03/14 07:44:23 jmc Exp $ + +--- ../ffcall/callback/trampoline_r/Makefile.in.orig Tue Mar 5 09:57:45 2002 ++++ ../ffcall/callback/trampoline_r/Makefile.in Tue Mar 5 09:57:54 2002 +@@ -90,7 +90,7 @@ + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-hppa.s + + cache-rs6000.lo : $(srcdir)/cache-rs6000-sysv4.s +- $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-rs6000-sysv4.s ; mv -f cache-rs6000-sysv4.o cache-rs6000.o ; mv -f cache-rs6000-sysv4.lo cache-rs6000.lo ++ $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-rs6000-sysv4.s ; cp cache-rs6000-sysv4.o cache-rs6000.o ; mv cache-rs6000-sysv4.lo cache-rs6000.lo + + cache-convex.lo : $(srcdir)/cache-convex.s + $(LIBTOOL_COMPILE) $(CC) @GCC_X_NONE@ -c $(srcdir)/cache-convex.s diff --git a/lang/clisp/patches/patch-af b/lang/clisp/patches/patch-af new file mode 100644 index 00000000000..9bcde07ce0d --- /dev/null +++ b/lang/clisp/patches/patch-af @@ -0,0 +1,22 @@ +$NetBSD: patch-af,v 1.3 2002/03/14 07:44:23 jmc Exp $ + +--- lispbibl.d.orig Tue Mar 5 20:53:41 2002 ++++ lispbibl.d Tue Mar 5 20:55:32 2002 +@@ -1400,7 +1400,7 @@ + #define intBWsize intBsize + #define intWLsize intWsize + #define intBWLsize intBsize +- #elif (defined(MC680X0) && defined(HPUX_ASSEMBLER)) || defined(SPARC) || defined(HPPA) || defined(MIPS) || defined(M88000) || defined(RS6000) || defined(CONVEX) || defined(S390) ++ #elif (defined(MC680X0) && defined(HPUX_ASSEMBLER)) || defined(SPARC) || defined(HPPA) || defined(MIPS) || defined(M88000) || defined(RS6000) || defined(CONVEX) || defined(S390) || defined(__powerpc__) + # Der Sparc-Prozessor kann mit uintB und uintW schlecht rechnen. + # Anderen 32-Bit-Prozessoren geht es genauso. + #define intBWsize intWsize +@@ -1593,7 +1593,7 @@ + #define intDsize 16 + #define intDDsize 32 # = 2*intDsize + #define log2_intDsize 4 # = log2(intDsize) +- #elif defined(MC680Y0) || defined(I80386) || defined(SPARC) || defined(HPPA) || defined(MIPS) || defined(M88000) || defined(RS6000) || defined(VAX) || defined(CONVEX) || defined(ARM) || defined(DECALPHA) || defined(IA64) || defined(S390) ++ #elif defined(MC680Y0) || defined(I80386) || defined(SPARC) || defined(HPPA) || defined(MIPS) || defined(M88000) || defined(RS6000) || defined(VAX) || defined(CONVEX) || defined(ARM) || defined(DECALPHA) || defined(IA64) || defined(S390) || defined(__powerpc__) + #define intDsize 32 + #define intDDsize 64 # = 2*intDsize + #define log2_intDsize 5 # = log2(intDsize) diff --git a/lang/clisp/patches/patch-ag b/lang/clisp/patches/patch-ag new file mode 100644 index 00000000000..788019f9d13 --- /dev/null +++ b/lang/clisp/patches/patch-ag @@ -0,0 +1,16 @@ +$NetBSD: patch-ag,v 1.1 2002/03/14 07:44:23 jmc Exp $ + +--- ../ffcall/callback/trampoline_r/test1.c.orig Thu Mar 14 07:22:04 2002 ++++ ../ffcall/callback/trampoline_r/test1.c Thu Mar 14 07:22:07 2002 +@@ -69,7 +69,11 @@ + register void* env __asm__("r12"); + #endif + #ifdef __rs6000__ ++#ifdef __NetBSD__ ++register void* env __asm__("r13"); ++#else + register void* env __asm__("r11"); ++#endif + #endif + #ifdef __m88k__ + register void* env __asm__("r11"); diff --git a/lang/clisp/patches/patch-ah b/lang/clisp/patches/patch-ah new file mode 100644 index 00000000000..c44067c027b --- /dev/null +++ b/lang/clisp/patches/patch-ah @@ -0,0 +1,79 @@ +$NetBSD: patch-ah,v 1.1 2002/03/14 07:44:23 jmc Exp $ + +--- ../ffcall/callback/trampoline_r/trampoline.c.orig Thu Mar 14 07:23:32 2002 ++++ ../ffcall/callback/trampoline_r/trampoline.c Thu Mar 14 07:23:35 2002 +@@ -21,12 +21,16 @@ + #endif + #endif + #if defined(__rs6000__) ++#if defined(__NetBSD__) ++#define __powerpcnetbsd__ ++#else + #if !defined(_AIX) + #define __rs6000sysv4__ /* SysV.4 ABI, real machine code. */ + #else + #define __rs6000aix__ /* AIX ABI, just a closure. */ + #endif + #endif ++#endif + #if defined(__hppanew__) + /* + * A function pointer is a biased pointer to a data area whose first word +@@ -259,7 +263,7 @@ + #include <sys/syslocal.h> + #endif + /* Inline assembly function for instruction cache flush. */ +-#if defined(__sparc__) || defined(__sparc64__) || defined(__alpha__) || defined(__hppaold__) || defined(__rs6000sysv4__) || defined(__convex__) ++#if defined(__sparc__) || defined(__sparc64__) || defined(__alpha__) || defined(__hppaold__) || defined(__rs6000sysv4__) || defined(__convex__) || defined(__powerpcnetbsd__) + #ifdef __GNUC__ + extern inline + #if defined(__sparc__) || defined(__sparc64__) +@@ -336,7 +340,7 @@ + #define TRAMP_LENGTH 32 + #define TRAMP_ALIGN 4 + #endif +-#ifdef __rs6000sysv4__ ++#if defined(__rs6000sysv4__) || defined(__powerpcnetbsd__) + #define TRAMP_LENGTH 24 + #define TRAMP_ALIGN 4 + #endif +@@ -872,6 +876,39 @@ + #define is_tramp(function) \ + *(unsigned short *) (function + 0) == 0x3D60 && \ + *(unsigned short *) (function + 4) == 0x616B && \ ++ *(unsigned short *) (function + 8) == 0x3C00 && \ ++ *(unsigned short *) (function +12) == 0x6000 && \ ++ *(unsigned long *) (function +16) == 0x7C0903A6 && \ ++ *(unsigned long *) (function +20) == 0x4E800420 ++#define hilo(hiword,loword) \ ++ (((unsigned long) (hiword) << 16) | (unsigned long) (loword)) ++#define tramp_address(function) \ ++ hilo(*(unsigned short *) (function +10), *(unsigned short *) (function +14)) ++#define tramp_data(function) \ ++ hilo(*(unsigned short *) (function + 2), *(unsigned short *) (function + 6)) ++#endif ++#ifdef __powerpcnetbsd__ ++ /* function: ++ * {liu|lis} 13,hi16(<data>) 3D A0 hi16(<data>) ++ * {oril|ori} 13,13,lo16(<data>) 61 AD lo16(<data>) ++ * {liu|lis} 0,hi16(<address>) 3C 00 hi16(<address>) ++ * {oril|ori} 0,0,lo16(<address>) 60 00 lo16(<address>) ++ * mtctr 0 7C 09 03 A6 ++ * bctr 4E 80 04 20 ++ */ ++ *(short *) (function + 0) = 0x3DA0; ++ *(short *) (function + 2) = (unsigned long) data >> 16; ++ *(short *) (function + 4) = 0x61AD; ++ *(short *) (function + 6) = (unsigned long) data & 0xffff; ++ *(short *) (function + 8) = 0x3C00; ++ *(short *) (function +10) = (unsigned long) address >> 16; ++ *(short *) (function +12) = 0x6000; ++ *(short *) (function +14) = (unsigned long) address & 0xffff; ++ *(long *) (function +16) = 0x7C0903A6; ++ *(long *) (function +20) = 0x4E800420; ++#define is_tramp(function) \ ++ *(unsigned short *) (function + 0) == 0x3DA0 && \ ++ *(unsigned short *) (function + 4) == 0x61AD && \ + *(unsigned short *) (function + 8) == 0x3C00 && \ + *(unsigned short *) (function +12) == 0x6000 && \ + *(unsigned long *) (function +16) == 0x7C0903A6 && \ |