Hello Thomas, the variable you seem to be missing Tcl_HashTable NsOpenSSLServers;
is declared inside the file sslcontext.c >From the errors you're getting I believe you have not included this file in your build. I'm currently working on providing my Win32-OpenACS http://www.friendlybits.com/en/inf_tec_en/win32openacs_en/ distribution with HTTPS/SSL support and up to now I didn't find any problem whatsoever. Of course I'm using makefiles and development tools different from yours, anyhow I believe you should make sure the following files are included in your build: nsopenssl.c ssl.c sslcontext.c tclcmds.c x509.c Hope this helps, Maurizio -----Original Message----- From: AOLserver Discussion [mailto:aolser...@listserv.aol.com] On Behalf Of Prem Thomas Sent: 16 July 2009 01:28 To: AOLSERVER@LISTSERV.AOL.COM Subject: [AOLSERVER] nsopenssl fails to load I'm having trouble loading nsopenssl with AOLserver 4.5.1. Despite multiple attempts to address the problem, I'm going nowhere. Details below. I'd greatly appreciate advice. --Prem Thomas Details ======= 64-bit x86 OpenSolaris (Nexenta: SunOS 5.11 kernel with a Ubuntu Hardy 8.04 userland) AOLserver 4.5.1 TCL 8.5.7 OpenSSL 0.9.8k nsopenssl 3.0.b26 GNU Make 3.81 gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2nexenta7) Both OpenSSL and nsopenssl built successfully. When I start AOLserver, I get this fatal error: [12/Jul/2009:23:26:14][1142.1][-main-] Notice: modload: loading '/usr/ local/aolserver/bin/nsopenssl.so' [12/Jul/2009:23:26:14][1142.1][-main-] Warning: modload: could not load /usr/local/aolserver/bin/nsopenssl.so: ld.so.1: nsd: fatal: relocation error: file /usr/local/aolserver/bin/nsopenssl.so: symbol NsOpenSSLServers: referenced symbol not found [12/Jul/2009:23:26:14][1142.1][-main-] Fatal: modload: failed to load module '/usr/local/aolserver/bin/nsopenssl.so' After googling around, and reading this: http://openacs.org/forums/ message-view?message_id=51691 I tried building nsopenssl with the -Bstatic flag: # make install OPENSSL=/usr/local/ssl AOLSERVER=${NS} MODLIBS="- Bstatic -L${OPENSSL}/lib -lssl -lcrypto -L/usr/lib/gcc/i386-pc- solaris2.11/4.2.3 -lgcc" Same error. I also tried rebuilding OpenSSL with the no-asm config option: # ./Configure solaris-x86-gcc no-asm Build succeeded and I rebuilt nsopenssl. But I still get the same error. I tried rebuilding nsopenssl with make CC="gcc -fPIC" but this produced errors: shlib_target=; if [ -n "" ]; then \ shlib_target="solaris-shared"; \ elif [ -n "" ]; then \ FIPSLD_CC=gcc -fpic; CC=../fips/fipsld; export CC FIPSLD_CC; \ fi; \ LIBRARIES="-L.. -lssl -L.. -lcrypto" ; \ [ "x" = "xlibfips" ] && LIBRARIES="$LIBRARIES -lfips"; \ make -f ../Makefile.shared -e \ CC=${CC} APPNAME=openssl OBJECTS="openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o engine.o ocsp.o prime.o cms.o" \ LIBDEPS=" $LIBRARIES -lsocket -lnsl -ldl" \ link_app.${shlib_target} make[2]: Entering directory `/usr/local/src/openssl-0.9.8k/apps' make[2]: pic: No such file or directory make[2]: *** No rule to make target `pic'. Stop. I tried adding extra paths to LD_LIBRARY_PATH, but to no avail. #echo $LD_LIBRARY_PATH /usr/local/src/aolserver45/nsopenssl:/usr/local/pgsql/lib:/usr/local/ ssl/lib:/usr/local/aolserver/lib:/usr/lib/gcc/i386-pc-solaris2.11/4.2.3: Here's a grep of the symbol in the source and aolserver directories: # grep -r NsOpenSSLServers /usr/local/src/aolserver45/nsopenssl Binary file ./nsopenssl.o matches ./sslcontext.c:Tcl_HashTable NsOpenSSLServers; ./sslcontext.c: hPtr = Tcl_FindHashEntry(&NsOpenSSLServers, server); ./nsopenssl.c:extern Tcl_HashTable NsOpenSSLServers; ./nsopenssl.c: Tcl_InitHashTable(&NsOpenSSLServers, TCL_STRING_KEYS); ./nsopenssl.c: hPtr = Tcl_CreateHashEntry(&NsOpenSSLServers, server, &new); Binary file ./nsopenssl.so matches Binary file ./libnsopenssl.so matches Binary file ./sslcontext.o matches # grep -r NsOpenSSLServers /usr/local/aolserverBinary file /usr/local/aolserver/bin/nsopenssl.so matches Binary file /usr/local/aolserver/lib/libnsopenssl.so matches I also tried ldd -d (see http://docs.sun.com/app/docs/doc/ 806-1075/6jacsnimr?a=view) #ldd -d /usr/local/aolserver/bin/nsd libnsd.so => /usr/local/aolserver/lib/libnsd.so libnsthread.so => /usr/local/aolserver/lib/ libnsthread.so libtcl8.5.so => /usr/local/aolserver/lib/libtcl8.5.so libdl.so.1 => /lib/libdl.so.1 libsocket.so.1 => /lib/libsocket.so.1 libpthread.so.1 => /lib/libpthread.so.1 libm.so.2 => /lib/libm.so.2 libgcc_s.so.1 => /lib/libgcc_s.so.1 librt.so.1 => /lib/librt.so.1 libc.so.1 => /lib/libc.so.1 libnsl.so.1 => /lib/libnsl.so.1 libmp.so.2 => /lib/libmp.so.2 libmd.so.1 => /lib/libmd.so.1 libscf.so.1 => /lib/libscf.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1 -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <lists...@listserv.aol.com> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <lists...@listserv.aol.com> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.