TL;DR False alarm. Nothing to do with tmux.

The issue with fparseln being implicitly declared because util.h was not being 
included at compile time is an issue with the build environment on one 
particular machine.  A clean install of Sierra doesn’t exhibit this issue.

I’ve started a thread on the Apple support communities 
(https://discussions.apple.com/message/32369134#32369134 
<https://discussions.apple.com/message/32369134#32369134>) to discuss this 
issue as I still have another machine that exhibits the same issue that I’m 
hoping to resolve without wiping and reinstalling the OS.

Thanks for the assistance.
-Jason

-- 
Jason White
[email protected]
"The single biggest problem in communication is the illusion that it has taken 
place." - George Bernard Shaw

> On Oct 7, 2017, at 10:21 AM, Nicholas Marriott <[email protected]> 
> wrote:
> 
> 
> Hmm well we should be including util.h via compat.h. Although I notice
> we only do so if the platform has forkpty... maybe that is a problem,
> try this:
> 
> diff --git a/compat.h b/compat.h
> index e06f104d..b83e6189 100644
> --- a/compat.h
> +++ b/compat.h
> @@ -101,17 +101,17 @@ void    warnx(const char *, ...);
> #include <paths.h>
> #endif
> 
> -#ifdef HAVE_FORKPTY
> #ifdef HAVE_LIBUTIL_H
> #include <libutil.h>
> #endif
> +
> #ifdef HAVE_PTY_H
> #include <pty.h>
> #endif
> +
> #ifdef HAVE_UTIL_H
> #include <util.h>
> #endif
> -#endif
> 
> #ifdef HAVE_VIS
> #include <vis.h>
> 
> Or you could have a look at util.h and see if fparseln is under some
> stupid #ifdef?
> 
> 
> 
> On Sat, Oct 07, 2017 at 10:10:09AM -0500, Jason White wrote:
>>   Some additional information, and another mystery:
>>   While compiling tmux-2.6/cfg.c I get these warnings:
>>   cfg.c:126:16: warning: implicit declaration of function 'fparseln' is
>>   invalid in
>>         C99 [-Wimplicit-function-declaration]
>>           while ((buf = fparseln(f, NULL, &line, delim, 0)) != NULL) {
>>                         ^
>>   cfg.c:126:14: warning: incompatible integer to pointer conversion
>>   assigning to
>>         'char *' from 'int' [-Wint-conversion]
>>           while ((buf = fparseln(f, NULL, &line, delim, 0)) != NULL) {
>>                       ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>   Regarding the implicit declaration warning, I noticed that the macOS man
>>   page for fparseln() indicates that one needs to include util.h, which is
>>   absent from cfg.c, so I added it.  Odd thing is that the warning did not
>>   go away.
>>   However, if I take out including util.h and add the function prototype
>>   from util.h then that eliminates both warnings and tmux does not segfault
>>   when starting a server.
>>   char   *fparseln(FILE *, size_t *, size_t *, const char[3], int);
>>   -Jason
>> 
>>     On Oct 5, 2017, at 3:03 PM, Jason White <[email protected]> wrote:
>>     That does resolve the issue for me on 2.6. I'm not sure what, precisely,
>>     changed or when, but:
>>     On macOS 10.11.6/Xcode 7.3.1 I do not have this issue with 2.5.
>>     On macOS 10.12.6/Xcode 9 it doesn't work out of the box with at least
>>     2.5 or 2.6.
>>     Both environments have fparseln as part of libc.
>>     FPARSELN(3)              BSD Library Functions Manual            
>>      FPARSELN(3)
>>     NAME
>>          fparseln -- return the next logical line from a stream
>>     LIBRARY
>>          Standard C Library (libc, -lc)
>>     SYNOPSIS
>>          #include <stdio.h>
>>          #include <util.h>
>>          char *
>>          fparseln(FILE *stream, size_t *len, size_t *lineno, const char
>>     delim[3], int flags);
>>     -Jason
>> 
>>       On Oct 5, 2017, at 11:45 AM, Nicholas Marriott
>>       <[email protected]> wrote:
>> 
>>       This seems most likely to be a bug in fparseln on your platform, does
>>       it
>>       work if you do this (you will need to run sh autogen.sh again before
>>       configure):
>> 
>>       diff --git a/configure.ac b/configure.ac
>>       index 83c104c3..15820a14 100644
>>       --- a/configure.ac
>>       +++ b/configure.ac
>>       @@ -457,6 +457,7 @@ fi
>> 
>>       # Look for fparseln in libutil.
>>       AC_SEARCH_LIBS(fparseln, util, found_fparseln=yes, found_fparseln=no)
>>       +found_fparseln=no
>>       if test "x$found_fparseln" = xyes; then
>>       AC_DEFINE(HAVE_FPARSELN)
>>       else
>> 
>>       On Thu, Oct 05, 2017 at 10:48:54AM -0500, Jason White wrote:
>> 
>>           I've had this issue on Darwin for a while now, but only recently
>>         started
>>           digging in to it.
>>           My environment: macOS 10.12.6, Xcode 9, libevent-2.1.8, tmux-2.6
>>         (same
>>           issue with 2.5).
>>           Issue: if I start tmux (as root or otherwise), I get a "lost
>>         server"
>>           message.
>>           If I start with "tmux -f /dev/null" it stars fine. When I "source
>>           ~/.tmux.conf", then "lost server".
>>           If I create a file with a single hash "#" character in it and use
>>         that for
>>           my config file it also crashes with "lost server", so server falls
>>         over
>>           reading any config file.
>>           Client/server debug logs:
>>           # cat tmux-server-36281.log
>>           1507217486.996408 server started (36281): version 2.6, socket
>>           /private/tmp/tmux-0/default, protocol 8
>>           1507217486.996427 on Darwin 16.7.0 Darwin Kernel Version 16.7.0:
>>         Thu Jun
>>           15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64;
>>         libevent
>>           2.1.8-stable (select)
>>           1507217486.997625 add peer 0x7fee9781e200: 8 (0x7fee9781d800)
>>           1507217486.997642 new client 0x7fee9781d800
>>           1507217486.997683 loading /etc/tmux.conf
>>           1507217486.997697 loading /Users/jdwhite/.tmux.conf
>>           # cat tmux-client-36279.log
>>           1507217486.994835 client started (36279): version 2.6, socket
>>           /private/tmp/tmux-0/default, protocol 8
>>           1507217486.994860 on Darwin 16.7.0 Darwin Kernel Version 16.7.0:
>>         Thu Jun
>>           15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64;
>>         libevent
>>           2.1.8-stable (select)
>>           1507217486.994887 socket is /private/tmp/tmux-0/default
>>           1507217486.994899 trying connect
>>           1507217486.994915 connect failed: Connection refused
>>           1507217486.995191 lock file is /private/tmp/tmux-0/default.lock
>>           1507217486.995310 flock succeeded
>>           1507217486.995314 got lock (6)
>>           1507217486.995318 trying connect
>>           1507217486.995323 connect failed: Connection refused
>>           1507217486.995606 add peer 0x7fee98001800: 7 (0x0)
>>           1507217486.996815 sending message 100 to peer 0x7fee98001800 (4
>>         bytes)
>>           1507217486.996827 sending message 101 to peer 0x7fee98001800 (12
>>         bytes)
>>           1507217486.996830 sending message 102 to peer 0x7fee98001800 (13
>>         bytes)
>>           1507217486.996833 sending message 108 to peer 0x7fee98001800 (18
>>         bytes)
>>           1507217486.996841 sending message 104 to peer 0x7fee98001800 (0
>>         bytes)
>>           1507217486.996843 sending message 107 to peer 0x7fee98001800 (4
>>         bytes)
>>           1507217486.996846 sending message 105 to peer 0x7fee98001800 (24
>>         bytes)
>>           1507217486.996849 sending message 105 to peer 0x7fee98001800 (16
>>         bytes)
>>           1507217486.996851 sending message 105 to peer 0x7fee98001800 (17
>>         bytes)
>>           1507217486.996854 sending message 105 to peer 0x7fee98001800 (16
>>         bytes)
>>           1507217486.996856 sending message 105 to peer 0x7fee98001800 (41
>>         bytes)
>>           1507217486.996859 sending message 105 to peer 0x7fee98001800 (38
>>         bytes)
>>           1507217486.996861 sending message 105 to peer 0x7fee98001800 (16
>>         bytes)
>>           1507217486.996864 sending message 105 to peer 0x7fee98001800 (19
>>         bytes)
>>           1507217486.996867 sending message 105 to peer 0x7fee98001800 (14
>>         bytes)
>>           1507217486.996869 sending message 105 to peer 0x7fee98001800 (10
>>         bytes)
>>           1507217486.996872 sending message 105 to peer 0x7fee98001800 (18
>>         bytes)
>>           1507217486.996874 sending message 105 to peer 0x7fee98001800 (13
>>         bytes)
>>           1507217486.996877 sending message 105 to peer 0x7fee98001800 (66
>>         bytes)
>>           1507217486.996879 sending message 105 to peer 0x7fee98001800 (38
>>         bytes)
>>           1507217486.996882 sending message 105 to peer 0x7fee98001800 (14
>>         bytes)
>>           1507217486.996885 sending message 105 to peer 0x7fee98001800 (11
>>         bytes)
>>           1507217486.996887 sending message 105 to peer 0x7fee98001800 (13
>>         bytes)
>>           1507217486.996890 sending message 105 to peer 0x7fee98001800 (8
>>         bytes)
>>           1507217486.996892 sending message 105 to peer 0x7fee98001800 (20
>>         bytes)
>>           1507217486.996895 sending message 105 to peer 0x7fee98001800 (259
>>         bytes)
>>           1507217486.996898 sending message 105 to peer 0x7fee98001800 (13
>>         bytes)
>>           1507217486.996900 sending message 105 to peer 0x7fee98001800 (22
>>         bytes)
>>           1507217486.996903 sending message 105 to peer 0x7fee98001800 (12
>>         bytes)
>>           1507217486.996905 sending message 105 to peer 0x7fee98001800 (17
>>         bytes)
>>           1507217486.996908 sending message 105 to peer 0x7fee98001800 (30
>>         bytes)
>>           1507217486.996911 sending message 105 to peer 0x7fee98001800 (193
>>         bytes)
>>           1507217486.996913 sending message 105 to peer 0x7fee98001800 (23
>>         bytes)
>>           1507217486.996916 sending message 105 to peer 0x7fee98001800 (8
>>         bytes)
>>           1507217486.996918 sending message 105 to peer 0x7fee98001800 (23
>>         bytes)
>>           1507217486.996921 sending message 105 to peer 0x7fee98001800 (15
>>         bytes)
>>           1507217486.996923 sending message 105 to peer 0x7fee98001800 (20
>>         bytes)
>>           1507217486.996926 sending message 105 to peer 0x7fee98001800 (26
>>         bytes)
>>           1507217486.996929 sending message 105 to peer 0x7fee98001800 (41
>>         bytes)
>>           1507217486.996931 sending message 105 to peer 0x7fee98001800 (122
>>         bytes)
>>           1507217486.996934 sending message 105 to peer 0x7fee98001800 (13
>>         bytes)
>>           1507217486.996936 sending message 105 to peer 0x7fee98001800 (12
>>         bytes)
>>           1507217486.996939 sending message 105 to peer 0x7fee98001800 (30
>>         bytes)
>>           1507217486.996941 sending message 105 to peer 0x7fee98001800 (13
>>         bytes)
>>           1507217486.996944 sending message 105 to peer 0x7fee98001800 (12
>>         bytes)
>>           1507217486.996946 sending message 105 to peer 0x7fee98001800 (20
>>         bytes)
>>           1507217486.996949 sending message 105 to peer 0x7fee98001800 (9
>>         bytes)
>>           1507217486.996952 sending message 105 to peer 0x7fee98001800 (17
>>         bytes)
>>           1507217486.996961 sending message 105 to peer 0x7fee98001800 (15
>>         bytes)
>>           1507217486.996964 sending message 106 to peer 0x7fee98001800 (0
>>         bytes)
>>           1507217486.996968 sending message 200 to peer 0x7fee98001800 (4
>>         bytes)
>>           1507217486.996971 client loop enter
>>           1507217489.162538 client loop exit
>>           Debugger backtrace:
>>           # lldb -c /cores/core.36281 ./tmux
>>           (lldb) target create "./tmux" --core "/cores/core.36281"
>>           warning: (x86_64) /cores/core.36281 load command 346 LC_SEGMENT_64
>>         has a
>>           fileoff + filesize (0x2cf6a000) that extends beyond the end of the
>>         file
>>           (0x2cf69000), the segment will be truncated to match
>>           warning: (x86_64) /cores/core.36281 load command 347 LC_SEGMENT_64
>>         has a
>>           fileoff (0x2cf6a000) that extends beyond the end of the file
>>         (0x2cf69000),
>>           ignoring this section
>>           Core file '/cores/core.36281' (x86_64) was loaded.
>>           (lldb) bt
>>           * thread #1, stop reason = signal SIGSTOP
>>             * frame #0: 0x00007fffcc638b52 libsystem_c.dylib`strlen + 18
>>               frame #1: 0x00007fffcc67e9fc libsystem_c.dylib`__vfprintf +
>>         5701
>>               frame #2: 0x00007fffcc6a7423 libsystem_c.dylib`__v2printf +
>>         699
>>               frame #3: 0x00007fffcc67cf46 libsystem_c.dylib`_vasprintf +
>>         554
>>               frame #4: 0x0000000100bac587 tmux`log_vwrite + 39
>>               frame #5: 0x0000000100bac540 tmux`log_debug + 144
>>               frame #6: 0x0000000100b89097 tmux`load_cfg + 439
>>               frame #7: 0x0000000100b88e94 tmux`start_cfg + 164
>>               frame #8: 0x0000000100bbce62 tmux`server_start + 450
>>               frame #9: 0x0000000100b89998 tmux`client_main + 1080
>>               frame #10: 0x0000000100bc52d2 tmux`main + 1874
>>               frame #11: 0x00007fffcc602235 libdyld.dylib`start + 1
>>               frame #12: 0x00007fffcc602235 libdyld.dylib`start + 1
>>           --
>>           Jason White
>>           [email protected]
>>           "The single biggest problem in communication is the illusion that
>>         it has
>>           taken place." - George Bernard Shaw
>> 
>>           --
>>           You received this message because you are subscribed to the Google
>>         Groups
>>           "tmux-users" group.
>>           To unsubscribe from this group and stop receiving emails from it,
>>         send an
>>           email to [email protected].
>>           To post to this group, send email to [email protected].
>>           For more options, visit https://groups.google.com/d/optout.
>> 
>>     -- 
>>     Jason White
>>     [email protected]
>>     "The single biggest problem in communication is the illusion that it has
>>     taken place." - George Bernard Shaw
>> 
>>   -- 
>>   Jason White
>>   [email protected]
>>   "The single biggest problem in communication is the illusion that it has
>>   taken place." - George Bernard Shaw

-- 
You received this message because you are subscribed to the Google Groups 
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to