Dear all,
I wish I knew better - howto use ld to craft an archive member, but I do
not. (Below was sent to openssl-dev, if it arrived, please ignore for
now - however, once I understand this AND if I figure out a "simple"
change, I shall submit a patch for future AIX builds.)
===
To be compatible with the standard AIX libraries I would like to learn
howto generate a single
".so" file that goes into the .a file.
FYI: AIX supports multiple versions of the ssl libraries using this
convention:
root@x093:[/data/prj/openssl/openssl-0.9.8.27]ar tv /usr/lib/libcrypto.a
| head
rwxr-xr-x 370769/647632 2192276 Nov 09 07:44 2009 libcrypto.so.0.9.8
michael@x054:[/data/prj/apache/httpd/test]ar tv /usr/lib/libcrypto.a
rwxrwxr-x 435159/781431 2965832 May 01 06:57 2014 libcrypto.so.1.0.0
rwxrwxr-x 435159/781431 2253655 May 01 06:58 2014 libcrypto.so.0.9.8
Members are, as expected, object modules
michael@x054:[/data/prj/apache/httpd/test]ar xv /usr/lib/libcrypto.a
x - libcrypto.so.1.0.0
x - libcrypto.so.0.9.8
michael@x054:[/data/prj/apache/httpd/test]file libcrypto*
libcrypto.so.0.9.8: executable (RISC System/6000) or object module not
stripped
libcrypto.so.1.0.0: executable (RISC System/6000) or object module not
stripped
Unfortunately, the archive created by the tarball ./config and make are
individual .o named object modules.
Again, for compatibility I would like to have them contained in a .so
root@x093:[/data/prj/openssl/openssl-0.9.8.27]ar tv libcrypto.a | head
rw-r--r-- 0/0 6346 Aug 03 15:13 2014 cryptlib.o
rw-r--r-- 0/0 8585 Aug 03 15:13 2014 dyn_lck.o
rw-r--r-- 0/0 11602 Aug 03 15:13 2014 mem.o
rw-r--r-- 0/0 1303 Aug 03 15:13 2014 mem_clr.o
rw-r--r-- 0/0 13806 Aug 03 15:13 2014 mem_dbg.o
rw-r--r-- 0/0 2048 Aug 03 15:13 2014 cversion.o
rw-r--r-- 0/0 13170 Aug 03 15:13 2014 ex_data.o
rw-r--r-- 0/0 2443 Aug 03 15:13 2014 tmdiff.o
rw-r--r-- 0/0 1782 Aug 03 15:13 2014 cpt_err.o
rw-r--r-- 0/0 630 Aug 03 15:13 2014 ebcdic.o
And applications expect the .so.$version as member name
michael@x054:[/data/prj/apache/httpd/test]dump -H /usr/sbin/sshd
/usr/sbin/sshd:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x00000196 0x000008cc 0x0000006f
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000006 0x00008fc0 0x00000dde 0x0000902f
***Import File Strings***
INDEX PATH BASE MEMBER
0 /usr/lib:/lib
1 libc.a shr.o
2 libcrypto.a libcrypto.so.1.0.0
3 libz.a libz.so.1
4 libpam.a shr.o
5 libdl.a shr.o
===
I am going to look in the ./config for a "shared" versus "not-shared"
flag that I missed on my first attempt. All suggestions welcome!
Thanks for your assistance!
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager majord...@openssl.org