Solaris 2.6: Undefined symbol seed_rng

Alexander Farber (EED) eedalf at eed.ericsson.se
Thu Jul 12 02:14:08 EST 2001


Hi,

I hope I'm not asking some FAQ, but I can't compile openssh-2.9p2 on

  maas34:openssh-2.9p2 {173} uname -a
  SunOS maas34 5.6 Generic_105181-23 sun4u sparc SUNW,Ultra-5_10

using:

  maas34:openssh-2.9p2 {174} gcc -v
  Reading specs from /opt/local/gcc-2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
  gcc version 2.95.2 19991024 (release)

I get:

  maas34:openssh-2.9p2 {172} make
  gcc -o ssh-keyscan ssh-keyscan.o -L. -Lopenbsd-compat/ -R/home/eedalf/lib -L/home/eedalf/lib -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib -L/usr/local/lib -R/usr/local/lib -lssh -lopenbsd-compat -lz -lsocket -lnsl  -lgen -lcrypto 
  Undefined                       first referenced
   symbol                             in file
  seed_rng                            openbsd-compat//libopenbsd-compat.a(bsd-arc4random.o)
  ld: fatal: Symbol referencing errors. No output written to ssh-keyscan
  collect2: ld returned 1 exit status
  *** Error code 1
  make: Fatal error: Command failed for target `ssh-keyscan'

I'm actually trying to compile a ssh for using with
our SOCKS5-firewall. For that purpose I've compiled
dante-1.1.10 and openssl-0.9.6a which both installed 
fine into my home-dir /home/eedalf. 

Thank you for any hints!
Alex

PS: Here's the full output:

maas34:openssh-2.9p2 {167} make clean
(cd openbsd-compat; /all/gnu/bin/make clean)
rm -f *.o *.a core 
rm -f *.o *.a ssh sshd ssh-add ssh-keygen ssh-keyscan ssh-agent scp sftp-server sftp logintest config.cache config.log 
rm -f *.out core

maas34:openssh-2.9p2 {168} env LDFLAGS="-L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib" CFLAGS=-I/opt/local/zlib-1.1.2/include ./configure --prefix=/home/eedalf --disable-suid-ssh
creating cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc -I/opt/local/zlib-1.1.2/include -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib) works... yes
checking whether the C compiler (gcc -I/opt/local/zlib-1.1.2/include -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
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... ./install-sh -c
checking for ar... /usr/ccs/bin/ar
checking for perl5... /opt/local/bin/perl5
checking for ent... no
checking for filepriv... no
checking for bash... /opt/local/bin/bash
checking for ksh... (cached) /opt/local/bin/bash
checking for sh... (cached) /opt/local/bin/bash
checking for login... /usr/bin/login
checking for inline... inline
checking for obsolete utmp and wtmp in solaris2.x... no
checking for yp_match in -lnsl... yes
checking for main in -lsocket... yes
checking for innetgr in -lrpc... no
checking for getspnam in -lgen... yes
checking for deflate in -lz... yes
checking for login in -lutil... no
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 shadow.h... yes
checking for security/pam_appl.h... yes
checking for sys/bitypes.h... no
checking for sys/bsdtty.h... no
checking for sys/cdefs.h... no
checking for sys/poll.h... yes
checking for sys/queue.h... no
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 stddef.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 vis.h... no
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 fchown... yes
checking for fchmod... yes
checking for freeaddrinfo... no
checking for futimes... no
checking for gai_strerror... no
checking for getcwd... yes
checking for getaddrinfo... no
checking for getgrouplist... no
checking for getnameinfo... no
checking for getrlimit... yes
checking for getrusage... yes
checking for getttyent... no
checking for getusershell... yes
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 realpath... yes
checking for rresvport_af... no
checking for setdtablesize... no
checking for setenv... no
checking for setegid... yes
checking for seteuid... yes
checking for setlogin... no
checking for setproctitle... yes
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 strtok_r... yes
checking for sysconf... yes
checking for tcgetpgrp... yes
checking for utimes... (cached) yes
checking for vsnprintf... yes
checking for vhangup... yes
checking for vis... yes
checking for waitpid... yes
checking for _getpty... no
checking for __b64_ntop... no
checking for gettimeofday... yes
checking for time... yes
checking for libutil.h... no
checking for login... 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... yes
checking for getpagesize... yes
checking whether snprintf correctly terminates long strings... yes
checking whether getpgrp takes no argument... yes
checking for OpenSSL directory... /home/eedalf
checking for RSA support... yes
checking size of char... 1
checking size of short int... 2
checking size of int... 4
checking size of long int... 4
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_int64_t types... no
checking for uintXX_t types... yes
checking for socklen_t... no
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 st_blksize in struct stat... yes
checking for sun_len field in struct sockaddr_un... no
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 if libc defines __progname... yes
checking if libc defines sys_errlist... yes
checking if libc defines sys_nerr... yes
checking for rsh... /usr/ucb/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... not found
checking for ls... /usr/ucb/ls
checking for netstat... /usr/ucb/netstat
checking for arp... /usr/sbin/arp
checking for ifconfig... /usr/sbin/ifconfig
checking for ps... /usr/ucb/ps
checking for w... /usr/ucb/w
checking for who... /usr/bin/who
checking for last... /usr/bin/last
checking for lastlog... no
checking for df... /usr/ucb/df
checking for vmstat... /usr/ucb/vmstat
checking for uptime... /usr/ucb/uptime
checking for ipcs... /usr/bin/ipcs
checking for tail... /usr/ucb/tail
checking for nroff... /usr/bin/nroff
checking if the systems has expire shadow information... yes
Adding /home/eedalf/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... no
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
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for executable suffix... no
updating cache ./config.cache
creating ./config.status
creating Makefile
creating openbsd-compat/Makefile
creating ssh_prng_cmds
creating config.h
config.h is unchanged

OpenSSH has been configured with the following options:
                 User binaries: /home/eedalf/bin
               System binaries: /home/eedalf/sbin
           Configuration files: /home/eedalf/etc
               Askpass program: /home/eedalf/libexec/ssh-askpass
                  Manual pages: /home/eedalf/man/manX
                      PID file: /home/eedalf/etc
        sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin:/home/eedalf/bin
      Random number collection: Builtin (timeout 200)
                Manpage format: man
                   PAM support: no
            KerberosIV 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: no
       Translate v4 in v6 hack: no

              Host: sparc-sun-solaris2.6
          Compiler: gcc
    Compiler flags: -I/opt/local/zlib-1.1.2/include -Wall
Preprocessor flags: -I/home/eedalf/include  -I/usr/local/include
      Linker flags: -R/home/eedalf/lib -L/home/eedalf/lib -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib -L/usr/local/lib -R/usr/local/lib
         Libraries: -lz -lsocket -lnsl  -lgen -lcrypto 

WARNING: you are using the builtin random number collection service.
Please read WARNING.RNG and request that your OS vendor includes
/dev/random in future versions of their OS.

maas34:openssh-2.9p2 {169} make
conffile=`echo sshd_config.out | sed 's/.out$//'`; \
/opt/local/bin/perl5 ./fixpaths -D/etc/ssh_config=/home/eedalf/etc/ssh_config  -D/etc/ssh_known_hosts=/home/eedalf/etc/ssh_known_hosts  -D/etc/sshd_config=/home/eedalf/etc/sshd_config  -D/usr/libexec=/home/eedalf/libexec  -D/etc/shosts.equiv=/home/eedalf/etc/shosts.equiv  -D/etc/ssh_host_key=/home/eedalf/etc/ssh_host_key  -D/etc/ssh_host_dsa_key=/home/eedalf/etc/ssh_host_dsa_key 
-D/etc/ssh_host_rsa_key=/home/eedalf/etc/ssh_host_rsa_key  -D/var/run/sshd.pid=/home/eedalf/etc/sshd.pid  -D/etc/primes=/home/eedalf/etc/primes  -D/etc/sshrc=/home/eedalf/etc/sshrc  -D/usr/X11R6/bin/xauth=/usr/openwin/bin/xauth  -D/usr/bin:/bin:/usr/sbin:/sbin=/usr/bin:/bin:/usr/sbin:/sbin:/home/eedalf/bin ./${conffile} > sshd_config.out

[...skipped...]

gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c serverloop.c
serverloop.c: In function `sigchld_handler':
serverloop.c:107: warning: int format, pid_t arg (arg 2)
serverloop.c:107: warning: int format, pid_t arg (arg 3)
serverloop.c: In function `server_loop':
serverloop.c:653: warning: int format, pid_t arg (arg 2)
serverloop.c:653: warning: int format, pid_t arg (arg 3)
gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c md5crypt.c
gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c session.c
session.c: In function `session_dump':
session.c:1568: warning: int format, pid_t arg (arg 6)
session.c: In function `session_by_pid':
session.c:1609: warning: int format, pid_t arg (arg 2)
session.c:1615: warning: int format, pid_t arg (arg 2)
session.c: In function `session_exit_message':
session.c:1896: warning: int format, pid_t arg (arg 4)
session.c: In function `session_free':
session.c:1937: warning: int format, pid_t arg (arg 3)
session.c: In function `session_close_by_pid':
session.c:1962: warning: int format, pid_t arg (arg 2)
session.c: In function `session_close_by_channel':
session.c:1986: warning: int format, pid_t arg (arg 3)
session.c:1994: warning: int format, pid_t arg (arg 2)
session.c: In function `session_proctitle':
session.c:2023: warning: implicit declaration of function `setproctitle'
gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c groupaccess.c
gcc -o sshd sshd.o auth.o auth1.o auth2.o auth-chall.o auth2-chall.o auth-rhosts.o auth-options.o auth-krb4.o auth-pam.o auth2-pam.o auth-passwd.o auth-rsa.o auth-rh-rsa.o auth-sia.o sshpty.o sshlogin.o loginrec.o servconf.o serverloop.o md5crypt.o session.o groupaccess.o -L. -Lopenbsd-compat/ -R/home/eedalf/lib -L/home/eedalf/lib -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib -L/usr/local/lib
-R/usr/local/lib -lssh -lopenbsd-compat -lz -lsocket -lnsl  -lgen -lcrypto
gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c ssh-add.c
gcc -o ssh-add ssh-add.o -L. -Lopenbsd-compat/ -R/home/eedalf/lib -L/home/eedalf/lib -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib -L/usr/local/lib -R/usr/local/lib -lssh -lopenbsd-compat -lz -lsocket -lnsl  -lgen -lcrypto 
gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c ssh-keygen.c
gcc -o ssh-keygen ssh-keygen.o -L. -Lopenbsd-compat/ -R/home/eedalf/lib -L/home/eedalf/lib -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib -L/usr/local/lib -R/usr/local/lib -lssh -lopenbsd-compat -lz -lsocket -lnsl  -lgen -lcrypto 
gcc -I/opt/local/zlib-1.1.2/include -Wall -I. -I. -I/home/eedalf/include  -I/usr/local/include -DETCDIR=\"/home/eedalf/etc\"  -D_PATH_SSH_PROGRAM=\"/home/eedalf/bin/ssh\"  -D_PATH_SSH_ASKPASS_DEFAULT=\"/home/eedalf/libexec/ssh-askpass\"  -D_PATH_SFTP_SERVER=\"/home/eedalf/libexec/sftp-server\"  -D_PATH_SSH_PIDDIR=\"/home/eedalf/etc\" -DHAVE_CONFIG_H -c ssh-keyscan.c
gcc -o ssh-keyscan ssh-keyscan.o -L. -Lopenbsd-compat/ -R/home/eedalf/lib -L/home/eedalf/lib -L/home/eedalf/lib -ldsocks -L/opt/local/zlib-1.1.2/lib -L/usr/local/lib -R/usr/local/lib -lssh -lopenbsd-compat -lz -lsocket -lnsl  -lgen -lcrypto 
Undefined                       first referenced
 symbol                             in file
seed_rng                            openbsd-compat//libopenbsd-compat.a(bsd-arc4random.o)
ld: fatal: Symbol referencing errors. No output written to ssh-keyscan
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `ssh-keyscan'



More information about the openssh-unix-dev mailing list