Sun 08 Jun 2014 01:46:54 PM UTC, original submission:
Compiling screen 4.2.1 fails on IRIX 6.5.30 in screen.c, since 'The identifier "SCM_RIGHTS" is undefined.'.
"SCM_RIGHTS" is defined in sys/sockets.h
#if defined(_KERNEL) || defined(_XOPEN_SOURCE)
/* "Socket"-level control message types: */
#define SCM_RIGHTS 0x01 /* access rights (array of int) */
#endif /* (_KERNEL || _XOPEN_SOURCE) */
however, if I set CPPFLAGS to -D_XOPEN_SOURCE, configure fails with 'you have neither usable sockets nor usable pipes -> no screen'.
This is caused by
cc-1077 c99: ERROR File = /usr/include/sys/select.h, Line = 83
The indicated declaration has no storage class or type specifier.
__SGI_LIBC_BEGIN_NAMESPACE_STD
^
and 100 further errors, both when checking for sockets and fifos. The __SGI_LIBC_BEGIN_NAMESPACE_STD is not protected by any ifdefs, if I see that correctly. It would be defined in internal/sgimacros.h. I haven't seen any mechanism that would cause sgimacros.h to be included from sys/select.h, but both
sys/time.h or sys/types.h do so. Therefore, moving the include statements for sys/types.h or sys/time.h before sys/select.h in the test programs in configure.in would help.
However, _XOPEN_SOURCE causes "Declaration is incompatible" errors for connect, bind, accept and setregid (and friends) in osdef.h, as well as Errors concerning ut_exit.e_termination (the field is called __e_termination and there's a #define e_termination __e_termination if _XOPEN_SOURCE) and the lack of a proper definition for and UTMPFILE. All those work without _XOPEN_SOURCE.
No matter what I've tried so far as workarounds, including just compiling with -DSCM_RIGHTS=0x01 to escape the whole XOPEN_SOURCE mess, I end up with a screen binary that exits with "Bad tty '/dev/ttyq0'"
screen 4.0.3 works without any patches at all.
|