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 \
--with-pid-dir=/var/run
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/
subdirectory
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:
/usr/lib/libc.a(shr.o)
/usr/lib/libcrypto.a(libcrypto.so.0.9.7)
/unix
/usr/lib/libcrypt.a(shr.o)
ca06:/home/frphoebus/openssh/openssh-5.3p1#
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
openssl-0.9.7l-2
ca06:/root# rpm -qf /opt/freeware/lib/libcrypto.a
openssl-0.9.7l-2
ca06:/root#
ca06:/root# lslpp -Jw /usr/lib/libcrypt.a
File Fileset Type
----------------------------------------------------------------------------
/usr/lib/libcrypt.a bos.rte.security File
ca06:/root#
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
ca06:/usr/local/etc/ssh#
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
./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.
Regards,
Frphoebus
More information about the openssh-unix-dev
mailing list