problems building on solaris 2.6

Mark D. Baushke mdb at juniper.net
Sat Oct 27 07:04:05 EST 2001


Using the latest cvs sources, the compilation of ssh.c fails.
The 'struct rlimit rlim;' line is being expanded by cpp into
'struct rlimit64 rlim;' and there is no struct rlimit64 defined.
In order to get the struct rlimit64 to be included when the

  #include <sys/resource.h>

is used, it appears to need the _LARGEFILE64_SOURCE symbol defined OR
it needs the '#if _FILE_OFFSET_BITS == 64' to fail.

I suspect this needs to be done with some kind of confgiure magic, but
I don't have time to figure out what it is right now...
	
	-- Mark

% ./configure --prefix=/usr/local/openssh-3.0p1 --with-pid-dir \
  --with-ipv4-default --sysconfdir=/etc/openssh \
  --with-libs=/usr/local/zlib-1.1.3/lib/libz.a \
  --with-libs=/usr/local/openssl-0.9.6b/lib/libssl.a \
  --with-cflags=-I/usr/local/zlib-1.1.3/include \
  --with-cflags=-I/usr/local/openssl-0.9.6b/include
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix... 
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking build system type... sparc-sun-solaris2.6
checking host system type... sparc-sun-solaris2.6
checking whether byte ordering is bigendian... yes
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking for a BSD compatible install... /usr/local/bin/install -c
checking for ar... /usr/local/bin/ar
checking for perl5... no
checking for perl... /usr/local/bin/perl
checking for ent... no
checking for filepriv... no
checking for bash... /usr/local/bin/bash
checking for ksh... (cached) /usr/local/bin/bash
checking for sh... (cached) /usr/local/bin/bash
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for _LARGE_FILES value needed for large files... no
checking for login... /usr/bin/login
checking for gcc option to accept ANSI C... none needed
checking for inline... inline
checking for obsolete utmp and wtmp in solaris2.x... no
checking for yp_match... no
checking for yp_match in -lnsl... yes
checking for setsockopt... no
checking for setsockopt in -lsocket... yes
checking for getspnam... yes
checking for login... no
checking for login in -lutil... no
checking for deflate in -lz... yes
checking for regcomp... yes
checking for strcasecmp... yes
checking for utimes... yes
checking for strftime... yes
checking for bstring.h... no
checking for crypt.h... yes
checking for endian.h... no
checking for floatingpoint.h... yes
checking for getopt.h... no
checking for glob.h... yes
checking for lastlog.h... yes
checking for limits.h... yes
checking for login.h... no
checking for login_cap.h... no
checking for maillock.h... yes
checking for netdb.h... yes
checking for netgroup.h... no
checking for netinet/in_systm.h... yes
checking for paths.h... no
checking for poll.h... yes
checking for pty.h... no
checking for regex.h... yes
checking for security/pam_appl.h... yes
checking for shadow.h... yes
checking for stddef.h... yes
checking for stdint.h... no
checking for strings.h... yes
checking for sys/bitypes.h... no
checking for sys/bsdtty.h... no
checking for sys/cdefs.h... yes
checking for sys/poll.h... yes
checking for sys/queue.h... yes
checking for sys/select.h... yes
checking for sys/stat.h... yes
checking for sys/stropts.h... yes
checking for sys/sysmacros.h... yes
checking for sys/time.h... yes
checking for sys/ttcompat.h... yes
checking for sys/un.h... yes
checking for time.h... yes
checking for ttyent.h... no
checking for usersec.h... no
checking for util.h... no
checking for utime.h... yes
checking for utmp.h... yes
checking for utmpx.h... yes
checking for GLOB_ALTDIRFUNC support... no
checking for gl_matchc field in glob_t... no
checking whether struct dirent allocates space for d_name... no
checking for arc4random... no
checking for atexit... yes
checking for b64_ntop... no
checking for bcopy... yes
checking for bindresvport_sa... no
checking for clock... yes
checking for fchmod... yes
checking for fchown... yes
checking for freeaddrinfo... no
checking for futimes... no
checking for gai_strerror... no
checking for getaddrinfo... no
checking for getcwd... yes
checking for getgrouplist... no
checking for getnameinfo... no
checking for getopt... yes
checking for getrlimit... yes
checking for getrusage... yes
checking for getttyent... no
checking for glob... yes
checking for inet_aton... no
checking for inet_ntoa... yes
checking for inet_ntop... no
checking for innetgr... yes
checking for login_getcapbool... no
checking for md5_crypt... no
checking for memmove... yes
checking for mkdtemp... no
checking for on_exit... no
checking for openpty... no
checking for readpassphrase... no
checking for realpath... yes
checking for rresvport_af... no
checking for setdtablesize... no
checking for setegid... yes
checking for setenv... no
checking for seteuid... yes
checking for setlogin... no
checking for setproctitle... no
checking for setresgid... no
checking for setreuid... yes
checking for setrlimit... yes
checking for setsid... yes
checking for setvbuf... yes
checking for sigaction... yes
checking for sigvec... no
checking for snprintf... yes
checking for strerror... yes
checking for strlcat... no
checking for strlcpy... no
checking for strmode... no
checking for strsep... no
checking for sysconf... yes
checking for tcgetpgrp... yes
checking for utimes... (cached) yes
checking for vhangup... yes
checking for vsnprintf... yes
checking for waitpid... yes
checking for __b64_ntop... no
checking for _getpty... no
checking for dirname... yes
checking for libgen.h... yes
checking for gettimeofday... yes
checking for time... yes
checking for libutil.h... no
checking for login... (cached) no
checking for logout... no
checking for updwtmp... yes
checking for logwtmp... no
checking for endutent... yes
checking for getutent... yes
checking for getutid... yes
checking for getutline... yes
checking for pututline... yes
checking for setutent... yes
checking for utmpname... yes
checking for endutxent... yes
checking for getutxent... yes
checking for getutxid... yes
checking for getutxline... yes
checking for pututxline... yes
checking for setutxent... yes
checking for utmpxname... yes
checking for getuserattr... no
checking for getuserattr in -ls... no
checking for login... (cached) no
checking for login in -lbsd... no
checking for daemon... no
checking for daemon in -lbsd... no
checking for getpagesize... yes
checking whether snprintf correctly terminates long strings... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... (cached) yes
checking for inttypes.h... yes
checking for stdint.h... (cached) no
checking for unistd.h... yes
checking whether getpgrp takes no argument... yes
checking for OpenSSL directory... /usr/local/openssl
checking for RSA support... yes
checking for char... yes
checking size of char... 1
checking for short int... yes
checking size of short int... 2
checking for int... yes
checking size of int... 4
checking for long int... yes
checking size of long int... 4
checking for long long int... yes
checking size of long long int... 8
checking for u_int type... yes
checking for intXX_t types... yes
checking for int64_t type... yes
checking for u_intXX_t types... no
checking for u_intXX_t types in sys/socket.h... no
checking for u_int64_t types... no
checking for uintXX_t types... yes
checking for uintXX_t types in stdint.h... no
checking for u_char... yes
checking for socklen_t... no
checking for socklen_t equivalent... int
checking for size_t... yes
checking for ssize_t... yes
checking for clock_t... yes
checking for sa_family_t... yes
checking for pid_t... yes
checking for mode_t... yes
checking for struct sockaddr_storage... no
checking for struct sockaddr_in6... no
checking for struct in6_addr... no
checking for struct addrinfo... no
checking for struct timeval... yes
checking for ut_host field in utmp.h... no
checking for ut_host field in utmpx.h... yes
checking for syslen field in utmpx.h... yes
checking for ut_pid field in utmp.h... yes
checking for ut_type field in utmp.h... yes
checking for ut_type field in utmpx.h... yes
checking for ut_tv field in utmp.h... no
checking for ut_id field in utmp.h... yes
checking for ut_id field in utmpx.h... yes
checking for ut_addr field in utmp.h... no
checking for ut_addr field in utmpx.h... no
checking for ut_addr_v6 field in utmp.h... no
checking for ut_addr_v6 field in utmpx.h... no
checking for ut_exit field in utmp.h... yes
checking for ut_time field in utmp.h... yes
checking for ut_time field in utmpx.h... yes
checking for ut_tv field in utmpx.h... yes
checking for struct stat.st_blksize... yes
checking for ss_family field in struct sockaddr_storage... no
checking for __ss_family field in struct sockaddr_storage... no
checking for pw_class field in struct passwd... no
checking for pw_expire field in struct passwd... no
checking for pw_change field in struct passwd... no
checking if libc defines __progname... no
checking whether getopt has optreset support... no
checking if libc defines sys_errlist... yes
checking if libc defines sys_nerr... yes
checking for rsh... /usr/bin/rsh
checking for xauth... /usr/openwin/bin/xauth
checking for "/dev/ptmx"... yes
checking for "/dev/ptc"... no
checking for "/dev/urandom"... no
checking for PRNGD/EGD socket... /var/run/egd-pool
checking for ls... /usr/bin/ls
checking for netstat... /usr/bin/netstat
checking for arp... /usr/sbin/arp
checking for ifconfig... /usr/sbin/ifconfig
checking for jstat... no
checking for ps... /usr/bin/ps
checking for sar... /usr/bin/sar
checking for w... /usr/bin/w
checking for who... /usr/bin/who
checking for last... /usr/bin/last
checking for lastlog... no
checking for df... /usr/bin/df
checking for vmstat... /usr/bin/vmstat
checking for uptime... /usr/bin/uptime
checking for ipcs... /usr/bin/ipcs
checking for tail... /usr/bin/tail
checking for nroff... /usr/bin/nroff
checking if the systems has expire shadow information... yes
Adding /usr/local/openssh-3.0p1/bin to USER_PATH so scp will work
checking if we need to convert IPv4 in IPv6-mapped addresses... no (default)
checking whether to install ssh as suid root... yes
checking if your system defines LASTLOG_FILE... no
checking if your system defines _PATH_LASTLOG... no
checking if your system defines UTMP_FILE... yes
checking if your system defines WTMP_FILE... yes
checking if your system defines UTMPX_FILE... yes
checking if your system defines WTMPX_FILE... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating openbsd-compat/Makefile
config.status: creating scard/Makefile
config.status: creating ssh_prng_cmds
config.status: creating config.h

OpenSSH has been configured with the following options:
                 User binaries: /usr/local/openssh-3.0p1/bin
               System binaries: /usr/local/openssh-3.0p1/sbin
           Configuration files: /etc/openssh
               Askpass program: /usr/local/openssh-3.0p1/libexec/ssh-askpass
                  Manual pages: /usr/local/openssh-3.0p1/man/manX
                      PID file: /etc/openssh
        sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/openssh-3.0p1/bin
      Random number collection: PRNGD/EGD (socket /var/run/egd-pool)
                Manpage format: man
                   PAM support: no
            KerberosIV support: no
             Smartcard support: no
                   AFS support: no
                 S/KEY support: no
          TCP Wrappers support: no
          MD5 password support: no
   IP address in $DISPLAY hack: no
      Use IPv4 by default hack: yes
       Translate v4 in v6 hack: no

              Host: sparc-sun-solaris2.6
          Compiler: gcc
    Compiler flags: -g -O2 -Wall -Wpointer-arith -Wno-uninitialized -I/usr/local/openssl-0.9.6b/include
Preprocessor flags: -I/usr/local/openssl/include  -I/usr/local/include
      Linker flags: -R/usr/local/openssl/lib -L/usr/local/openssl/lib  -L/usr/local/lib -R/usr/local/lib
         Libraries: -lz -lsocket -lnsl  /usr/local/openssl-0.9.6b/lib/libssl.a -lcrypto 

% make
...elided...
gcc -g -O2 -Wall -Wpointer-arith -Wno-uninitialized \
-I/usr/local/openssl-0.9.6b/include \
-I. -I. -I/usr/local/openssl/include -I/usr/local/include \
-DETCDIR=\"/etc/openssh\" \
-D_PATH_SSH_PROGRAM=\"/usr/local/openssh-3.0p1/bin/ssh\" \
-D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/local/openssh-3.0p1/libexec/ssh-askpass\" \
-D_PATH_SFTP_SERVER=\"/usr/local/openssh-3.0p1/libexec/sftp-server\" \
-D_PATH_SSH_PIDDIR=\"/etc/openssh\" -DHAVE_CONFIG_H -c ssh.c
In file included from /usr/include/sys/vnode.h:41,
                 from /usr/include/sys/stream.h:21,
                 from /usr/include/netinet/in.h:38,
                 from defines.h:12,
                 from config.h:828,
                 from includes.h:22,
                 from ssh.c:41:
/usr/include/sys/resource.h:148: warning: `struct rlimit64' declared inside parameter list
/usr/include/sys/resource.h:148: warning: its scope is only this definition or declaration,
/usr/include/sys/resource.h:148: warning: which is probably not what you want.
/usr/include/sys/resource.h:149: warning: `struct rlimit64' declared inside parameter list
ssh.c: In function `main':
ssh.c:283: storage size of `rlim' isn't known
ssh.c:283: warning: unused variable `rlim'
make: *** [ssh.o] Error 1





More information about the openssh-unix-dev mailing list