public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-lisp/clisp/files/, dev-lisp/clisp/
@ 2016-10-02  3:39 Andrey Grozin
  0 siblings, 0 replies; 2+ messages in thread
From: Andrey Grozin @ 2016-10-02  3:39 UTC (permalink / raw
  To: gentoo-commits

commit:     beb52002a3f12695af63071a74b52736eea5fe1c
Author:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
AuthorDate: Sun Oct  2 03:38:44 2016 +0000
Commit:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
CommitDate: Sun Oct  2 03:38:44 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=beb52002

dev-lisp/clisp: 2.49-r9 for readline-7

Bug: 595624

Package-Manager: portage-2.3.0

 dev-lisp/clisp/clisp-2.49-r9.ebuild              | 147 +++++++++++++++++++++++
 dev-lisp/clisp/files/clisp-2.49-readline-7.patch |  10 ++
 2 files changed, 157 insertions(+)

diff --git a/dev-lisp/clisp/clisp-2.49-r9.ebuild b/dev-lisp/clisp/clisp-2.49-r9.ebuild
new file mode 100644
index 00000000..937eae5
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49-r9.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="http://clisp.sourceforge.net/"
+SRC_URI="mirror://sourceforge/clisp/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2/${PF}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk pari +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 )
+		 pari? ( <sci-mathematics/pari-2.5.0 )
+		 postgres? ( >=dev-db/postgresql-8.0 )
+		 readline? ( >=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-misc/imake x11-proto/xextproto )"
+
+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
+	# bug #594552
+	epatch "${FILESDIR}"/${P}-readline-7.patch
+}
+
+src_configure() {
+	# 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 pari && enable_modules pari
+	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
+	# stripping them removes common symbols (defined but uninitialised variables)
+	# which are then needed to build modules...
+	export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*"
+	popd
+	dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
+	dodoc doc/{CLOS-guide,LISP-tutorial}.txt
+}

diff --git a/dev-lisp/clisp/files/clisp-2.49-readline-7.patch b/dev-lisp/clisp/files/clisp-2.49-readline-7.patch
new file mode 100644
index 00000000..0be5bd8
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49-readline-7.patch
@@ -0,0 +1,10 @@
+diff -r -U2 clisp-2.49.orig/modules/readline/readline.lisp clisp-2.49/modules/readline/readline.lisp
+--- clisp-2.49.orig/modules/readline/readline.lisp	2010-01-07 04:18:03.000000000 +0600
++++ clisp-2.49/modules/readline/readline.lisp	2016-09-29 22:23:53.837631568 +0700
+@@ -425,5 +425,5 @@
+ (def-c-var gnu-readline-p (:name "rl_gnu_readline_p") (:type int)
+   (:documentation "True if this is real GNU readline."))
+-(def-c-var readline-state (:name "rl_readline_state") (:type int)
++(def-c-var readline-state (:name "rl_readline_state") (:type ulong)
+   (:documentation "Flags word encapsulating the current readline state."))
+ (def-c-var editing-mode (:name "rl_editing_mode") (:type int)


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-lisp/clisp/files/, dev-lisp/clisp/
@ 2018-02-12 20:37 Andrey Grozin
  0 siblings, 0 replies; 2+ messages in thread
From: Andrey Grozin @ 2018-02-12 20:37 UTC (permalink / raw
  To: gentoo-commits

commit:     d1ba0277d56eb0b836fa0c1e687e59993bc8a023
Author:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 12 20:37:04 2018 +0000
Commit:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
CommitDate: Mon Feb 12 20:37:04 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1ba0277

dev-lisp/clisp: bump to 2.49.90

Package-Manager: Portage-2.3.19, Repoman-2.3.6

 dev-lisp/clisp/Manifest                            |   1 +
 dev-lisp/clisp/clisp-2.49.90.ebuild                | 143 ++++++++++++++++
 .../clisp-2.49.90-after_glibc_cfree_bdb.patch      | 185 +++++++++++++++++++++
 3 files changed, 329 insertions(+)

diff --git a/dev-lisp/clisp/Manifest b/dev-lisp/clisp/Manifest
index 4b0e12dda85..7c0c8d6ab64 100644
--- a/dev-lisp/clisp/Manifest
+++ b/dev-lisp/clisp/Manifest
@@ -1,3 +1,4 @@
 DIST clisp-2.48.tar.bz2 7885098 BLAKE2B 42ebfe4721015f522184bce710bf95d79aa7f2a239410af249a8e85d80f140344ec80daaa34f7cdbfd2ae86407984657163ce3f6e4201eb132f7c71e21523cba SHA512 3288b6a2973c924006b14bbed1e8e3e688276a187ac2a6c7851dc7ae699e7832d30e5e7eecdabc76c08c7e8e8ce1b562eb97a44570d3035e558ea2310de2b719
 DIST clisp-2.49.60.tar.bz2 8745713 BLAKE2B 5dffd594c6d00c2057a98e3f93c888cd5cdc60009cd8fc987e39ff5182e71e575e148839d9c973fbfd0842b82ddf1b5918e86d128d9c79f6d0d4b6afcdc5853f SHA512 656cd59a23ba9be5304a6e0d64d79ac518072c431820b8cf95759fa8f3a66e2efe4d07939315b93e5e06b6e5348d8b32739b129a9e8ac0dc362dd5d1f1eb8aa8
+DIST clisp-2.49.90.tar.bz2 8921458 BLAKE2B 3be7cfe41038f42d8844d500877fa5c20e5c21dc0e162aa0018b297e4dfcd5374ef608793c9d809852e1f9885a155bb5b25fef8efe66016dd0ee400007386b70 SHA512 1fa7205e38883dcc863160b5418ddaaa2c45ee2d2f936de4067d1ea4a1e5043bf1235361bbbfc366afd6d8f1144497ccdccf1767ecf327f7a672b18742ceb651
 DIST clisp-2.49.tar.bz2 8091011 BLAKE2B e034c581b8100837b34d0adf1ef45bd667272d062945875175958178b4ef5b11e899dfb76505eb8cb51fca6101c11a9f21fb2cc9a78a3c0f82b06166211434f7 SHA512 eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81

diff --git a/dev-lisp/clisp/clisp-2.49.90.ebuild b/dev-lisp/clisp/clisp-2.49.90.ebuild
new file mode 100644
index 00000000000..e1167a08a89
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49.90.ebuild
@@ -0,0 +1,143 @@
+# 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
+
+DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="http://clisp.sourceforge.net/"
+SRC_URI="https://haible.de/bruno/gnu/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2/8"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk pari +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 )
+		 pari? ( <sci-mathematics/pari-2.5.0 )
+		 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-misc/imake x11-proto/xextproto )"
+
+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
+}
+
+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/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 pari && enable_modules pari
+	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 --enable-portability \
+		  --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}" || die
+	# 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
+	# stripping them removes common symbols (defined but uninitialised variables)
+	# which are then needed to build modules...
+	export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*"
+	popd
+	dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
+	dodoc doc/{CLOS-guide,LISP-tutorial}.txt
+}

diff --git a/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch
new file mode 100644
index 00000000000..ae83bbb8770
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch
@@ -0,0 +1,185 @@
+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)


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-02-12 20:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-12 20:37 [gentoo-commits] repo/gentoo:master commit in: dev-lisp/clisp/files/, dev-lisp/clisp/ Andrey Grozin
  -- strict thread matches above, loose matches on Subject: below --
2016-10-02  3:39 Andrey Grozin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox