> From: openssl-users [mailto:[hidden email]] On Behalf Of Thiagu Mohan
> Sent: Tuesday, January 22, 2019 00:59
> When i tried compiling openssl 1.0.2q for OS390-Unix i got sevaeral warning like below but
> got the libraries libcrypto.a and libssl.a compiled
> INFORMATIONAL CCN3764 /usr/include/signal.h:62 Option rent is ignored for variable __sigign
> because pragma variable(NORENT) is specified.
> INFORMATIONAL CCN3684 ./openssl.c:218 Exporting function main is not allowed.
> INFORMATIONAL CCN3684 ./bntest.c:143 Exporting function main is not allowed. IEW2689W 4C40
> DEFINITION SIDE FILE IS NOT DEFINED.
> FSUM3065 The LINKEDIT step ended with return code 4.
None of those look relevant to your issue. The RENT (reentrant, if memory serves) option is specifically suppressed for __sigign by a pragma; that's probably done in the system header, so it's behaving as expected. For the openssl utility program and the test programs, you're getting diagnostics saying you can't export the main function - that's expected too.
> But while building my project with these libraries i am getting lot of unresolved errors like
> plink: error: symbol 'X509_SIG_it' from archive member "libcrypto.a(p12_asn.o)" is unresolved
> plink: error: symbol 'PKCS12_AUTHSAFES_it' from archive member "libcrypto.a(p12_add.o)" is
Are you sure you're linking against the libraries you built, and not other copies elsewhere on the system?
I did a quick scan through the 1.0.2n source (don't have 1.0.2q handy), and I don't see X509_SIG_it anywhere. There's X509_SIG, X509_SIG_new, and X509_SIG_free. Similarly, there's PKCS12_AUTHSAFES but no PKCS12_AUTHSAFES_it. It's possible those were introduced after 1.0.2n, though.
My suggestion would be to scan all the generated .o files with nm to see where those symbols are being introduced (apparently they're at least in p12_asn.o and p12_add.o, but maybe elsewhere as well?). That will help narrow the problem down.
Distinguished Engineer, Micro Focus
---------- Forwarded message --------- From: Thiagu Mohan<[hidden email]> Date: Wed, Jan 23, 2019 at 4:39 PM Subject: Re: [openssl-users] Compiling openssl 1.0.2q for OS390-Unix To: Michael Wojcik <[hidden email]>
Yes I am using the option for Configure as OS390-Unix only and using c89.sh from tools directory in the openssl tar file.
On Wed, Jan 23, 2019 at 2:50 AM Michael Wojcik <[hidden email]> wrote:
> From: Thiagu Mohan [mailto:[hidden email]]
> Sent: Tuesday, January 22, 2019 13:02
> To: Michael Wojcik
Please reply to the mailing list, and not to me directly.
> PKCS12_AUTHSAFES_it these symbols must be typedefs.
I don't know how you came to that conclusion, but it's wrong. A bit of digging shows the *_it symbols are used to provide access to global variables on platforms which do not automatically resolve non-function symbols in shared libraries/objects.
> On Tue, Jan 22, 2019 at 11:24 PM Thiagu Mohan <[hidden email]> wrote:
> I checked the source of 1.0.2n and 1.0.2q. these symbols are found in libeay.num
> in both the sources and not in any other source code.
Though the util/*.num files are included in the source tarballs, they're not really source code. They're created by mkdef.pl. Unfortunately mkdef.pl achieves a level of unreadableness that is impressive even by Perl standards, so that's not much help.
I'll be frank: This isn't a problem I've run into before, and I don't have time at the moment to try to figure out what's causing it. Maybe someone who has more experience in this particular area will chime in.
You did run Configure for the OS390-Unix target, right? And it's using the c89.sh wrapper from the tools directory?
Distinguished Engineer, Micro Focus