[Bug 152] New: Build failure on Sparc/Solaris 2.8 with Sun cc or gcc

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Sat Mar 9 06:24:39 EST 2002


http://bugzilla.mindrot.org/show_bug.cgi?id=152

           Summary: Build failure on Sparc/Solaris 2.8 with Sun cc or gcc
           Product: Portable OpenSSH
           Version: 3.0.2p1
          Platform: Sparc
        OS/Version: Solaris
            Status: NEW
          Severity: major
          Priority: P2
         Component: Build system
        AssignedTo: openssh-unix-dev at mindrot.org
        ReportedBy: zed at debian.org


This affects both 3.0.2p1 and 3.1p1.  Somehow, data from header files is being
lost during compiles.  Configure is run as:

CC=gcc ./configure --prefix=$PREFIX \
    --infodir=$PREFIX/share/info \
    --mandir=$PREFIX/share/man \
    --sysconfdir=$PREFIX/etc \
    --with-xauth=/usr/openwin/bin/xauth \
    --with-rsh=/usr/bin/rsh \
    --with-4in6 --with-pam \
    --disable-suid-ssh \
   
--with-default-path=/usr/local/free/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/openwin/bin


Running make from here gets to:

gcc -g -O2 -Wall -Wpointer-arith -Wno-uninitialized -I. -I.
-I/usr/local/free/include  -I/usr/local/include -DSSHDIR=\"/usr/local/free/etc\"
-D_PATH_SSH_PROGRAM=\"/usr/local/free/bin/ssh\"
-D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/free/libexec/ssh-askpass\"
-D_PATH_SFTP_SERVER=\"/usr/local/free/libexec/sftp-server\"
-D_PATH_SSH_PIDDIR=\"/var/run\"
-DSSH_RAND_HELPER=\"/usr/local/free/libexec/ssh-rand-helper\" -DHAVE_CONFIG_H -c
ttymodes.c
In file included from ttymodes.c:297:
ttymodes.h: In function `tty_make_modes':
ttymodes.h:125: `IXANY' undeclared (first use in this function)
ttymodes.h:125: (Each undeclared identifier is reported only once
ttymodes.h:125: for each function it appears in.)
ttymodes.h:159: `ONLCR' undeclared (first use in this function)
In file included from ttymodes.c:392:
ttymodes.h: In function `tty_parse_modes':
ttymodes.h:125: `IXANY' undeclared (first use in this function)
ttymodes.h:159: `ONLCR' undeclared (first use in this function)

which of course are defined in /usr/include/sys/termios.h, which is pulled in
from /usr/include/termios.h.  Manually adding #include <sys/termios.h> to the
top of ttymodes.h has no effect.  Adding in the IXANY and ONLCR #defines to the
top of ttymodes.h gets it a little farther, but then it dies at:

gcc -g -O2 -Wall -Wpointer-arith -Wno-uninitialized -I. -I.
-I/usr/local/free/include  -I/usr/local/include -DSSHDIR=\"/usr/local/free/etc\"
-D_PATH_SSH_PROGRAM=\"/usr/local/free/bin/ssh\"
-D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/free/libexec/ssh-askpass\"
-D_PATH_SFTP_SERVER=\"/usr/local/free/libexec/sftp-server\"
-D_PATH_SSH_PIDDIR=\"/var/run\"
-DSSH_RAND_HELPER=\"/usr/local/free/libexec/ssh-rand-helper\" -DHAVE_CONFIG_H -c
ssh.c
ssh.c: In function `main':
ssh.c:620: warning: implicit declaration of function `snprintf'
ssh.c: In function `x11_get_proto':
ssh.c:835: warning: implicit declaration of function `strlcpy'
ssh.c: In function `ssh_session':
ssh.c:898: storage size of `ws' isn't known
ssh.c:936: warning: implicit declaration of function `ioctl'
ssh.c:936: `TIOCGWINSZ' undeclared (first use in this function)
ssh.c:936: (Each undeclared identifier is reported only once
ssh.c:936: for each function it appears in.)
ssh.c:898: warning: unused variable `ws'
ssh.c: In function `ssh_session2_setup':
ssh.c:1055: storage size of `ws' isn't known
ssh.c:1061: `TIOCGWINSZ' undeclared (first use in this function)
ssh.c:1055: warning: unused variable `ws'
make: *** [ssh.o] Error 1


I can get around the TIOCGWINSZ problem the same way, but I'm defeated by
whatever strange thing is going on with ws.
At first, I thought I had somehow managed to mangle my gcc install, but
upgrading from gcc 2.94 to gcc 3.0.4 had no effect, and I didn't do anything out
of the ordinary on the compile procedure.  So then I tried again, only with
CC=cc, using the sun compiler.  I got stopped at exactly the same points, albeit
with slightly different errors:

cc -g -I. -I. -I/usr/local/free/include  -I/usr/local/include
-DSSHDIR=\"/usr/local/free/etc\" -D_PATH_SSH_PROGRAM=\"/usr/local/free/bin/ssh\"
-D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/free/libexec/ssh-askpass\"
-D_PATH_SFTP_SERVER=\"/usr/local/free/libexec/sftp-server\"
-D_PATH_SSH_PIDDIR=\"/var/run\"
-DSSH_RAND_HELPER=\"/usr/local/free/libexec/ssh-rand-helper\" -DHAVE_CONFIG_H -c
ssh.c
"ssh.c", line 898: incomplete struct/union/enum winsize: ws
"ssh.c", line 936: undefined symbol: TIOCGWINSZ
"ssh.c", line 938: undefined struct/union member: ws_row
"ssh.c", line 939: undefined struct/union member: ws_col
"ssh.c", line 940: undefined struct/union member: ws_xpixel
"ssh.c", line 941: undefined struct/union member: ws_ypixel
"ssh.c", line 1055: incomplete struct/union/enum winsize: ws
"ssh.c", line 1061: undefined symbol: TIOCGWINSZ
"ssh.c", line 1066: undefined struct/union member: ws_col
"ssh.c", line 1067: undefined struct/union member: ws_row
"ssh.c", line 1068: undefined struct/union member: ws_xpixel
"ssh.c", line 1069: undefined struct/union member: ws_ypixel
cc: acomp failed for ssh.c
make: *** [ssh.o] Error 2


At first I thought that somehow the header protective #defines were being set
without the header data actually being loaded, but when I removed the specific
#defines I mentioned above and tried adding:

#undef _TERMIO_H
#undef _SYS_TERMIO_H
#include <termio.h>

to the top of ttymodes.h, it again stopped at the same spot.


A complete build log can be made available upon request.

-- 
Zed Pobre <zed at math.lsu.edu>
Department of Mathematics, Louisiana State University



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the openssh-unix-dev mailing list