Re: Error building on OS X El Capitan: utmp.c:384:5: error: no member named 'ut_exit' in 'struct utmpx'​

Amadeusz Sławiński <[email protected]>
Newsgroups gmane.comp.gnu.screen.user
Message-ID <[email protected]>
Hey,

adding [email protected] back to CC, because I lost it in last reply

On Tue, 5 Apr 2016 14:36:44 -0400
Dun Peal <[email protected]> wrote:

> This did fix the issue. I then got an error:
> 
> pty.c:42:10: error: 'pty.h' file not found with <angled> include; use
> "quotes" instead
> 
> 
> So I made the following patch:
> 
> diff --git a/src/pty.c b/src/pty.c
> index ff13736..7881685 100644
> --- a/src/pty.c
> +++ b/src/pty.c
> @@ -39,7 +39,7 @@
>  #include "screen.h"
> 
>  #include <sys/ioctl.h>
> -#include <pty.h>
> +#include "pty.h"
> 
>  /*
>   * if no PTYRANGE[01] is in the config file, we pick a default
> 

Yeah, this should probably be detected in some way if it will work,
it's needed for openpty on linux/glibc systems. Will look more into it.

> ​Which finally built the executable. Trying to launch it produced
> another error:
> 
> $ ./screen
> Cannot make directory '/run/screen': No such file or directory
> 

You can use "./configure --with-socket-dir=/tmp/screen" to tell build
system where binary should place it sockets.

> 
> ​So I created `/run` and chowned it to my user. Then running screen
> worked except I still got an error:
> 
> /etc/utmp: No such file or directory​
> 
> 
> ​Then I did the following:
> 
> 
> sudo touch /etc/utmp
> 

Yup, that's a bug from utmp->utmpx refactoring, you shouldn't need to
make this directory. Pushed fix to master.

> ​
> Now the screen I built seems to run with no errors, though I'm not
> sure whether all the steps I took (particularly the last 2) are
> technically sound, and maybe some are wrong in ways that will cause
> issues later down the road.​

Thanks for your reports.

Amadeusz

> 
> 
> On Tue, Apr 5, 2016 at 12:57 PM, Amadeusz Sławiński <[email protected]>
> wrote:
> 
> > Hey,
> >
> > I pushed some changes to master, can you check now?
> >
> > Amadeusz
> >
> > On Mon, 4 Apr 2016 18:11:48 -0400
> > Dun Peal <[email protected]> wrote:
> >  
> > > Thanks, Amadeusz. As you instructed, I commented out the lines in
> > > utmp.c which referenced ut_exit (lines #384-385) and then ran make
> > > again. Unfortunately, it failed with a different error:
> > >
> > > $ make
> > > gcc -c  -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2
> > > -Wall -Wextra -std=c11 utmp.c -o utmp.o
> > > utmp.c:358:21: warning: incompatible integer to pointer conversion
> > > passing 'slot_t' (aka 'int') to parameter of type 'const char
> > > *' [-Wint-conversion] strncpy(u.ut_line, slot, sizeof(u.ut_line));
> > >                            ^~~~
> > >  
> > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/secure/_string.h:119:34:  
> > > note: expanded from
> > >       macro 'strncpy'
> > >   __builtin___strncpy_chk (dest, src, len, __darwin_obsz (dest))
> > >                                  ^~~
> > > utmp.c:363:58: warning: unused parameter
> > > 'host' [-Wunused-parameter] static int pututslot(slot_t slot,
> > > struct utmpx *u, char *host, Window *win) ^
> > > utmp.c:363:72: warning: unused parameter
> > > 'win' [-Wunused-parameter] static int pututslot(slot_t slot,
> > > struct utmpx *u, char *host, Window *win) ^
> > > utmp.c:406:9: warning: incompatible pointer to integer conversion
> > > returning 'char *' from a function with result type 'slot_t' (aka
> > > 'int') [-Wint-conversion]
> > >         return stripdev(nam);
> > >                ^~~~~~~~~~~~~
> > > 4 warnings generated.
> > > gcc -c  -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2
> > > -Wall -Wextra -std=c11 help.c -o help.o
> > > gcc -c  -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2
> > > -Wall -Wextra -std=c11 termcap.c -o termcap.o
> > > gcc -c  -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2
> > > -Wall -Wextra -std=c11 input.c -o input.o
> > > gcc -c  -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g -O2
> > > -Wall -Wextra -std=c11 attacher.c -o attacher.o
> > > attacher.c:457:14: error: use of undeclared identifier '_NSIG'
> > >         void (*sigs[_NSIG - 1]) (int);
> > >                     ^
> > > attacher.c:459:22: error: use of undeclared identifier '_NSIG'
> > >         for (sig = 1; sig < _NSIG - 1; sig++)
> > >                             ^
> > > attacher.c:467:22: error: use of undeclared identifier '_NSIG'
> > >         for (sig = 1; sig < - 1; sig++) {
> > >                             ^
> > > 3 errors generated.
> > > make: *** [attacher.o] Error 1
> > >
> > > On Mon, Apr 4, 2016 at 3:38 PM, Amadeusz Sławiński
> > > <[email protected]> wrote:
> > >  
> > > > Hey,
> > > >
> > > > soory for delay, ut_exit is GNU extension apparently not
> > > > supported by Mac OS X, can you try commenting out offending
> > > > lines?
> > > >
> > > > Amadeusz
> > > >
> > > > On Mon, 4 Apr 2016 14:59:05 -0400
> > > > Dun Peal <[email protected]> wrote:
> > > >  
> > > > > I'm trying to build Git HEAD of screen on OS X El Capital
> > > > > (latest version: 10.11.4) and getting the following error
> > > > > output - help appreciated:
> > > > >
> > > > > $ make
> > > > > AWK=gawk srcdir=. sh ./term.sh
> > > > > AWK=gawk CC="gcc -g -O2 -Wall -Wextra -std=c11" srcdir=.
> > > > > sh ./comm.sh gcc -c  -iquote.
> > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 screen.c -o screen.o gcc -c
> > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 ansi.c -o ansi.o gcc -c  -iquote.
> > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 fileio.c -o fileio.o gcc -c
> > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 mark.c -o mark.o gcc -c  -iquote.
> > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 misc.c -o misc.o gcc -c  -iquote.
> > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 resize.c -o resize.o gcc -c
> > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 socket.c -o socket.o gcc -c
> > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 search.c -o search.o gcc -c
> > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 tty.c -o tty.o gcc -c  -iquote.
> > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 term.c -o term.o gcc -c  -iquote.
> > > > > -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 window.c -o window.o gcc -c
> > > > > -iquote. -DETCSCREENRC='"/usr/local/etc/screenrc"'
> > > > > -DSCREENENCODINGS='"/usr/local/share/screen/utf8encodings"' -g
> > > > > -O2 -Wall -Wextra -std=c11 utmp.c -o utmp.o utmp.c:358:21:
> > > > > warning: incompatible integer to pointer conversion passing
> > > > > 'slot_t' (aka 'int') to parameter of type 'const char
> > > > > *' [-Wint-conversion] strncpy(u.ut_line, slot,
> > > > > sizeof(u.ut_line)); ^~~~  
> > > >  
> > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/secure/_string.h:119:34:  
> > > > > note: expanded from macro 'strncpy'
> > > > >   __builtin___strncpy_chk (dest, src, len, __darwin_obsz
> > > > > (dest)) ^~~
> > > > > utmp.c:363:58: warning: unused parameter
> > > > > 'host' [-Wunused-parameter] static int pututslot(slot_t slot,
> > > > > struct utmpx *u, char *host, Window *win) ^
> > > > > utmp.c:363:72: warning: unused parameter
> > > > > 'win' [-Wunused-parameter] static int pututslot(slot_t slot,
> > > > > struct utmpx *u, char *host, Window *win) ^
> > > > > utmp.c:384:5: error: no member named 'ut_exit' in 'struct
> > > > > utmpx' u->ut_exit.e_termination = 0;
> > > > >         ~  ^
> > > > > utmp.c:385:5: error: no member named 'ut_exit' in 'struct
> > > > > utmpx' u->ut_exit.e_exit = 0;
> > > > >         ~  ^
> > > > > utmp.c:406:9: warning: incompatible pointer to integer
> > > > > conversion returning 'char *' from a function with result
> > > > > type 'slot_t' (aka 'int') [-Wint-conversion]
> > > > >         return stripdev(nam);
> > > > >                ^~~~~~~~~~~~~
> > > > > 4 warnings and 2 errors generated.
> > > > > make: *** [utmp.o] Error 1  
> > > >
> > > >
> > > > _______________________________________________
> > > > screen-users mailing list
> > > > [email protected]
> > > > https://lists.gnu.org/mailman/listinfo/screen-users
> > > >  
> >
> >  


_______________________________________________
screen-users mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/screen-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.