SCM_RIGHTS not defined in monitor_fdpass.c. % uname -aR IRIX64 foo 6.5 6.5.16m 04101930 IP27 % gzip -dc openssh-3.2.3p1.tar.gz | tar xf - % cd openssh-3.2.3p1 % ./configure --with-ssl-dir=/usr/local [snip] checking for msg_accrights field in struct msghdr... yes checking for msg_control field in struct msghdr... yes [snip] % make [snip] gcc -g -O2 -Wall -Wpointer-arith -Wno-uninitialized -I. -I. -I/sys/inet/ssl/include -I/usr/local/include -DSSHDIR=\"/usr/local/etc\" -D_PATH_SSH_PROGRAM=\"/usr/local/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/libexec/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/local/libexec/sftp-server\" -D_PATH_SSH_PIDDIR=\"/usr/local/etc\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DSSH_RAND_HELPER=\"/usr/local/libexec/ssh-rand-helper\" -DHAVE_CONFIG_H -c monitor_fdpass.c monitor_fdpass.c: In function `mm_send_fd': monitor_fdpass.c:58: `SCM_RIGHTS' undeclared (first use in this function) monitor_fdpass.c:58: (Each undeclared identifier is reported only once monitor_fdpass.c:58: for each function it appears in.) monitor_fdpass.c: In function `mm_receive_fd': monitor_fdpass.c:117: `SCM_RIGHTS' undeclared (first use in this function) *** Error code 1 (bu21) %
this is what i asked in a message a while back; can an IRIX expert help here? "should we be using a UNIX95 (or whatever) namespace for IRIX? what happens with D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
SCM_RIGHTS is indeed protected (in sys/socket.h) by an #ifdef _XOPEN_SOURCE However, trying this results in a multitude of other problems: In file included from includes.h:94, from monitor_fdpass.c:26: /usr/include/lastlog.h:61: parse error before "ulong" In file included from includes.h:134, from monitor_fdpass.c:26: /usr/include/netinet/in_systm.h:34: parse error before "n_short" In file included from includes.h:136, from monitor_fdpass.c:26: /usr/include/netinet/ip.h:45: parse error before "u_char" /usr/include/netinet/ip.h:49: parse error before "ip_len" /usr/include/netinet/ip.h:50: parse error before "ip_id" /usr/include/netinet/ip.h:51: parse error before "ip_off" /usr/include/netinet/ip.h:55: parse error before "ip_ttl" /usr/include/netinet/ip.h:56: parse error before "ip_p" /usr/include/netinet/ip.h:57: parse error before "ip_sum" /usr/include/netinet/ip.h:59: parse error before '}' token /usr/include/netinet/ip.h:118: parse error before "u_char" /usr/include/netinet/ip.h:120: parse error before "ipt_ptr" /usr/include/netinet/ip.h:126: parse error before "ipt_oflw" /usr/include/netinet/ip.h:136: parse error before '}' token In file included from includes.h:137, from monitor_fdpass.c:26: /usr/include/netinet/tcp.h:38: parse error before "u_short" /usr/include/netinet/tcp.h:52: parse error before "th_off" /usr/include/netinet/tcp.h:62: parse error before "th_win" /usr/include/netinet/tcp.h:63: parse error before "th_sum" /usr/include/netinet/tcp.h:64: parse error before "th_urp"
This was fix 4 days after the release of 3.2.3p1 20020527 - (tim) [configure.ac.orig monitor_fdpass.c] Enahnce msghdr tests to address build problem on Irix reported by Dave Love <d.love@dl.ac.uk>. Back out last monitor_fdpass.c changes that are no longer needed with new tests. Patch tested on Irix by Jan-Frode Myklebust <janfrode@parallab.uib.no> Grab this configure http://www.multitalents.net/openssh/configure-msghdr-fix.gz
i consider that a workaround vs. a fix for this IRIX issue.
The problem is that OpenSSH is expecting systems to have ethier msg_accrights OR msg_control but not both. IRIX, UnixWare, and possibly others have backward/forward compatiblity defines that caused configure to report both. OpenSSH's code could not handle having both. After reviewing sys/socket.h on IRIX and UnixWare I enhanced the configure test to find the struct and reject the define. What am I missing here?
Mass change of RESOLVED bugs to CLOSED