aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-01-12 07:45:20 +0800
committerpeter <peter@FreeBSD.org>2003-01-12 07:45:20 +0800
commitf437c815c33a935f1c225097286b7d30d6fced40 (patch)
tree62d70ee19c258f152b6717b3a815de3860c1a3b4
parent0a3c1b6304663615b60d9424c673e8bb5476a7d1 (diff)
downloadfreebsd-ports-graphics-f437c815c33a935f1c225097286b7d30d6fced40.tar.gz
freebsd-ports-graphics-f437c815c33a935f1c225097286b7d30d6fced40.tar.zst
freebsd-ports-graphics-f437c815c33a935f1c225097286b7d30d6fced40.zip
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.
-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 241ae461623..62778c2df5d 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 00000000000..189d6392231
--- /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 *