mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-lisp/clisp: clean old versions
Package-Manager: Portage-3.0.4, Repoman-3.0.1 Signed-off-by: Andrey Grozin <grozin@gentoo.org>
This commit is contained in:
@@ -1,3 +1 @@
|
||||
DIST clisp-2.49.90.tar.bz2 8921458 BLAKE2B 3be7cfe41038f42d8844d500877fa5c20e5c21dc0e162aa0018b297e4dfcd5374ef608793c9d809852e1f9885a155bb5b25fef8efe66016dd0ee400007386b70 SHA512 1fa7205e38883dcc863160b5418ddaaa2c45ee2d2f936de4067d1ea4a1e5043bf1235361bbbfc366afd6d8f1144497ccdccf1767ecf327f7a672b18742ceb651
|
||||
DIST clisp-2.49.92.tar.bz2 9055207 BLAKE2B 6cf331eb9f99f62579e35469e2d01cae066083592ccc71cf483b70b4d1be349cdee9d403e0a7ed1ad1c8c5d805c1dab51c1a5031d77469ff8c4dc52eb58913df SHA512 cc9412a7b3f21c85b040bf5e660380fafb3c2374765a1c00272feb3f7838f2161e27a5d6295cef9976f0c4522f10796cf5ee5447716090d1cc69ecfe598ef306
|
||||
DIST clisp-2.49.tar.bz2 8091011 BLAKE2B e034c581b8100837b34d0adf1ef45bd667272d062945875175958178b4ef5b11e899dfb76505eb8cb51fca6101c11a9f21fb2cc9a78a3c0f82b06166211434f7 SHA512 eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils
|
||||
|
||||
DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
|
||||
HOMEPAGE="https://clisp.sourceforge.io/"
|
||||
SRC_URI="mirror://sourceforge/clisp/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="2/${PV}"
|
||||
KEYWORDS="amd64 ~ppc ~sparc x86"
|
||||
IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib"
|
||||
# "jit" disabled ATM
|
||||
|
||||
RDEPEND=">=dev-lisp/asdf-2.33-r3
|
||||
virtual/libiconv
|
||||
>=dev-libs/libsigsegv-2.4
|
||||
>=dev-libs/ffcall-1.10
|
||||
dbus? ( sys-apps/dbus )
|
||||
fastcgi? ( dev-libs/fcgi )
|
||||
gdbm? ( sys-libs/gdbm )
|
||||
gtk? ( >=x11-libs/gtk+-2.10 >=gnome-base/libglade-2.6 )
|
||||
postgres? ( >=dev-db/postgresql-8.0 )
|
||||
readline? ( >=sys-libs/readline-5.0 <sys-libs/readline-7.0 )
|
||||
pcre? ( dev-libs/libpcre )
|
||||
svm? ( sci-libs/libsvm )
|
||||
zlib? ( sys-libs/zlib )
|
||||
X? ( x11-libs/libXpm )
|
||||
hyperspec? ( dev-lisp/hyperspec )
|
||||
berkdb? ( sys-libs/db:4.8 )"
|
||||
# jit? ( >=dev-libs/lightning-1.2 )
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto x11-misc/imake )"
|
||||
|
||||
enable_modules() {
|
||||
[[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
|
||||
for m in "$@" ; do
|
||||
einfo "enabling module $m"
|
||||
myconf+=" --with-module=${m}"
|
||||
done
|
||||
}
|
||||
|
||||
BUILDDIR="builddir"
|
||||
|
||||
# modules not enabled:
|
||||
# * berkdb: must figure out a way to make the configure script pick up the
|
||||
# currect version of the library and headers
|
||||
# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
|
||||
# * matlab, netica: not in portage
|
||||
# * oracle: can't install oracle-instantclient
|
||||
|
||||
src_prepare() {
|
||||
# More than -O1 breaks alpha/ia64
|
||||
if use alpha || use ia64; then
|
||||
sed -i -e 's/-O2//g' src/makemake.in || die
|
||||
fi
|
||||
epatch "${FILESDIR}"/${P}-bits_ipctypes_to_sys_ipc.patch
|
||||
epatch "${FILESDIR}"/${P}-get_hostname.patch
|
||||
epatch "${FILESDIR}"/${P}-tinfo.patch
|
||||
|
||||
xdg_environment_reset
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Bug 618170. If anyone has a better idea...
|
||||
append-flags -fno-pie
|
||||
|
||||
# We need this to build on alpha/ia64
|
||||
if use alpha || use ia64; then
|
||||
replace-flags -O? -O1
|
||||
append-flags '-D NO_MULTIMAP_SHM -D NO_MULTIMAP_FILE -D NO_SINGLEMAP -D NO_TRIVIALMAP'
|
||||
fi
|
||||
|
||||
# QA issue with lisp.run
|
||||
append-flags -Wa,--noexecstack
|
||||
|
||||
# built-in features
|
||||
local myconf="--with-ffcall --without-dynamic-modules"
|
||||
# There's a problem with jit_allocai function
|
||||
# if use jit; then
|
||||
# myconf+=" --with-jitc=lightning"
|
||||
# fi
|
||||
if use threads; then
|
||||
myconf+=" --with-threads=POSIX_THREADS"
|
||||
fi
|
||||
|
||||
# default modules
|
||||
enable_modules wildcard rawsock
|
||||
# optional modules
|
||||
use elibc_glibc && enable_modules bindings/glibc
|
||||
use X && enable_modules clx/new-clx
|
||||
if use postgres; then
|
||||
enable_modules postgresql
|
||||
append-cppflags -I$(pg_config --includedir)
|
||||
fi
|
||||
if use berkdb; then
|
||||
enable_modules berkeley-db
|
||||
append-cppflags -I/usr/include/db4.8
|
||||
fi
|
||||
use dbus && enable_modules dbus
|
||||
use fastcgi && enable_modules fastcgi
|
||||
use gdbm && enable_modules gdbm
|
||||
use gtk && enable_modules gtk2
|
||||
use pcre && enable_modules pcre
|
||||
use svm && enable_modules libsvm
|
||||
use zlib && enable_modules zlib
|
||||
|
||||
if use hyperspec; then
|
||||
CLHSROOT="file:///usr/share/doc/hyperspec/HyperSpec/"
|
||||
else
|
||||
CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
|
||||
fi
|
||||
|
||||
# configure chokes on --sysconfdir option
|
||||
local configure="./configure --prefix=/usr --libdir=/usr/$(get_libdir) \
|
||||
$(use_with readline) $(use_with unicode) \
|
||||
${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}"
|
||||
einfo "${configure}"
|
||||
${configure} || die "./configure failed"
|
||||
|
||||
IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
|
||||
sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
|
||||
"${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export VARTEXFONTS="${T}"/fonts
|
||||
cd "${BUILDDIR}"
|
||||
# parallel build fails
|
||||
emake -j1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
pushd "${BUILDDIR}"
|
||||
make DESTDIR="${D}" prefix=/usr install-bin || die "Installation failed"
|
||||
doman clisp.1
|
||||
dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE
|
||||
popd
|
||||
dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
|
||||
dodoc doc/{CLOS-guide,LISP-tutorial}.txt
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils
|
||||
|
||||
DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
|
||||
HOMEPAGE="https://clisp.sourceforge.io/"
|
||||
SRC_URI="https://haible.de/bruno/gnu/${P}.tar.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="2/8"
|
||||
KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86"
|
||||
IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib"
|
||||
# "jit" disabled ATM
|
||||
|
||||
RDEPEND=">=dev-lisp/asdf-2.33-r3
|
||||
virtual/libiconv
|
||||
>=dev-libs/libsigsegv-2.10
|
||||
>=dev-libs/ffcall-1.10
|
||||
dbus? ( sys-apps/dbus )
|
||||
fastcgi? ( dev-libs/fcgi )
|
||||
gdbm? ( sys-libs/gdbm )
|
||||
gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 )
|
||||
postgres? ( >=dev-db/postgresql-8.0:* )
|
||||
readline? ( >=sys-libs/readline-7.0:0= )
|
||||
pcre? ( dev-libs/libpcre:3 )
|
||||
svm? ( sci-libs/libsvm )
|
||||
zlib? ( sys-libs/zlib )
|
||||
X? ( x11-libs/libXpm )
|
||||
hyperspec? ( dev-lisp/hyperspec )
|
||||
berkdb? ( sys-libs/db:4.8 )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto x11-misc/imake )"
|
||||
|
||||
enable_modules() {
|
||||
[[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
|
||||
for m in "$@" ; do
|
||||
einfo "enabling module $m"
|
||||
myconf+=" --with-module=${m}"
|
||||
done
|
||||
}
|
||||
|
||||
BUILDDIR="builddir"
|
||||
|
||||
# modules not enabled:
|
||||
# * berkdb: must figure out a way to make the configure script pick up the
|
||||
# currect version of the library and headers
|
||||
# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
|
||||
# * matlab, netica: not in portage
|
||||
# * oracle: can't install oracle-instantclient
|
||||
|
||||
src_prepare() {
|
||||
# More than -O1 breaks alpha/ia64
|
||||
if use alpha || use ia64; then
|
||||
sed -i -e 's/-O2//g' src/makemake.in || die
|
||||
fi
|
||||
eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch
|
||||
eapply_user
|
||||
|
||||
xdg_environment_reset
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# We need this to build on alpha/ia64
|
||||
if use alpha || use ia64; then
|
||||
replace-flags -O? -O1
|
||||
fi
|
||||
|
||||
if use x86; then
|
||||
append-flags -falign-functions=4
|
||||
fi
|
||||
|
||||
# built-in features
|
||||
local myconf="--with-ffcall --without-dynamic-modules"
|
||||
# There's a problem with jit_allocai function
|
||||
# if use jit; then
|
||||
# myconf+=" --with-jitc=lightning"
|
||||
# fi
|
||||
if use threads; then
|
||||
myconf+=" --with-threads=POSIX_THREADS"
|
||||
fi
|
||||
|
||||
# default modules
|
||||
enable_modules rawsock
|
||||
# optional modules
|
||||
use elibc_glibc && enable_modules bindings/glibc
|
||||
use X && enable_modules clx/new-clx
|
||||
if use postgres; then
|
||||
enable_modules postgresql
|
||||
append-cppflags -I$(pg_config --includedir)
|
||||
fi
|
||||
if use berkdb; then
|
||||
enable_modules berkeley-db
|
||||
append-cppflags -I"${EPREFIX}"/usr/include/db4.8
|
||||
fi
|
||||
use dbus && enable_modules dbus
|
||||
use fastcgi && enable_modules fastcgi
|
||||
use gdbm && enable_modules gdbm
|
||||
use gtk && enable_modules gtk2
|
||||
use pcre && enable_modules pcre
|
||||
use svm && enable_modules libsvm
|
||||
use zlib && enable_modules zlib
|
||||
|
||||
if use hyperspec; then
|
||||
CLHSROOT="file:///${EPREFIX}/usr/share/doc/hyperspec/HyperSpec/"
|
||||
else
|
||||
CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
|
||||
fi
|
||||
|
||||
# configure chokes on --sysconfdir option
|
||||
local configure="./configure --prefix=${EPREFIX}/usr --enable-portability \
|
||||
--libdir=${EPREFIX}/usr/$(get_libdir) $(use_with readline) $(use_with unicode) \
|
||||
${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}"
|
||||
einfo "${configure}"
|
||||
${configure} || die "./configure failed"
|
||||
|
||||
IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
|
||||
sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
|
||||
"${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export VARTEXFONTS="${T}"/fonts
|
||||
cd "${BUILDDIR}" || die
|
||||
# parallel build fails
|
||||
emake -j1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
pushd "${BUILDDIR}"
|
||||
make DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin || die "Installation failed"
|
||||
doman clisp.1
|
||||
dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE
|
||||
popd
|
||||
dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
|
||||
dodoc doc/{CLOS-guide,LISP-tutorial}.txt
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
diff -ru a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp
|
||||
--- a/modules/bindings/glibc/linux.lisp 2008-10-08 19:36:19.000000000 +0300
|
||||
+++ b/modules/bindings/glibc/linux.lisp 2013-04-08 00:05:06.028305248 +0300
|
||||
@@ -67,7 +67,7 @@
|
||||
(def-c-type __daddr_t) ; int
|
||||
(def-c-type __caddr_t) ; c-pointer
|
||||
(def-c-type __time_t) ; long
|
||||
-(def-c-type __swblk_t) ; long
|
||||
+;(def-c-type __swblk_t) ; long
|
||||
|
||||
(def-c-type __fd_mask ulong)
|
||||
(eval-when (load compile eval)
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
(def-c-type __key_t) ; int
|
||||
|
||||
-(c-lines "#include <bits/ipctypes.h>~%")
|
||||
+(c-lines "#include <sys/ipc.h>~%")
|
||||
(def-c-type __ipc_pid_t) ; ushort
|
||||
|
||||
; --------------------------- <sys/types.h> -----------------------------------
|
||||
@@ -1,56 +0,0 @@
|
||||
diff -r -U1 clisp-2.49.orig/src/socket.d clisp-2.49/src/socket.d
|
||||
--- clisp-2.49.orig/src/socket.d 2009-10-08 21:45:13.000000000 +0700
|
||||
+++ clisp-2.49/src/socket.d 2013-04-20 16:24:11.133895050 +0700
|
||||
@@ -59,5 +59,5 @@
|
||||
Fetches the machine's host name.
|
||||
- get_hostname(host =);
|
||||
- The name is allocated on the stack, with dynamic extent.
|
||||
- < const char* host: The host name.
|
||||
+ get_hostname(hostname);
|
||||
+ where hostname is an array of MAXHOTNAMELEN+1 characters.
|
||||
+ < const char host[]: The host name.
|
||||
(Note: In some cases we could get away with less system calls by simply
|
||||
@@ -69,10 +69,8 @@
|
||||
/* present on all supported unix systems and on woe32 */
|
||||
- #define get_hostname(host_assignment) \
|
||||
- do { var char hostname[MAXHOSTNAMELEN+1]; \
|
||||
- begin_system_call(); \
|
||||
- if ( gethostname(&hostname[0],MAXHOSTNAMELEN) <0) { SOCK_error(); } \
|
||||
- end_system_call(); \
|
||||
- hostname[MAXHOSTNAMELEN] = '\0'; \
|
||||
- host_assignment &hostname[0]; \
|
||||
- } while(0)
|
||||
+static void get_hostname (char *hostname) {
|
||||
+ begin_system_call();
|
||||
+ if (gethostname(hostname,MAXHOSTNAMELEN) < 0) { ANSIC_error(); }
|
||||
+ end_system_call();
|
||||
+ hostname[MAXHOSTNAMELEN] = '\0';
|
||||
+}
|
||||
#else
|
||||
@@ -209,4 +207,4 @@
|
||||
(apply #'string-concat hostname " [" (inet-ntop address) "]"))) */
|
||||
- var const char* host;
|
||||
- get_hostname(host =);
|
||||
+ var char host[MAXHOSTNAMELEN+1];
|
||||
+ get_hostname(host);
|
||||
result = asciz_to_string(host,O(misc_encoding)); /* hostname as result */
|
||||
@@ -391,4 +389,4 @@
|
||||
if (eq(arg,S(Kdefault))) {
|
||||
- var char* host;
|
||||
- get_hostname(host =);
|
||||
+ var char host[MAXHOSTNAMELEN+1];
|
||||
+ get_hostname(host);
|
||||
begin_system_call();
|
||||
@@ -726,3 +724,4 @@
|
||||
if (host[0] == '\0') {
|
||||
- get_hostname(host =);
|
||||
+ var char host[MAXHOSTNAMELEN+1];
|
||||
+ get_hostname(host);
|
||||
fd = with_host_port(host,port,&connect_to_x_via_ip,NULL);
|
||||
@@ -800,4 +799,4 @@
|
||||
if (resolve_p) { /* Fill in hd->truename. */
|
||||
- var const char* host;
|
||||
- get_hostname(host =); /* was: host = "localhost"; */
|
||||
+ var char host[MAXHOSTNAMELEN+1];
|
||||
+ get_hostname(host);
|
||||
ASSERT(strlen(host) <= MAXHOSTNAMELEN);
|
||||
@@ -1,15 +0,0 @@
|
||||
clisp does not need a full blown ncurses, but it does require a termcap or tinfo
|
||||
I would have changed this in src/m4/termcap.m4 but configure.in fails terribly - JeR
|
||||
|
||||
|
||||
--- a/src/configure
|
||||
+++ b/src/configure
|
||||
@@ -28613,7 +28613,7 @@
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
-for ac_lib in '' ncurses termcap; do
|
||||
+for ac_lib in '' tinfo ncurses termcap; do
|
||||
if test -z "$ac_lib"; then
|
||||
ac_res="none required"
|
||||
else
|
||||
@@ -1,185 +0,0 @@
|
||||
diff -r -U3 clisp-2.49.90.orig/modules/berkeley-db/bdb.c clisp-2.49.90/modules/berkeley-db/bdb.c
|
||||
--- clisp-2.49.90.orig/modules/berkeley-db/bdb.c 2018-01-27 12:03:01.000000000 +0100
|
||||
+++ clisp-2.49.90/modules/berkeley-db/bdb.c 2018-02-12 20:37:24.203803219 +0100
|
||||
@@ -2216,7 +2216,13 @@
|
||||
c_data.compact_timeout = timeout;
|
||||
c_data.compact_pages = pages;
|
||||
SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end));
|
||||
- pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
|
||||
+ /* ====
|
||||
+ * compact_empty_buckets is in bdb-5.3 as part of output stats
|
||||
+ * however this version use bdb-4.8 which does not have it
|
||||
+ * ====
|
||||
+ *
|
||||
+ * pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
|
||||
+ * */
|
||||
pushSTACK(uint32_to_I(c_data.compact_pages_free));
|
||||
pushSTACK(uint32_to_I(c_data.compact_pages_examine));
|
||||
pushSTACK(uint32_to_I(c_data.compact_levels));
|
||||
diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp clisp-2.49.90/modules/bindings/glibc/linux.lisp
|
||||
--- clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp 2018-01-10 00:32:25.000000000 +0100
|
||||
+++ clisp-2.49.90/modules/bindings/glibc/linux.lisp 2018-02-12 20:48:22.467775536 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
;; Foreign functions provided by the Linux C library version 6,
|
||||
;; i.e. the GNU C library version 2.0.7.
|
||||
;; Bruno Haible 10.4.1998, 19.4.1998
|
||||
-;; Sam Steingold 2002-2008, 2011
|
||||
+;; Sam Steingold 2002-2008, 2011, 2013, 2016-2017
|
||||
|
||||
;; NB: quite a few functions here have more portable counterparts in POSIX
|
||||
|
||||
@@ -686,9 +686,8 @@
|
||||
(def-call-out system? (:arguments (null c-string))
|
||||
(:return-type boolean) (:name "system"))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out canonicalize_file_name (:arguments (name c-string))
|
||||
-; (:return-type c-string :malloc-free))
|
||||
+(def-call-out canonicalize_file_name (:arguments (name c-string))
|
||||
+ (:return-type c-string :malloc-free))
|
||||
|
||||
(def-call-out realpath
|
||||
(:arguments (name c-string)
|
||||
@@ -1040,9 +1039,8 @@
|
||||
(def-call-out access (:arguments (name c-string) (type int))
|
||||
(:return-type int))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out euidaccess (:arguments (name c-string) (type int))
|
||||
-; (:return-type int))
|
||||
+(def-call-out euidaccess (:arguments (name c-string) (type int))
|
||||
+ (:return-type int))
|
||||
|
||||
(defconstant SEEK_SET 0)
|
||||
(defconstant SEEK_CUR 1)
|
||||
@@ -1093,9 +1091,8 @@
|
||||
;(def-call-out getcwd (:arguments (buf c-string :out) (size size_t)) ; ??
|
||||
; (:return-type c-string))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out get_current_dir_name (:arguments)
|
||||
-; (:return-type c-string :malloc-free))
|
||||
+(def-call-out get_current_dir_name (:arguments)
|
||||
+ (:return-type c-string :malloc-free))
|
||||
|
||||
;(def-call-out getwd (:arguments (buf c-string :out)) ; ??
|
||||
; (:return-type c-string))
|
||||
@@ -1323,8 +1320,7 @@
|
||||
; (:arguments (size int) (list (c-ptr (c-array gid_t ??)) :out)) ; ??
|
||||
; (:return-type int))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
|
||||
+(def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
|
||||
(def-call-out setuid (:arguments (uid uid_t)) (:return-type int))
|
||||
(def-call-out setreuid (:arguments (ruid uid_t) (euid uid_t))
|
||||
(:return-type int))
|
||||
@@ -1821,8 +1817,7 @@
|
||||
(:return-type c-string :malloc-free))
|
||||
(def-call-out ungetc (:arguments (c int) (fp FILE))
|
||||
(:return-type int))
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out fcloseall (:arguments) (:return-type int))
|
||||
+(def-call-out fcloseall (:arguments) (:return-type int))
|
||||
(def-call-out fdopen (:arguments (fildes int) (mode c-string))
|
||||
(:return-type c-pointer))
|
||||
(def-call-out fileno (:arguments (fp FILE)) (:return-type int))
|
||||
@@ -1900,11 +1895,11 @@
|
||||
(:return-type (c-ptr-null dirent)))
|
||||
(def-call-out readdir64 (:arguments (dirp c-pointer))
|
||||
(:return-type (c-ptr-null dirent64)))
|
||||
-(def-call-out readdir_r
|
||||
+(def-call-out readdir_r ; deprecated
|
||||
(:arguments (dirp c-pointer) (entry (c-ptr dirent) :out :alloca)
|
||||
(result (c-ptr (c-ptr dirent)) :out :alloca)) ; ??
|
||||
(:return-type int))
|
||||
-(def-call-out readdir64_r
|
||||
+(def-call-out readdir64_r ; deprecated
|
||||
(:arguments (dirp c-pointer) (entry (c-ptr dirent64) :out :alloca)
|
||||
(result (c-ptr (c-ptr dirent64)) :out :alloca)) ; ??
|
||||
(:return-type int))
|
||||
diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/test.tst clisp-2.49.90/modules/bindings/glibc/test.tst
|
||||
--- clisp-2.49.90.orig/modules/bindings/glibc/test.tst 2018-01-10 00:04:26.000000000 +0100
|
||||
+++ clisp-2.49.90/modules/bindings/glibc/test.tst 2018-02-12 20:50:48.225769407 +0100
|
||||
@@ -14,6 +14,16 @@
|
||||
(= linux:DT_DIR (linux:dirent64-d_type (show (linux:readdir64 *d*)))) T
|
||||
(linux:closedir *d*) 0
|
||||
|
||||
+(stringp (show (linux:get-domain-name))) T
|
||||
+(stringp (show (linux:get-host-name))) T
|
||||
+
|
||||
+;; usually __USE_GNU is defined, so this should work:
|
||||
+(let* ((d (linux:get_current_dir_name))
|
||||
+ (c (linux:canonicalize_file_name (concatenate 'string d "/."))))
|
||||
+ (or (string= d c)
|
||||
+ (list :cur-dir d :canonical c)))
|
||||
+T
|
||||
+
|
||||
(defparameter *d* (show (linux:opendir "."))) *D*
|
||||
(linux:dirent-d_name (show (linux:readdir *d*))) "."
|
||||
(linux:dirent-d_name (show (linux:readdir *d*))) ".."
|
||||
diff -r -U3 clisp-2.49.90.orig/src/foreign1.lisp clisp-2.49.90/src/foreign1.lisp
|
||||
--- clisp-2.49.90.orig/src/foreign1.lisp 2018-01-10 00:04:26.000000000 +0100
|
||||
+++ clisp-2.49.90/src/foreign1.lisp 2018-02-12 21:03:56.768736245 +0100
|
||||
@@ -805,14 +805,17 @@
|
||||
c-name (to-c-string c-name) (third variable) (first variable))
|
||||
(when *foreign-guard* (format *coutput-stream* "# endif~%"))))
|
||||
(dolist (function *function-list*)
|
||||
- (let ((c-name (first function)))
|
||||
- (when *foreign-guard*
|
||||
- (format *coutput-stream* "# if defined(HAVE_~A)~%"
|
||||
- (string-upcase c-name)))
|
||||
+ (let ((c-name (first function))
|
||||
+ (guard (fourth function)))
|
||||
+ (when guard
|
||||
+ (format *coutput-stream* "# if ~A~%"
|
||||
+ (if (eq guard t)
|
||||
+ (format nil "defined(HAVE_~A)" (string-upcase c-name))
|
||||
+ guard)))
|
||||
(format *coutput-stream*
|
||||
" register_foreign_function((void*)&~A,~A,~D);~%"
|
||||
c-name (to-c-string c-name) (svref (second function) 3))
|
||||
- (when *foreign-guard* (format *coutput-stream* "# endif~%"))))
|
||||
+ (when guard (format *coutput-stream* "# endif~%"))))
|
||||
(maphash (lambda (type fun-vec)
|
||||
(declare (ignore type))
|
||||
(let ((c-name (to-c-name (car fun-vec))))
|
||||
@@ -1083,7 +1086,7 @@
|
||||
(defmacro DEF-CALL-OUT (&whole whole-form name &rest options)
|
||||
(setq name (check-symbol name (first whole-form)))
|
||||
(let* ((alist
|
||||
- (parse-options options '(:name :arguments :return-type :language
|
||||
+ (parse-options options '(:name :arguments :return-type :language :guard
|
||||
:built-in :library :version :documentation)
|
||||
whole-form))
|
||||
(def (gensym "DEF-CALL-OUT-"))
|
||||
@@ -1095,6 +1098,7 @@
|
||||
(version (second (assoc :version alist)))
|
||||
(c-name (foreign-name name (assoc :name alist)))
|
||||
(built-in (second (assoc :built-in alist)))
|
||||
+ (guard (get-assoc :guard alist '*foreign-guard*))
|
||||
;; Maximize sharing in .fas file, reuse options
|
||||
;; parse-c-function ignores unknown options, e.g. :name
|
||||
(ctype `(PARSE-C-FUNCTION ',options ',whole-form)))
|
||||
@@ -1102,7 +1106,7 @@
|
||||
',c-name ,ctype ',properties ,library ,version NIL)))
|
||||
(EXT:COMPILER-LET ((,def ,ctype))
|
||||
(EVAL-WHEN (COMPILE)
|
||||
- (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in)))
|
||||
+ (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in ,guard)))
|
||||
(SYSTEM::EVAL-WHEN-COMPILE
|
||||
(SYSTEM::C-DEFUN ',name (C-TYPE-TO-SIGNATURE ,ctype))))
|
||||
(WHEN ,def ; found library function
|
||||
@@ -1110,10 +1114,10 @@
|
||||
(SYSTEM::%PUTD ',name ,def))
|
||||
',name)))
|
||||
|
||||
-(defun note-c-fun (c-name ctype built-in) ; not ABI, compile-time only
|
||||
+(defun note-c-fun (c-name ctype built-in guard) ; not ABI, compile-time only
|
||||
(when (system::prepare-coutput-file)
|
||||
(prepare-module)
|
||||
- (push (list c-name ctype built-in)
|
||||
+ (push (list c-name ctype built-in guard)
|
||||
*function-list*)))
|
||||
|
||||
(defun count-inarguments (arg-vector)
|
||||
Reference in New Issue
Block a user