[screen-devel] Failed to compile screen from git src on Solaris 11
From:
Clark J. Wang
Subject:
[screen-devel] Failed to compile screen from git src on Solaris 11
Date:
Tue, 1 Nov 2011 11:01:44 +0800
I'm new to Solaris, please help me compile screen from src. Following are my steps:
$ uname -a SunOS node01 5.11 11.0 i86pc i386 i86pc Solaris $ git co http://git.savannah.gnu.org/r/screen.git
$ ./mktar.pl $ tar xf ... $ ./configure --prefix=/usr/local/screen-git $ gmake CPP="gcc -E -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"'" srcdir=. sh ./osdef.sh
AWK=gawk CC="gcc -g -O2" srcdir=. sh ./comm.sh gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 screen.c gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 ansi.c gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 fileio.c gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 mark.c gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 misc.c gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 resize.c gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-g -O2 socket.c socket.c: In function 'ReceiveMsg': socket.c:994:6: error: 'struct msghdr' has no member named 'msg_controllen' socket.c:995:6: error: 'struct msghdr' has no member named 'msg_control'
socket.c:1007:14: error: 'struct msghdr' has no member named 'msg_controllen' socket.c:1010:14: warning: assignment makes pointer from integer without a cast socket.c:1010:48: warning: assignment makes pointer from integer without a cast
socket.c: In function 'SendAttachMsg': socket.c:1789:6: error: 'struct msghdr' has no member named 'msg_control' socket.c:1790:6: error: 'struct msghdr' has no member named 'msg_controllen'
socket.c:1791:8: warning: assignment makes pointer from integer without a cast socket.c:1795:3: warning: passing argument 2 of 'bcopy' makes pointer from integer without a cast /usr/include/strings.h:22:13: note: expected 'void *' but argument is of type 'int'
socket.c:1796:6: error: 'struct msghdr' has no member named 'msg_controllen' make: *** [socket.o] Error 1 $
I took a look at the /usr/include/socket.h file and found this:
struct msghdr {
void *msg_name; /* optional address */ socklen_t msg_namelen; /* size of address */ struct iovec *msg_iov; /* scatter/gather array */
int msg_iovlen; /* # elements in msg_iov */
#if defined(__lint) || defined(_XPG4_2) || defined(_KERNEL) void *msg_control; /* ancillary data */ socklen_t msg_controllen; /* ancillary data buffer len */
int msg_flags; /* flags on received message */ #else caddr_t msg_accrights; /* access rights sent/received */ int msg_accrightslen; #endif /* defined(_XPG4_2) || defined(_KERNEL) */
};
So I passed CFLAGS to the configure script:
$ ./configure --prefix=/usr/local/screen-git CFLAGS=-D_XPG4_2 $ gmake clean $ gmake CPP="gcc -E -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"'" srcdir=. sh ./osdef.sh
AWK=gawk CC="gcc -D_XPG4_2" srcdir=. sh ./comm.sh AWK=gawk srcdir=. sh ./term.sh gcc -c -I. -I. -DETCSCREENRC='"/usr/local/screen-git/etc/screenrc"' -DSCREENENCODINGS='"/usr/local/screen-git/share/screen/utf8encodings"' -DHAVE_CONFIG_H -DGIT_REV=\""`git describe --always 2>/dev/null`"\" \
-D_XPG4_2 screen.c In file included from screen.c:56:0: /usr/include/signal.h:71:39: error: expected ';', ',' or ')' before '*' token make: *** [screen.o] Error 1 $
Then I went into /usr/include/signal.h:
65 #if defined(__EXTENSIONS__) || (!defined(_STRICT_STDC) && \ 66 !defined(__XOPEN_OR_POSIX)) 67 #include <sys/procset.h> 68 extern int gsignal(int);
69 extern int (*ssignal(int, int (*)(int)))(int); 70 extern int sigsend(idtype_t, id_t, int); 71 extern int sigsendset(const procset_t *, int); 72 extern int sig2str(int, char *); 73 extern int str2sig(const char *, int *);
74 #define SIG2STR_MAX 32 75 #endif /* defined(__EXTENSIONS__) || (!defined(_STRICT_STDC)... */
Now I have no idea what I can do next. :( Any one can help?
-Clark
[Prev in Thread]
Current Thread
[Next in Thread]
[screen-devel] Failed to compile screen from git src on Solaris 11,
Clark J. Wang<=