summaryrefslogtreecommitdiff
path: root/shells
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>2003-01-11 23:45:20 +0000
committerPeter Wemm <peter@FreeBSD.org>2003-01-11 23:45:20 +0000
commitec2320a569b9f09303abfa7f1235ce572a994189 (patch)
treeb63710bc4bae6b66aded9ccb23b53b38f44071d7 /shells
parentUse cdparanoia as default ripper in audio/abcde (diff)
Make zsh not segfault on ia64 due to a generic misconfiguration that
just happens to be fatal there, and a coding botch. The first problem is that it assumes a termcap interface (which is an emulation on freebsd), and provides its own terminfo wrappers around termcap.. so that's two avoidable translation layers... termcap file -> terminfo (libncurses) -> termcap API emulation (libncurses) -> terminfo (zsh emlulation). zsh forgot to prototype the tiget* functions (which return pointers) so we have an integer (implicit declaration) being cast to a pointer which is fatal. The second problem is that zsh tries to use _mktemp() to get around the __warn_references in our C library, but also neglects a prototype there and has the same fatal int/pointer problem. It is likely all the zsh* ports need these fixes. A test compile on pluto1.freebsd.org will highlight the problem. I do not know why the packaging fails for ia64. termcap.so and terminfo.so are not being built for some reason, this change doesn't solve that problem.
Notes
Notes: svn path=/head/; revision=72926
Diffstat (limited to 'shells')
-rw-r--r--shells/zsh/Makefile2
-rw-r--r--shells/zsh/files/patch-Src::utils.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/shells/zsh/Makefile b/shells/zsh/Makefile
index 241ae461623d..62778c2df5de 100644
--- a/shells/zsh/Makefile
+++ b/shells/zsh/Makefile
@@ -32,7 +32,7 @@ ZSH_VER= ${PORTVERSION}
ZSHFUNC_SUBDIR= share/zsh/${ZSH_VER}/functions
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-zsh-mem --enable-zsh-secure-free --enable-dynamic \
- --enable-maildir-support
+ --enable-maildir-support --with-curses-terminfo
.if !defined(NOPORTDOCS)
INSTALL_TARGET= install install.html
diff --git a/shells/zsh/files/patch-Src::utils.c b/shells/zsh/files/patch-Src::utils.c
new file mode 100644
index 000000000000..189d6392231c
--- /dev/null
+++ b/shells/zsh/files/patch-Src::utils.c
@@ -0,0 +1,8 @@
+--- Src/utils.c.orig Wed Dec 4 19:39:01 2002
++++ Src/utils.c Wed Dec 4 19:39:18 2002
+@@ -1093,4 +1093,5 @@
+ * is unique, for use as a temporary file. */
+
++extern char *_mktemp(char *);
+ /**/
+ mod_export char *