Subject: Re: Building OpenSSL 0.9.7e on a VAX From: kuhrt@nospammy.encompasserve.org (Marty Kuhrt) Date: 29 Dec 2004 13:02:25 -0600 Newsgroups: comp.os.vms In article , cook@wvnvms.wvnet.edu (George Cook) writes: >> In article , kuhrt@nospammy.encompasserve.org (Marty Kuhrt) writes: > >>>> Has anyone built OpenSSL 0.9.7e on a VAX successfully? I downloaded >>>> the latest from http://www.openssl.org/source/ and tried to compile >>>> it on a VAX running V7.2, and DECC 6.4, with the latest patches. >>>> >>>> Using the... >>>> >>>> $ @MAKEVMS.COM all ignore nodebug decc multinet >>>> >>>> invocation, I received several of the following errors (reduced to >>>> one instance for brevity)... >>>> >>>> Compiling The DES Library Files. (LIBRARY,LIB) >>>> set_key.c >>>> OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key); /* defaults to false */ >>>> ^ >>>> %CC-W-MIXLINKAGE, In this declaration, "_hide_DES_check_key" is declared with >>>> both internal and external linkage. The previous declaration is at line 70 in >>>> $44$DKA200:[OPENSSL-0_9_7E.CRYPTO.DES]SET_KEY.C;1. >>>> At line number 70 in$44$DKA200:[OPENSSL-0_9_7E.CRYPTO.DES]SET_KEY.C;1. >>>> >>>> %VCG-I-SUMMARY, Completed with 0 error(s), 1 warning(s), and >>>> 0 informational messages. >>>> At line number 411 in $44$DKA200:[OPENSSL-0_9_7E.CRYPTO.DES]SET_KEY.C;1. >>>> >>>> %LIBRAR-W-COMCOD, compilation warnings in module SET_KEY file >>>> $44$DKA200:[OPENSSL-0_9_7E.VAX.OBJ.CRYPTO]SET_KEY.OBJ;1 >>>> >>>> Before I start the forensic work necessary to figure this out, I thought >>>> I'd bounce a "did you get it work" message off the group. > >> >> I tried the following build of 0.9.7e on VAX V7.3 with DECC 6.4: >> >> @MAKEVMS BUILDINF NORSAREF NODEBUG DECC >> @MAKEVMS SOFTLINKS NORSAREF NODEBUG DECC >> @MAKEVMS CONFIG NORSAREF NODEBUG DECC >> @MAKEVMS CRYPTO NORSAREF NODEBUG DECC >> >> and SET_KEY.C compiled fine. I don't do a full build because I >> only use it with VMS Mosaic. Our TCP/IP is Multinet. George Cook and I finally figured out how to get both the Alpha and VAX versions to compile. Seems that since the softlinks command, above, was done _before_ the config command, the newly config'd include files were not copied to the appropriate build directories. The difference in the configured include files, outside of the standard 32/64 bit stuff, was the line in the makevms file outlined below. To make it work on the VAX running V7.3 and DECC 6.4-005, I had to comment out line 312 in the makevms.com file... $ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION" Once that was done I did the following on both platforms... $ @makevms config norsa nodebug decc multinet $ @makevms softlinks norsa nodebug decc multinet $ @makevms crypto norsa nodebug decc multinet $ @makevms ssl norsa nodebug decc multinet And they all compiled clean. I now have the olbs for VAX and Alpha on V7.3 for 0.9.7e. Since I don't have an older VAX VMS version, or older VAX/DEC C compiler available, I can't test where this define didn't break the build. For that reason I'm just documenting what I had to do to get the build to work for my versions. (Unfortunately, the "new, improved, Google Groups" had made this type of archiving all but unusable, but that is a different problem.) Oh, and one other caveat. Even though the build tree has a separate directory for the VAX and Alpha objects, olbs, and executables, it _doesn't_ have separate directories for the include files. Thus, don't try to build on more than one platform at a time unless tracking down transient errors is your idea of a fun afternoon.