Fix 32-bit picolisp loading of 'ext'
This commit is contained in:
parent
c497a759eb
commit
72dd9a3b35
@ -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
|
||||
|
@ -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
Normal file
19
packages/picolisp/src-ext.c.patch
Normal file
@ -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
Normal file
15
packages/picolisp/src-main.c.patch
Normal file
@ -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…
Reference in New Issue
Block a user