On Mon Feb 20 19:12:28 2012, shmuel wrote:
Show quoted text> On Wed Jan 25 23:58:17 2012, shmuel wrote:
> > Multiple 'weakld: error: Unresolved symbol (UNDEF)' warnings:
> >
> > boot_Crypt__OpenSSL__Random
> > _RAND_status
> > _RAND_egd
> > _RAND_seed
> > _RAND_bytes
> >
> > causing the linker to fail on Error 1. I suspect that I need to download
> > an openssl package, but there's nothing in the readme - in fact, there
> > isn't a readme.
>
> After adding -lz to LIBS in MAKEFILE.PL, it finds /extras/lib/libz.a; I
> don't know whether that is necessary for systems other than OS/2. I also
> don't know why it doesn't find Q:\usr\lib\libsocket.a, although that
> should be harmless.
>
> With the addion of -lz I am left with one error message in the build:
>
>
> [h:\vendors\cpan\crypt-openssl-random-0.04]U:\extras\bin\make
> Skip blib/lib/Crypt/OpenSSL/Random.pm (unchanged)
> gcc -c -DDOSISH -DOS2=2 -DEMBED -I. -fno-strict-aliasing -pipe
> -I/usr/local/in
> clude -O2 -fomit-frame-pointer -falign-loops=2 -falign-jumps=2
> -falign-functions
> =2 -s -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -Zdll
> "-IQ:/PROGRAMS/PERL/lib/5
> .10.0/os2/CORE" Random.c
> In file included from Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/perl.h:2495,
> from Random.xs:2:
> Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/os2ish.h:30:1: warning:
> "PERL_DONT_CREATE_G
> VSV" redefined
> In file included from Random.xs:2:
> Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/perl.h:932:1: warning: this is the
> location
> of the previous definition
> Running Mkbootstrap for Crypt::OpenSSL::Random ()
> Q:/PROGRAMS/PERL/bin/perl.exe -MExtUtils::Command -e 'chmod' -- 644
> Random.bs
> Q:/PROGRAMS/PERL/bin/perl.exe "-IQ:/PROGRAMS/PERL/lib/5.10.0/os2"
> "-IQ:/PROGRAMS
> /PERL/lib/5.10.0" -e 'use ExtUtils::Mksymlists; \
> Mksymlists("NAME" => "Crypt::OpenSSL::Random", "DLBASE" =>
> "RandomBQ", "VER
> SION" => "0.04", "DISTNAME" => "Crypt-OpenSSL-Random", "INSTALLDIRS" =>
> "site",
> "DL_FUNCS" => { }, "FUNCLIST" => [], "IMPORTS" => { }, "DL_VARS" => []);'
> Q:/PROGRAMS/PERL/bin/perl.exe -MExtUtils::Command -e 'rm_f' --
> blib/arch/auto/Cr
> ypt/OpenSSL/Random/RandomBQ.dll
> gcc -Zdll -Zomf Random.o -O2 -fomit-frame-pointer -falign-loops=2
> -falign-jump
> s=2 -falign-functions=2 -s -o
> blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll
> \
> Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/libperl.a -lssl -lcrypto
> -lz Q:/P
> ROGRAMS/PERL/lib/5.10.0/os2/CORE/libperl_override.a Random.def \
> || ( Q:/PROGRAMS/PERL/bin/perl.exe -MExtUtils::Command -e
> 'rm_f' -- bl
> ib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll && sh -c false )
> weakld: error: Unresolved symbol (UNDEF EXPORT)
> 'boot_Crypt__OpenSSL__Random'.
> weakld: info: The symbol is referenced by:
> H:/Vendors/CPAN/Crypt-OpenSSL-Random-0.04/Random.def
> Ignoring unresolved externals reported from weak prelinker.
> ILink : error LNK2022: boot_Crypt__OpenSSL__Random (alias
> boot_Crypt__OpenSSL__R
> andom) : export undefined
>
> There was 1 error detected
> make.exe: *** [blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll] Error 1
>
>
> Dave Yeo <dave.r.yeo@gmail.com> in comp.os.os2.apps (Message-ID:
> <4f41c37b$0$2595$c3e8da3$f5af001f@news.astraweb.com>) states that
> h:\Vendors\CPAN\Crypt-OpenSSL-Random-0.04\Random.def should have a
> leading underscore in
>
> EXPORTS
> boot_Crypt__OpenSSL__Random
>
> A test suggests that he is correct; the build completes and a 5 tests
> succeed.
>
>
> Ruediger Ihle (Message-ID: <Bd1D8ggkpXsj-pn2-RGHsHdy5Kvoh@Tobias>) staes
> that the build should have picked up
> Q:\usr\local\OPENSSL\lib\libssl_dll.a rather than
> Q:\usr\local\OPENSSL\lib\libssl.a
>
I'm afraid I don't have a OS2 system to test, and the errors look like a EUMM building problem, either by missing the _ in the generated .def file, or by linking to the wrong library version (static, not the import lib).
Please test the latest version, and try it with a os2 specific hints file to use the correct libs to link, as with MSWin32
--
Reini Urban