Applied, thanks for testing. On Thu, Oct 10, 2013 at 05:18:09PM +0800, harvey zh wrote: > Hello! > > 2013/10/10 Nicholas Marriott <[1]nicholas.marri...@gmail.com> > > Try this please. > > diff --git a/Makefile.am b/Makefile.am > index fb707df..690e466 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -238,6 +238,9 @@ endif > *if NO_CFMAKERAW > *nodist_tmux_SOURCES += compat/cfmakeraw.c > *endif > +if NO_OPENAT > +nodist_tmux_SOURCES += compat/openat.c > +endif > > *# Install tmux.1 in the right format. > *install-exec-hook: > diff --git a/compat.h b/compat.h > index b84ff40..ab3224b 100644 > --- a/compat.h > +++ b/compat.h > @@ -243,7 +243,13 @@ int * * * * * * * * unsetenv(const char *); > > *#ifndef HAVE_CFMAKERAW > */* cfmakeraw.c */ > -void * * * * * cfmakeraw(struct termios *tio); > +void * * * * * cfmakeraw(struct termios *); > +#endif > + > +#ifndef HAVE_OPENAT > +/* openat.c */ > +#define AT_FDCWD -100 > +int * * * * * *openat(int, const char *, int, ...); > *#endif > > *#ifdef HAVE_GETOPT > diff --git a/compat/openat.c b/compat/openat.c > new file mode 100644 > index 0000000..005235b > --- /dev/null > +++ b/compat/openat.c > @@ -0,0 +1,63 @@ > +/* $Id$ */ > + > +/* > + * Copyright (c) 2013 Nicholas Marriott <[2]n...@users.sourceforge.net> > + * > + * Permission to use, copy, modify, and distribute this software for > any > + * purpose with or without fee is hereby granted, provided that the > above > + * copyright notice and this permission notice appear in all copies. > + * > + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL > WARRANTIES > + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF > + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE > FOR > + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY > DAMAGES > + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, > WHETHER > + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, > ARISING > + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS > SOFTWARE. > + */ > + > +#include <errno.h> > +#include <fcntl.h> > +#include <stdarg.h> > +#include <unistd.h> > + > +#include "tmux.h" > + > +int > +openat(int fd, const char *path, int flags, ...) > +{ > + * * * mode_t *mode; > + * * * va_list ap; > + * * * int * * dotfd, retval, saved_errno; > + > + * * * if (flags & O_CREAT) { > + * * * * * * * va_start(ap, flags); > + * * * * * * * mode = va_arg(ap, mode_t); > + * * * * * * * va_end(ap); > + * * * } else > + * * * * * * * mode = 0; > + > + * * * dotfd = -1; > + * * * if (fd != AT_FDCWD) { > + * * * * * * * dotfd = open(".", O_RDONLY); > + * * * * * * * if (dotfd == -1) > + * * * * * * * * * * * return (-1); > + * * * * * * * if (fchdir(fd) != 0) > + * * * * * * * * * * * return (-1); > + * * * } > + > + * * * retval = open(path, flags, mode); > + > + * * * if (dotfd != -1) { > + * * * * * * * if (fchdir(dotfd) != 0) { > + * * * * * * * * * * * saved_errno = errno; > + * * * * * * * * * * * close(retval); > + * * * * * * * * * * * close(dotfd); > + * * * * * * * * * * * errno = saved_errno; > + * * * * * * * * * * * return (-1); > + * * * * * * * } > + * * * * * * * close(dotfd); > + * * * } > + > + * * * return (retval); > +} > diff --git a/[3]configure.ac b/[4]configure.ac > index 68c50fb..ceb37db 100644 > --- a/[5]configure.ac > +++ b/[6]configure.ac > @@ -323,6 +323,13 @@ if test "x$found_cfmakeraw" = xyes; then > *fi > *AM_CONDITIONAL(NO_CFMAKERAW, [test "x$found_cfmakeraw" = xno]) > > +# Look for openat, compat/openat.c used if missing. > +AC_CHECK_FUNC(openat, found_openat=yes, found_openat=no) > +if test "x$found_openat" = xyes; then > + * * * AC_DEFINE(HAVE_OPENAT) > +fi > +AM_CONDITIONAL(NO_OPENAT, [test "x$found_openat" = xno]) > + > *# Look for getopt. glibc's getopt does not enforce argument order and > the ways > *# of making it do so are stupid, so just use our own instead. > *AC_CHECK_FUNC(getopt, found_getopt=yes, found_getopt=no) > > Thanks.* > It works like a charm. > * > > On Thu, Oct 10, 2013 at 03:39:40PM +0800, harvey zh wrote: > > * *Hi, > > > > * *2013/10/10 Thomas Adam <[1][7]tho...@xteddy.org> > > > > * * *Hi, > > > > * * *Did you "make clean" first, and rerun autogen.sh and run > ./configure > > * * *etc? > > > > * *Yes. > > * *Here is the error log: > > * *$ rm -rf /Library/Caches/Homebrew/tmux--git > > * *$ brew upgrade --HEAD tmux > > * *==> Upgrading 1 outdated package, with result: > > * *tmux HEAD > > * *==> Upgrading tmux > > * *==> Cloning git://[2][8]git.code.sf.net/p/tmux/tmux-code > > * *Cloning into '/Library/Caches/Homebrew/tmux--git'... > > * *remote: Counting objects: 208, done. > > * *remote: Compressing objects: 100% (207/207), done. > > * *remote: Total 208 (delta 50), reused 24 (delta 0) > > * *Receiving objects: 100% (208/208), 501.19 KiB | 135.00 KiB/s, done. > > * *Resolving deltas: 100% (50/50), done. > > * *Checking connectivity... done > > * *==> sh autogen.sh > > * *==> ./configure --prefix=/usr/local/Cellar/tmux/HEAD > > * *--sysconfdir=/usr/local/etc > > * *==> make install > > * ** * * * * * * * cwd = AT_FDCWD; > > * ** * * * * * * * * * * ^ > > * *1 error generated. > > * *make: *** [cmd-load-buffer.o] Error 1 > > * *make: *** Waiting for unfinished jobs.... > > * *READ THIS: > [3][9]https://github.com/mxcl/homebrew/wiki/troubleshooting > > * ** > > > > * * *-- Thomas Adam > > * * *On 10 October 2013 08:18, harvey zh <[4][10]zh.jli...@gmail.com> > wrote: > > * * *> Hi > > * * *> > > * * *> The latest git version cann't be compiled on Mac OS X. > > * * *> $ brew install --HEAD tmux > > * * *> > > * * *> failed. > > * * *> > > * * *> When compiled manually, I get the following errors: > > * * *> > > * * *> cmd-load-buffer.c: In function *cmd_load_buffer_exec*: > > * * *> cmd-load-buffer.c:90: error: *AT_FDCWD* undeclared (first use > in this > > * * *> function) > > * * *> cmd-load-buffer.c:90: error: (Each undeclared identifier is > reported > > * * *only > > * * *> once > > * * *> cmd-load-buffer.c:90: error: for each function it appears in.) > > * * *> cmd-load-buffer.c:92: warning: implicit declaration of function > > * * **openat* > > * * *> cmd-load-buffer.c:92: warning: nested extern declaration of > *openat* > > * * *> make: *** [cmd-load-buffer.o] Error 1 > > * * *> > > * * *> > > * * *> $ uname -a > > * * *> Darwin harvey-pc.local 12.5.0 Darwin Kernel Version 12.5.0: Mon > Jul 29 > > * * *> 16:33:49 PDT 2013; root:xnu-2050.48.11~1/RELEASE_X86_64 x86_64 > > * * *> > > * * *> > > * * > > *------------------------------------------------------------------------------ > > * * *> October Webinars: Code for Performance > > * * *> Free Intel webinars can help you accelerate application > performance. > > * * *> Explore tips for MPI, OpenMP, advanced profiling, and more. Get > the > > * * *most > > * * *> from > > * * *> the latest Intel processors and coprocessors. See abstracts and > > * * *register > > > * * *> > > * * > > *[5][11]http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > > * * *> _______________________________________________ > > * * *> tmux-users mailing list > > * * *> [6][12]tmux-users@lists.sourceforge.net > > * * *> [7][13]https://lists.sourceforge.net/lists/listinfo/tmux-users > > * * *> > > > > References > > > > * *Visible links > > * *1. mailto:[14]tho...@xteddy.org > > * *2. [15]http://git.code.sf.net/p/tmux/tmux-code > > * *3. [16]https://github.com/mxcl/homebrew/wiki/troubleshooting > > * *4. mailto:[17]zh.jli...@gmail.com > > * *5. > > [18]http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > > * *6. mailto:[19]tmux-users@lists.sourceforge.net > > * *7. [20]https://lists.sourceforge.net/lists/listinfo/tmux-users > > > > > ------------------------------------------------------------------------------ > > October Webinars: Code for Performance > > Free Intel webinars can help you accelerate application performance. > > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the > most from > > the latest Intel processors and coprocessors. See abstracts and > register > > > > > [21]http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > > > _______________________________________________ > > tmux-users mailing list > > [22]tmux-users@lists.sourceforge.net > > [23]https://lists.sourceforge.net/lists/listinfo/tmux-users > > References > > Visible links > 1. mailto:nicholas.marri...@gmail.com > 2. mailto:n...@users.sourceforge.net > 3. http://configure.ac/ > 4. http://configure.ac/ > 5. http://configure.ac/ > 6. http://configure.ac/ > 7. mailto:tho...@xteddy.org > 8. http://git.code.sf.net/p/tmux/tmux-code > 9. https://github.com/mxcl/homebrew/wiki/troubleshooting > 10. mailto:zh.jli...@gmail.com > 11. > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > 12. mailto:tmux-users@lists.sourceforge.net > 13. https://lists.sourceforge.net/lists/listinfo/tmux-users > 14. mailto:tho...@xteddy.org > 15. http://git.code.sf.net/p/tmux/tmux-code > 16. https://github.com/mxcl/homebrew/wiki/troubleshooting > 17. mailto:zh.jli...@gmail.com > 18. > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > 19. mailto:tmux-users@lists.sourceforge.net > 20. https://lists.sourceforge.net/lists/listinfo/tmux-users > 21. > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk > 22. mailto:tmux-users@lists.sourceforge.net > 23. https://lists.sourceforge.net/lists/listinfo/tmux-users
------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users