Browse Source

Fix 32-bit picolisp loading of 'ext'

android-5
Fredrik Fornwall 9 years ago
parent
commit
72dd9a3b35
  1. 1
      packages/picolisp/build.sh
  2. 2
      packages/picolisp/src-Makefile.patch
  3. 19
      packages/picolisp/src-ext.c.patch
  4. 15
      packages/picolisp/src-main.c.patch

1
packages/picolisp/build.sh

@ -1,6 +1,7 @@
TERMUX_PKG_HOMEPAGE=http://picolisp.com
TERMUX_PKG_DESCRIPTION="Lisp interpreter and application server framework"
TERMUX_PKG_VERSION=15.11
TERMUX_PKG_BUILD_REVISION=1
TERMUX_PKG_SRCURL=http://software-lab.de/picoLisp-${TERMUX_PKG_VERSION}.tgz
TERMUX_PKG_FOLDERNAME=picoLisp
TERMUX_PKG_BUILD_IN_SRC=true

2
packages/picolisp/src-Makefile.patch

@ -114,7 +114,7 @@ diff -u -r ../picoLisp/src/Makefile ./src/Makefile
+LCRYPT =
+OS = Android
+PICOLISP-FLAGS = -rdynamic -lm $(LDFLAGS)
+DYNAMIC-LIB-FLAGS = -shared -export-dynamic $(LDFLAGS)
+DYNAMIC-LIB-FLAGS = -shared -export-dynamic $(LDFLAGS) -lm
picolisp: $(bin)/picolisp $(lib)/ext$(dll) $(lib)/ht$(dll)
tools: $(bin)/lat1 $(bin)/utf2 $(bin)/balance

19
packages/picolisp/src-ext.c.patch

@ -0,0 +1,19 @@
The crypt(3) function is not available in Android, so remove support
in ext for now.
diff -u -r ../picoLisp/src/ext.c ./src/ext.c
--- ../picoLisp/src/ext.c 2015-04-27 00:34:17.000000000 -0400
+++ ./src/ext.c 2015-11-27 06:07:18.767005597 -0500
@@ -252,6 +252,7 @@
/*** Password hashing ***/
// (Ext:Crypt 'key 'salt) -> str
+#ifndef __ANDROID__
any Crypt(any x) {
any y;
@@ -269,3 +270,4 @@
}
}
}
+#endif

15
packages/picolisp/src-main.c.patch

@ -0,0 +1,15 @@
diff -u -r ../picoLisp/src/main.c ./src/main.c
--- ../picoLisp/src/main.c 2015-11-24 02:39:50.000000000 -0500
+++ ./src/main.c 2015-11-26 18:07:24.794312532 -0500
@@ -834,8 +834,10 @@
strcpy(buf + n + 4 + strlen(nm), ".dll");
#endif
}
- if (!(h = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL)) || !(h = dlsym(h,p)))
+ if (!(h = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL)) || !(h = dlsym(h,p))) {
+ fprintf(stderr, "dlopen/dlsym problem: %s\n", dlerror());
return NO;
+ }
val(x) = box(num(h));
}
return YES;
Loading…
Cancel
Save