pressed send too soon, wanted to press bold again.

The "hack" to the error message is to copy libcrypto.so to /usr/lib. Then
it gets found and programs load.
What I would like is for the caller (in libssl.so) to request the search
for a member in a library rather than as a module(name) only.
It is my application that looks for libssl.so.0.9.8 in the library (as the
dump -H command shows)

INDEX  PATH                          BASE
MEMBER
0
/usr/vac/lib:/usr/lib/threads:/usr/lib:/lib

1                                    libc.a
shr.o
2                                    libpthreads.a
shr_xpg5.o
3                                    libssl.a
libssl.so.0.9.8
4                                    libcrypto.a
libcrypto.so.0.9.8

Note: wget also expects libcrypto.so.0.9.8 to be in a library, but it is
libssl.a(libssl.so.0.9.8) that makes the "request" - it seems.

So, yes, I understand how to make the archive - but not how to get an
archive to search in another library instead of searching in a directory.


On Tue, Aug 5, 2014 at 1:01 PM, Michael Felt <mamf...@gmail.com> wrote:

> The error message:
>
> exec(): 0509-036 Cannot load program wget because of the following errors:
> *        0509-022 Cannot load module /usr/lib/libssl.a(libssl.so.0.*
> *9.8).*
>         0509-150   Dependent module libcrypto.so could not be loaded.
>         0509-022 Cannot load module libcrypto.so.
>         0509-026 System error: A file or directory in the path name does
> not exist.
>         0509-022 Cannot load module wget.
> *        0509-150   Dependent module /usr/lib/libssl.a(libssl.so.0.**9.8)
> could not be loaded.*
>         0509-022 Cannot load module .
> root@x093:[/data/prj/openssl/openssl-0.9.8za]
>
>
>
> On Mon, Aug 4, 2014 at 11:33 PM, Jeremy Farrell <jeremy.farr...@oracle.com
> > wrote:
>
>> I don't understand what you mean by "but not, by default, that the .so
>> files expect dependancies in another archive(member) search request". It
>> sounds like the core of your issue is that you're trying to build AIX
>> shared libraries, so you need to configure "shared". If that's producing
>> .so files (which can be used in that form on AIX) but you'd prefer them
>> wrapped in a .a archive (which is common on AIX), then use the ar command
>> to create a .a containing the .so.
>>
>> > From: Michael [mailto:regis...@felt.demon.nl]
>> > Sent: Monday, August 04, 2014 10:00 PM
>> >
>> > I was - perhaps - not clear enough. Want I want is all the .o files
>> > together in a single file that can be a single member of an archive.
>> > Using the ./config shared got it to make .so files with everything
>> > combined - but not, by default, that the .so files expect dependancies
>> > in another archive(member) search request.
>> >
>> > I hope my post, and the extra bit (to you only) makes that clearer.
>> >
>> > Thanks for your reply to my first message!
>> >
>> > Michael
>> >
>> > On 8/4/2014 7:06 PM, Sands, Daniel wrote:
>> > > To generate a .a of shared objects instead of static objects, really
>> > all you do is build the shared object(s) and create an archive out of
>> > them.  There is no special magic about it beyond creating the shared
>> > object in the first place.  When linking a new program to an archive of
>> > shared objects, and if you didn't specify an import file, AIX will just
>> > use the standard static object rules when it searches an archive for
>> > likely candidates to link in:  First logical member of the archive that
>> > has the desired symbol will be chosen for inclusion.  The difference is
>> > that the static linker will see the "shared" flag and just add that
>> > member of the archive to the file's dynamic loader table instead of
>> > statically linking it in.
>> > >
>> > >
>> > > On Mon, 2014-08-04 at 08:45 +0200, Michael wrote:
>> > >
>> > >
>> > > 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
>>
>>
>

Reply via email to