dirty hack to solve: 0509-150 Dependent module libcrypto.a(libcrypto.so.0.9.7) could not be loaded

phoebus phoebus frphoebus at yahoo.fr
Wed Feb 24 09:32:00 EST 2010

Hi all,

I build openssh for aix with a dirty hack.

This is my configure:
        export CC=cc
        export CFLAGS="-I/usr/local/include"
        export LDFLAGS="-L/opt/freeware/lib/ -L/usr/local/lib"
        export CPP="cc -E"
        ./configure --prefix=/usr/local --sysconfdir=/usr/local/etc/ssh \
                        --with-cflags="-O -D__STR31__ -qmaxmem=-1" --with-cflags="-DBROKEN_GETADDRINFO" \
                        --with-tcp-wrappers=/usr/local/lib \
                        --with-zlib=/opt/freeware \
                        --with-ssl-dir=/opt/freeware \
                        --with-xauth=/usr/bin/X11/xauth \
                        --with-md5-passwords \
                        --with-pam \

The summary of the configure ouput:
        OpenSSH has been configured with the following options:
                             User binaries: /usr/local/bin
                           System binaries: /usr/local/sbin
                       Configuration files: /usr/local/etc/ssh
                           Askpass program: /usr/local/libexec/ssh-askpass
                              Manual pages: /usr/local/share/man/manX
                                  PID file: /var/run
          Privilege separation chroot path: /var/empty
                    sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
                            Manpage format: man
                               PAM support: yes
                           OSF SIA support: no
                         KerberosV support: no
                           SELinux support: no
                         Smartcard support: no
                             S/KEY support: no
                      TCP Wrappers support: yes
                      MD5 password support: yes
                           libedit support: no
          Solaris process contract support: no
               IP address in $DISPLAY hack: no
                   Translate v4 in v6 hack: no
                          BSD Auth support: no
                      Random number source: OpenSSL internal ONLY

                      Host: powerpc-ibm-aix5.3.0.0
                  Compiler: cc -qlanglvl=extc89
            Compiler flags: -I/usr/local/include -DBROKEN_GETADDRINFO
        Preprocessor flags: -I/opt/freeware/include -I/usr/local/lib -I/opt/freeware/include
              Linker flags: -L/opt/freeware/lib -L/usr/local/lib -L/opt/freeware/lib -L/opt/freeware/lib/ -L/usr/local/lib -blibpath:/usr/lib:/lib
                 Libraries: -lcrypto -lz
                 +for sshd:  -lwrap -lpam -ldl

        PAM is enabled. You may need to install a PAM control file
        for sshd, otherwise password authentication may fail.
        Example PAM control files can be found in the contrib/

I run "make" with success. When i run "make install" it failed with the following output.
        exec(): 0509-036 Cannot load program ./ssh-keygen because of the following errors:
                0509-150   Dependent module libcrypto.a(libcrypto.so.0.9.7) could not be loaded.
                0509-022 Cannot load module libcrypto.a(libcrypto.so.0.9.7).
                0509-026 System error: A file or directory in the path name does not exist.
        make: 1254-004 The error code from the last command is 255.

I try to understand this message.
        ca06:/home/frphoebus/openssh/openssh-5.3p1# ldd ./ssh-keygen
        ./ssh-keygen needs:

The library libcrypto.a is from openssl and libcrypt.a from the fileset bos.rte.security. The both files exist.
        ca06:/root# rpm -qf /opt/freeware/lib/libcrypto.a
        ca06:/root# rpm -qf /opt/freeware/lib/libcrypto.a
        ca06:/root# lslpp -Jw /usr/lib/libcrypt.a
          File                                        Fileset               Type
          /usr/lib/libcrypt.a                         bos.rte.security      File
        ca06:/usr/local/etc/ssh# ls -l /opt/freeware/lib/libcrypto.a
        -rwxr-xr-x    1 root     system      6210482 04 Sep 2007  /opt/freeware/lib/libcrypto.a
        ca06:/usr/local/etc/ssh# ls -l /usr/lib/libcrypt.a
        -r-xr-xr-x    1 bin      bin           10993 04 Aug 2009  /usr/lib/libcrypt.a

I trying to update my path for look in /opt/freeware/lib before /usr/lib 
or /usr/lib before /opt/freeware/lib. The make install failed with the same output in the 2 case.

I copied libcrypto.a in a temp directory and extracted its content. Everything is ok.
        ca06:/home/frphoebus/libcrypto# ar -xv ./libcrypto.a
        x - libcrypto.so.0.9.7
        x - libcrypto.so.0

I dumped part of the object files:
        ca06:/home/frphoebus/openssh/openssh-5.3p1# dump -H ./ssh-keygen


                                ***Loader Section***
                              Loader Header Information
        VERSION#         #SYMtableENT     #RELOCent        LENidSTR
        0x00000001       0x000000cd       0x000001f5       0x0000003e

        #IMPfilID        OFFidSTR         LENstrTBL        OFFstrTBL
        0x00000003       0x00002ad4       0x000005fe       0x00002b12

                                ***Import File Strings***
        INDEX  PATH                          BASE                MEMBER
        0      /usr/lib:/lib
        1                                    libc.a              shr.o
        2                                    libcrypto.a         libcrypto.so.0.9.7

After i copied libcrypto.a in /usr/lib because it's the path indicated by the dump
for the object.
Now, make install is succesfull. 

Could you explain me how to do a clean "make install" without doing a dirty hack ?

Thanks in advance. 



More information about the openssh-unix-dev mailing list