From ad9c7348b59fe131ef2771e720e6ac1ca60874fc Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 26 May 2000 09:47:27 +0000 Subject: 11587: Felix Rosencrantz: Src/pattern.c: uninitialised variable 11590: various cygwin fixes --- ChangeLog | 10 ++++++++++ Config/defs.mk.in | 21 +++++++++++++++++++-- Etc/MACHINES | 10 ++++++++++ Src/Makefile.in | 20 ++++++++++---------- Src/Modules/mathfunc.c | 26 +++++++++++--------------- Src/Modules/zftp.c | 12 +++++++++++- Src/pattern.c | 2 +- configure.in | 8 ++++++-- 8 files changed, 78 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index acdbd9b18..9ae973d33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2000-05-26 Peter Stephenson + + * 11590: configure.in, Config/defs.mk.in, Etc/MACHINES, + Src/Makefile.in, Src/Modules/mathfunc.c, Src/Modules/zftp.c: + Various Cygwin fixes: compilation glitches in zsh/mathfunc and + zsh/zftp; installation didn't handle .exe extension properly; + installation note. + + * 11587: Felix Rosencrantz: Src/pattern.c: uninitialised variable. + 2000-05-26 Sven Wischnowsky * 11566: Src/Zle/zle_main.c: disable vared if zle is not enabled diff --git a/Config/defs.mk.in b/Config/defs.mk.in index 3394123d5..e586cea18 100644 --- a/Config/defs.mk.in +++ b/Config/defs.mk.in @@ -27,15 +27,23 @@ # fundamentals SHELL = /bin/sh @SET_MAKE@ +EXEEXT = @EXEEXT@ + +# install basename +tzsh = @tzsh@ # installation directories prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ -MODDIR = $(libdir)/zsh/$(VERSION) +MODDIR = $(libdir)/$(tzsh)/$(VERSION) infodir = @infodir@ mandir = @mandir@ +datadir = @datadir@ +fndir = @fndir@ +sitefndir = @sitefndir@ +htmldir = $(datadir)/$(tzsh)/htmldoc # compilation CC = @CC@ @@ -55,6 +63,9 @@ DLLD = @DLLD@ EXPOPT = @EXPOPT@ IMPOPT = @IMPOPT@ +# choose modules not to compile and install +OMIT_MODULES = @OMIT_MODULES@ + # utilities AWK = @AWK@ YODL = @YODL@ @@ -65,16 +76,22 @@ YODL2HTML = $(YODL)2html INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +# variables used in determining what to install +FUNCTIONS_INSTALL = @FUNCTIONS_INSTALL@ +FUNCTIONS_SUBDIRS = @FUNCTIONS_SUBDIRS@ + # flags passed to recursive makes in subdirectories MAKEDEFS = \ prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \ libdir='$(libdir)' MODDIR='$(MODDIR)' infodir='$(infodir)' mandir='$(mandir)' \ +datadir='$(datadir)' fndir='$(fndir)' htmldir='$(htmldir)' \ CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' CFLAGS='$(CFLAGS)' \ LDFLAGS='$(LDFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' \ DLCFLAGS='$(DLCFLAGS)' DLLDFLAGS='$(DLLDFLAGS)' \ LIBLDFLAGS='$(LIBLDFLAGS)' EXELDFLAGS='$(EXELDFLAGS)' \ LIBS='$(LIBS)' DL_EXT='$(DL_EXT)' DLLD='$(DLLD)' \ -AWK='$(AWK)' YODL='$(YODL)' YODL2TXT='$(YODL2TXT)' YODL2HTML='$(YODL2HTML)' +AWK='$(AWK)' YODL='$(YODL)' YODL2TXT='$(YODL2TXT)' YODL2HTML='$(YODL2HTML)' \ +FUNCTIONS_INSTALL='$(FUNCTIONS_INSTALL)' tzsh='$(tzsh)' # override built-in suffix list .SUFFIXES: diff --git a/Etc/MACHINES b/Etc/MACHINES index 7ed72c4bd..c61176aa5 100644 --- a/Etc/MACHINES +++ b/Etc/MACHINES @@ -25,6 +25,16 @@ Apple/NeXT OpenStep 4.2 for i386. Cray: Unicos (C90 and T90) Should build `out-of-the-box'. +Cygnus Solutions: Cygwin on Intel + Should build `out-of-the-box'. The compilation directory should + be on a file system mounted as binary (the mount command shows + `binmode'). + + Dynamic loading does not work (this is automatically detected), + though libraries not compiled by default will work (see the file + INSTALL for how to add these to the base executable). In + particular zsh/zftp and zsh/mathfunc are known to work. + Data General: DG/UX 5.4R3.10 MU01 (various AViiONs) Should build `out-of-the-box'. diff --git a/Src/Makefile.in b/Src/Makefile.in index 22b983c1b..bc6d29e10 100644 --- a/Src/Makefile.in +++ b/Src/Makefile.in @@ -50,7 +50,7 @@ DLLINK = $(DLLD) $(LDFLAGS) $(LIBLDFLAGS) $(DLLDFLAGS) -o $@ all: bin modules .PHONY: all -bin: zsh +bin: zsh$(EXEEXT) .PHONY: bin modules: headers @@ -74,7 +74,7 @@ NNTRYOBJ = LDRUNPATH = LD_RUN_PATH=$(libdir)/$(tzsh) NDRUNPATH = -zsh: $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export +zsh$(EXEEXT): $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export rm -f $@ $(@L@DRUNPATH) $(LINK) $(MAIN_OBJS) $(@L@LIST) $(ZSH_@E@XPORT) $(@L@IBZSH) $(LIBS) @@ -176,16 +176,16 @@ uninstall.bin: uninstall.bin-here .PHONY: install.bin uninstall.bin # install binary, creating install directory if necessary -install.bin-here: zsh install.bin-@L@ +install.bin-here: zsh$(EXEEXT) install.bin-@L@ $(sdir_top)/mkinstalldirs $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) $(STRIPFLAGS) zsh $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) - if test -f $(DESTDIR)$(bindir)/$(tzsh); then \ + $(INSTALL_PROGRAM) $(STRIPFLAGS) zsh$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)$(EXEEXT) + if test -f $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT); then \ rm -f $(DESTDIR)$(bindir)/$(tzsh).old; \ - $(LN) $(DESTDIR)$(bindir)/$(tzsh) $(DESTDIR)$(bindir)/$(tzsh).old; \ + $(LN) $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh).old; \ else :; fi rm -f $(DESTDIR)$(bindir)/$(tzsh).new - $(LN) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh).new - mv $(DESTDIR)$(bindir)/$(tzsh).new $(DESTDIR)$(bindir)/$(tzsh) + $(LN) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh).new + mv $(DESTDIR)$(bindir)/$(tzsh).new $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT) .PHONY: install.bin-here install.bin-N: @@ -196,7 +196,7 @@ install.bin-L: $(LIBZSH) # uninstall binary uninstall.bin-here: uninstall.bin-@L@ - rm -f $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh) + rm -f $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT) .PHONY: uninstall.bin-here uninstall.bin-@L@ uninstall.bin-N: @@ -215,7 +215,7 @@ mostlyclean-here: .PHONY: mostlyclean-here clean-here: - rm -f modules.index.tmp modules.stamp zsh ansi2knr.o ansi2knr + rm -f modules.index.tmp modules.stamp zsh$(EXEEXT) ansi2knr.o ansi2knr rm -f modules.index modules-bltin rm -f libzsh-*.$(DL_EXT) .PHONY: clean-here diff --git a/Src/Modules/mathfunc.c b/Src/Modules/mathfunc.c index 770894ce8..5ba7b557a 100644 --- a/Src/Modules/mathfunc.c +++ b/Src/Modules/mathfunc.c @@ -45,7 +45,6 @@ MF_CEIL, MF_COPYSIGN, MF_COS, MF_COSH, -MF_DREM, MF_ERF, MF_ERFC, MF_EXP, @@ -70,7 +69,9 @@ MF_LOGB, MF_NEXTAFTER, MF_RINT, MF_SCALB, +#ifdef HAVE_SIGNGAM MF_SIGNGAM, +#endif MF_SIN, MF_SINH, MF_SQRT, @@ -78,7 +79,7 @@ MF_TAN, MF_TANH, MF_Y0, MF_Y1, -MF_YN, +MF_YN }; /* @@ -131,7 +132,6 @@ static struct mathfunc mftab[] = { NUMMATHFUNC("copysign", math_func, 2, 2, MF_COPYSIGN), NUMMATHFUNC("cos", math_func, 1, 1, MF_COS), NUMMATHFUNC("cosh", math_func, 1, 1, MF_COSH), - NUMMATHFUNC("drem", math_func, 2, 2, MF_DREM), NUMMATHFUNC("erf", math_func, 1, 1, MF_ERF), NUMMATHFUNC("erfc", math_func, 1, 1, MF_ERFC), NUMMATHFUNC("exp", math_func, 1, 1, MF_EXP), @@ -157,7 +157,9 @@ static struct mathfunc mftab[] = { NUMMATHFUNC("nextafter", math_func, 2, 2, MF_NEXTAFTER), NUMMATHFUNC("rint", math_func, 1, 1, MF_RINT), NUMMATHFUNC("scalb", math_func, 2, 2, MF_SCALB | TFLAG(TF_INT2)), +#ifdef HAVE_SIGNGAM NUMMATHFUNC("signgam", math_func, 0, 0, MF_SIGNGAM | TFLAG(TF_NOASS)), +#endif NUMMATHFUNC("sin", math_func, 1, 1, MF_SIN), NUMMATHFUNC("sinh", math_func, 1, 1, MF_SINH), NUMMATHFUNC("sqrt", math_func, 1, 1, MF_SQRT | BFLAG(BF_NONNEG)), @@ -296,10 +298,6 @@ math_func(char *name, int argc, mnumber *argv, int id) retd = cosh(argd); break; - case MF_DREM: - retd = drem(argd, argd2); - break; - case MF_ERF: retd = erf(argd); break; @@ -398,10 +396,12 @@ math_func(char *name, int argc, mnumber *argv, int id) retd = scalb(argd, argi); break; +#ifdef HAVE_SIGNGAM case MF_SIGNGAM: ret.type = MN_INTEGER; ret.u.l = signgam; break; +#endif case MF_SIN: retd = sin(argd); @@ -450,23 +450,21 @@ math_func(char *name, int argc, mnumber *argv, int id) /**/ int -setup_mathfunc(Module m) +setup_(Module m) { return 0; } /**/ int -boot_mathfunc(Module m) +boot_(Module m) { return !addmathfuncs(m->nam, mftab, sizeof(mftab)/sizeof(*mftab)); } -#ifdef MODULE - /**/ int -cleanup_mathfunc(Module m) +cleanup_(Module m) { deletemathfuncs(m->nam, mftab, sizeof(mftab)/sizeof(*mftab)); return 0; @@ -474,9 +472,7 @@ cleanup_mathfunc(Module m) /**/ int -finish_mathfunc(Module m) +finish_(Module m) { return 0; } - -#endif diff --git a/Src/Modules/zftp.c b/Src/Modules/zftp.c index 1aa527953..33632fcda 100644 --- a/Src/Modules/zftp.c +++ b/Src/Modules/zftp.c @@ -50,10 +50,20 @@ union zftp_sockaddr; struct zftp_session; typedef struct zftp_session *Zftp_session; +/* + * We need to include the zsh headers later to avoid clashes with + * the definitions on some systems, however we need the configuration + * file to decide whether we can include netinet/in_systm.h, which + * doesn't exist on cygwin. + */ +#include "../../config.h" + #include #include #include -#include +#ifdef HAVE_NETINET_IN_SYSTM_H +# include +#endif #include #include #include diff --git a/Src/pattern.c b/Src/pattern.c index d0241dd12..1ebcfd401 100644 --- a/Src/pattern.c +++ b/Src/pattern.c @@ -631,7 +631,7 @@ static long patcompbranch(int *flagp) { long chain, latest, starter; - int flags; + int flags = 0; *flagp = P_PURESTR; diff --git a/configure.in b/configure.in index 802411335..f4de01060 100644 --- a/configure.in +++ b/configure.in @@ -367,6 +367,9 @@ AC_PROG_CPP dnl Figure out how to run C preprocessor. AC_PROG_GCC_TRADITIONAL dnl Do we need -traditional flag for gcc. AC_C_CONST dnl Does compiler support `const'. +AC_CYGWIN dnl Check for cygwin environment +AC_EXEEXT dnl Check for executable extension, e.g. .exe + fp_PROG_CC_STDC AC_MSG_CHECKING([whether to use prototypes]) if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then @@ -444,7 +447,7 @@ AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \ limits.h fcntl.h libc.h sys/utsname.h sys/resource.h \ locale.h errno.h stdlib.h unistd.h sys/capability.h \ utmp.h utmpx.h sys/types.h pwd.h grp.h poll.h sys/mman.h \ - linux/tasks.h) + linux/tasks.h netinet/in_systm.h) if test $dynamic = yes; then AC_CHECK_HEADERS(dlfcn.h) AC_CHECK_HEADERS(dl.h) @@ -838,7 +841,8 @@ AC_CHECK_FUNCS(strftime difftime gettimeofday \ cap_get_proc \ getrlimit \ setlocale \ - uname) + uname \ + signgam) AC_FUNC_STRCOLL if test $ac_cv_func_setpgrp = yes; then -- cgit 1.4.1