Re: Win 64a dynamic link library build was unsuccessful using beta6
bss_file.obj : error LNK2001: unresolved external symbol OPENSSL_UplinkTable b_dump.obj : error LNK2001: unresolved external symbol OPENSSL_UplinkTable So as you adviced I tried the following: perl ms/uplink.pl win64a uplink.asm ml64 -c uplink.asm add it to APP_EX_OBJ in ntdll.mak file. Still unsuccessful to compile: It's called unsuccessful to link:-) Creating library out32dll\libeay32.lib and object out32dll\libeay32.exp uplink.obj : error LNK2019: unresolved external symbol OPENSSL_Uplink Oh! My fault! There is ms/uplink.c, which also needs to be compiled [and it should be compiled?] and linked, so that instructions should have been: - perl ms/uplink.pl win64a uptable.asm - ml64 -c uptable.asm - make sure *both* uplink.obj and uptable.obj are listed in APP_EX_OBJ in .mak file A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Error in July releases of Openssl 0.9.7
The previews versions have an error. They do not recognize Certs in Apache-SSL. The problems turns up in 20050701 . Are you sure that not earlier? The closest change that might affect certificate look-ups is dated 23rd, to be specific http://cvs.openssl.org/chngview?cn=14114. The new code is buggy! As it is now dir variable can be used uninitialized and it appears to me there're couple of curly braces missing... This affects all branches! A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Win 64a dynamic link library build was unsuccessful using beta6
Hi! First of all I figured it out that i should use SHLIB_EX_OBJ not APP_EX_OBJ :)) Second if I add both uplink.obj and uptable.obj to SHLIB_EX_OBJ then I cannot link libeay32.dll: link /nologo /subsystem:console /opt:ref bufferoverflowU.lib /dll /out:o ut32dll\libeay32.dll /def:ms/LIBEAY32.def @C:\DOCUME~1\admin\LOCALS~1\Temp\nm118 3.tmp uplink.obj : error LNK2005: OPENSSL_UplinkTable already defined in uptable.obj uplink.obj : error LNK2005: $lazy1 already defined in uptable.obj uplink.obj : error LNK2005: $lazy2 already defined in uptable.obj uplink.obj : error LNK2005: $lazy3 already defined in uptable.obj uplink.obj : error LNK2005: $lazy4 already defined in uptable.obj uplink.obj : error LNK2005: $lazy5 already defined in uptable.obj uplink.obj : error LNK2005: $lazy6 already defined in uptable.obj uplink.obj : error LNK2005: $lazy7 already defined in uptable.obj uplink.obj : error LNK2005: $lazy8 already defined in uptable.obj uplink.obj : error LNK2005: $lazy9 already defined in uptable.obj uplink.obj : error LNK2005: $lazy10 already defined in uptable.obj uplink.obj : error LNK2005: $lazy11 already defined in uptable.obj uplink.obj : error LNK2005: $lazy12 already defined in uptable.obj uplink.obj : error LNK2005: $lazy13 already defined in uptable.obj uplink.obj : error LNK2005: $lazy14 already defined in uptable.obj uplink.obj : error LNK2005: $lazy15 already defined in uptable.obj uplink.obj : error LNK2005: $lazy16 already defined in uptable.obj uplink.obj : error LNK2005: $lazy17 already defined in uptable.obj uplink.obj : error LNK2005: $lazy18 already defined in uptable.obj uplink.obj : error LNK2005: $lazy19 already defined in uptable.obj uplink.obj : error LNK2005: $lazy20 already defined in uptable.obj uplink.obj : error LNK2005: $lazy21 already defined in uptable.obj uplink.obj : error LNK2005: $lazy22 already defined in uptable.obj ms/LIBEAY32.def(7) : warning LNK4017: DESCRIPTION statement not supported for the target platform; ignored Creating library out32dll\libeay32.lib and object out32dll\libeay32.exp out32dll\libeay32.dll : fatal error LNK1169: one or more multiply defined symbol s found NMAKE : fatal error U1077: 'link' : return code '0x491' Stop. If I add only uptable.obj then it can create libeay32.dll successfully. However I cannot link ssleay32.dll. So I figured it out that I do not need uptable.obj to link ssleay32.dll so I rewrite the ntdll.mak file: SHLIB_EX_OBJ_SSL= SHLIB_EX_OBJ_CRYPTO=uptable.obj and then I modified the end of the mak file to use these variables for the dlls. So finally successful to build on amd 64 both statically and dynamically. Thanks a lot. All tests are also successful. I summarize here what to modify in the mak files to build on AMD 64: Remove: SHLIB_EX_OBJ= Add: SHLIB_EX_OBJ_SSL= SHLIB_EX_OBJ_CRYPTO=uptable.obj Modify: CFLAGS= to remove /WX option because of size_t conversations and I also recommend to use /MT instead of /MD for the static link libraries in nt.mak file. LFLAGS=/nologo /subsystem:console /opt:ref bufferoverflowU.lib (so remove /machine:I386 flag and add bufferoverflowU.lib) Only in ntdll.mak: MLFLAGS= /nologo /subsystem:console /opt:ref bufferoverflowU.lib /dll (so remove /machine:I386 flag and add bufferoverflowU.lib) Modify the following to use SHLIB_EX_OBJ_SSL instead of SHLIB_EX_OBJ: $(O_SSL): $(SSLOBJ) $(LINK) $(MLFLAGS) /out:$(O_SSL) /def:ms/SSLEAY32.def @ $(SHLIB_EX_OBJ_SSL) $(SSLOBJ) $(L_CRYPTO) wsock32.lib gdi32.lib advapi32.lib user32.lib Modify the following to use SHLIB_EX_OBJ_CRYPTO instead of SHLIB_EX_OBJ: $(O_CRYPTO): $(CRYPTOOBJ) $(LINK) $(MLFLAGS) /out:$(O_CRYPTO) /def:ms/LIBEAY32.def @ $(SHLIB_EX_OBJ_CRYPTO) $(CRYPTOOBJ) wsock32.lib gdi32.lib advapi32.lib user32.lib So how to build on AMD 64 and Intel EM64T I summarize here: 1. perl Configure VC-WIN32 2. ms\do_ms 3. perl ms/uplink.pl win64a uptable.asm 4. ml64 -c uptable.asm 5. modify the mak files as above 6. nmake -f ms\ntdll.mak 7. nmake -f ms\nt.mak I used the new platform SDK with 64 bit compiler and MSVC++. I hope it helps others out. Thank you for your help, -- Matyas Majzik __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Win 64a dynamic link library build was unsuccessful using beta6
First of all I figured it out that i should use SHLIB_EX_OBJ not APP_EX_OBJ :)) Keep in mind that the instructions were provided off the top of my head and not actually tested, which is why it's so bumpy. Bear with me:-) Second if I add both uplink.obj and uptable.obj to SHLIB_EX_OBJ then I cannot link libeay32.dll: link /nologo /subsystem:console /opt:ref bufferoverflowU.lib /dll /out:o ut32dll\libeay32.dll /def:ms/LIBEAY32.def @C:\DOCUME~1\admin\LOCALS~1\Temp\nm118 3.tmp uplink.obj : error LNK2005: OPENSSL_UplinkTable already defined in uptable.obj uplink.obj : error LNK2005: $lazy1 already defined in uptable.obj Did you recompile uplink.obj from uplink.c? I bet not, because uplink.obj [if recompiled from uplink.c] can't contain definitions of $lazyN. If I add only uptable.obj then it can create libeay32.dll successfully. Yes, but it does not mean that Applink is functional. You have to link both uplink.obj [compiled from .c] and uptable.obj [compiled from .asm]. However I cannot link ssleay32.dll. So I figured it out that I do not need uptable.obj to link ssleay32.dll so I rewrite the ntdll.mak file: That is correct. So finally successful to build on amd 64 both statically and dynamically. Thanks a lot. All tests are also successful. Idea behind [up/app]link is to make it possible to use .dll with application compiled with different compiler flags [/M* ones to be specific]. Applink doesn't get engaged when application is compiled with same flag as .dll, such as test applications. In other words you've got *something* working, but it's *not* what *we* had in mind. So do give it another try:-) A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Error in July releases of Openssl 0.9.7
The previews versions have an error. They do not recognize Certs in Apache-SSL. The problems turns up in 20050701 . Are you sure that not earlier? The closest change that might affect certificate look-ups is dated 23rd, to be specific http://cvs.openssl.org/chngview?cn=14114. The new code is buggy! As it is now dir variable can be used uninitialized and it appears to me there're couple of curly braces missing... This affects all branches! Verify http://cvs.openssl.org/chngview?cn=14203 or tomorrow snapshot as it becomes available. A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Error in July releases of Openssl 0.9.7
On Sun, Jul 03, 2005 at 03:34:09PM +0200, Andy Polyakov wrote: The previews versions have an error. They do not recognize Certs in Apache-SSL. The problems turns up in 20050701 . Are you sure that not earlier? The closest change that might affect certificate look-ups is dated 23rd, to be specific http://cvs.openssl.org/chngview?cn=14114. The new code is buggy! As it is now dir variable can be used uninitialized and it appears to me there're couple of curly braces missing... This affects all branches! 20050630 has no problem. This appears on 20050701 and later. Verify http://cvs.openssl.org/chngview?cn=14203 or tomorrow snapshot as it becomes available. A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED] -- Member - Liberal International This is [EMAIL PROTECTED] Ici [EMAIL PROTECTED] God Queen and country! Beware Anti-Christ rising! Canada Day 1 July, USA Day 4 July - PARTY ON! __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Win 64a dynamic link library build was unsuccessful using beta6
Hi again! Well, no multiple $lazyN is improvement, isn't it? The above error message doesn't make sense though. uplink.obj complains about symbol being already defined in itself... H-m-m-m... I have to ponder over this... Thanks. But i have made some progress... see later in this mail. Stop saying it works properly. It links, it passes the test, but it's missing the functionality. A. Well, functionality which I don't need. It still works properly for my purposes. I can link all my applications to these dlls so functionality for my needs are enough :)) Also I always prefer static libraries. I only do these things and spend time on it to help you and others to make openssl is the best. So I have done more research on this anomaly. I inspected the temporary file which used to link the dll in the following command: link /nologo /subsystem:console /opt:ref bufferoverflowU.lib /dll /out:out32dll\libeay32.dll /def:ms/LIBEAY32.def @C:\DOCUME~1\admin\LOCALS~1\Temp\nm1659.tmp So nm1659.tmp contains the following: uptable.obj uplink.obj tmp32dll\uplink.obj tmp32dll\cryptlib.obj tmp32dll\mem.obj... (I don't include the whole file) As you can see there is multiple uses of uplink.obj. That is the reason - I think - why it worked for me without adding to SHLIB_EX_OBJ . As I see uplink is automatically compiled and included by the make file without need to be added to SHLIB_EX_OBJ. Thanks for your time, -- Matyas Majzik __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Error in July releases of Openssl 0.9.7
The previews versions have an error. They do not recognize Certs in Apache-SSL. The problems turns up in 20050701 . Are you sure that not earlier? The closest change that might affect certificate look-ups is dated 23rd, to be specific http://cvs.openssl.org/chngview?cn=14114. The new code is buggy! As it is now dir variable can be used uninitialized and it appears to me there're couple of curly braces missing... This affects all branches! 20050630 has no problem. This appears on 20050701 and later. There was only one commit to 0.9.7 between these two snapshots, http://cvs.openssl.org/chngview?cn=14189. So it's either that or that it indirectly affects the above mentioned bug [dir variable being used uninitialized with different values left in stack frame by another function]. Verify http://cvs.openssl.org/chngview?cn=14203 or tomorrow snapshot as it becomes available. I'd still appreciate if you do this:-) A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Win 64a dynamic link library build was unsuccessful using beta6
Stop saying it works properly. It links, it passes the test, but it's missing the functionality. Well, functionality which I don't need. Sorry, bit for me it's either everything or nothing. In this particular context Applink is either there, ready to be used or not there [in which case I'd have to modify FAQ]. Also keep in mind that it's publicly archived list, meaning that context of discussion gets fuzzy when people start searching for keywords. Meaning that if you say something, it pays off to explicitly mention particular context, at least works for *my* purposes, as failure to do so might give wrong impression about *us*. I only do these things and spend time on it to help you and others to make openssl is the best. But don't take the above rant personally, as it's pretty much just a pedant's whine:-) As a matter of fact we are sincerely grateful for feedback and will to resolve problems *our* way. Thank you. As you can see there is multiple uses of uplink.obj. That is the reason - I think - why it worked for me without adding to SHLIB_EX_OBJ . Right! As I see uplink is automatically compiled and included by the make file without need to be added to SHLIB_EX_OBJ. So that adding uptable.obj is sufficient. A. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: Error in July releases of Openssl 0.9.7
7On Sun, 3 Jul 2005, Andy Polyakov wrote: Are you sure that not earlier? The closest change that might affect certificate look-ups is dated 23rd, to be specific http://cvs.openssl.org/chngview?cn=14114. The new code is buggy! As it is now dir variable can be used uninitialized and it appears to me there're couple of curly braces missing... This affects all branches! A. I see the missing pair of curly braces. Sorry I missed that initially. Thanks for fixing it before the final release of 0.9.8. Doug -- Doug Kaufman Internet: [EMAIL PROTECTED] __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]
Re: linux+mingw - create openssl for windows [u]
On Monday 20 June 2005 18:48, Andy Polyakov wrote: - gaswin option is being phased out and should not be used; - can you confirm that just issuing 'make' right after 'perl Configure mingwx' doesn't work? - if you can confirm that it doesn't, can you show how does it fail? Point is that I'd rather see it cross-built by 'make' [which is known to work at least under cygwin], than by an extra script. In other words you should be able to get away with single extra mingwx line to ./Configure and patch for $exe_ext line... No extra scripts should be required... so you want a Configure based approach, but still using mk1mf.pl, or do you want native Configure / make / make install based system? I guess the second option, so I tried implementing it. But I need some help, as the openssl make system is quite complex, and I don't know all nuances. The attached diff should be a step in the right direction. but linking libcrypto.dll fails, as there are still references to: libcrypto.exp:fake:(.edata+0x2964): undefined reference to `_ENGINE_load_ubsec' libcrypto.exp:fake:(.edata+0x2f80): undefined reference to `_ENGINE_load_cswift' ... even though I used -DOPENSSL_NO_HW. the command that creates this problem is i586-mingw32msvc-dllwrap --dllname libcrypto.dll \ --output-lib libcrypto.a \ --def ms/libeay32.def libcrypto.a \ -lwsock32 -lgdi32 I guess it has to do with the definition files, but as I don't know what those exactly do, I'm pretty much lost. Regards, Andreas diff -udrNP openssl-0.9.8-stable-SNAP-20050703.orig/Configure openssl-0.9.8-stable-SNAP-20050703/Configure --- openssl-0.9.8-stable-SNAP-20050703.orig/Configure 2005-07-04 00:27:11.169168808 +0200 +++ openssl-0.9.8-stable-SNAP-20050703/Configure 2005-07-04 00:56:17.650663264 +0200 @@ -469,6 +469,7 @@ # MinGW mingw, gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a, +mingwx, i586-mingw32msvc-cc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333 -DOPENSSL_NO_HW:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:mingw-shared:-D_WINDLL:-mno-cygwin -shared:.dll:i586-mingw32msvc-ranlib, # UWIN UWIN, cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32, @@ -909,7 +910,7 @@ $IsMK1MF=1 if ($target eq mingw $^O ne cygwin); -$exe_ext=.exe if ($target eq Cygwin || $target eq DJGPP || $target eq mingw); +$exe_ext=.exe if ($target eq Cygwin || $target eq DJGPP || $target eq mingw || $target eq mingwx); $exe_ext=.pm if ($target =~ /vos/); $openssldir=/usr/local/ssl if ($openssldir eq and $prefix eq ); $prefix=$openssldir if $prefix eq ; diff -udrNP openssl-0.9.8-stable-SNAP-20050703.orig/Makefile.org openssl-0.9.8-stable-SNAP-20050703/Makefile.org --- openssl-0.9.8-stable-SNAP-20050703.orig/Makefile.org 2005-07-04 00:27:11.182166832 +0200 +++ openssl-0.9.8-stable-SNAP-20050703/Makefile.org 2005-07-04 00:27:21.282631328 +0200 @@ -496,7 +496,7 @@ @pod2man=`cd util; ./pod2mantest $(PERL)`; \ here=`pwd`; \ filecase=; \ - if [ $(PLATFORM) = DJGPP -o $(PLATFORM) = Cygwin -o $(PLATFORM) = mingw ]; then \ + if [ $(PLATFORM) = DJGPP -o $(PLATFORM) = Cygwin -o $(PLATFORM) = mingw -o $(PLATFORM) = mingwx ]; then \ filecase=-i; \ fi; \ set -e; for i in doc/apps/*.pod; do \ diff -udrNP openssl-0.9.8-stable-SNAP-20050703.orig/Makefile.shared openssl-0.9.8-stable-SNAP-20050703/Makefile.shared --- openssl-0.9.8-stable-SNAP-20050703.orig/Makefile.shared 2005-07-04 00:27:11.182166832 +0200 +++ openssl-0.9.8-stable-SNAP-20050703/Makefile.shared 2005-07-04 00:37:31.029935648 +0200 @@ -258,6 +258,55 @@ link_app.cygwin: $(LINK_APP) +link_o.mingw: + @ $(CALC_VERSIONS); \ + INHIBIT_SYMLINKS=yes; \ + SHLIB=$(LIBNAME)eay32; \ + SHLIB_SUFFIX=.dll; \ + LIBVERSION=$(LIBVERSION); \ + SHLIB_SOVER=${LIBVERSION:+-$(LIBVERSION)}; \ + ALLSYMSFLAGS='-Wl,--whole-archive'; \ + NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ + SHAREDFLAGS=$(CFLAGS) $(SHARED_LDFLAGS) -o lib$(LIBNAME).dll; \ + expr $(LIBNAME) : 'crypto' /dev/null ( \ + perl util/mkdef.pl 32 libeay ms/libeay32.def ; \ + i586-mingw32msvc-dllwrap --dllname lib$(LIBNAME).dll \ + --output-lib lib$(LIBNAME).a \ + --def ms/libeay32.def lib$(LIBNAME).a \ + -lwsock32 -lgdi32 ) || ( \ + perl util/mkdef.pl 32 ssleay ms/ssleay32.def ; \ + i586-mingw32msvc-dllwrap --dllname lib$(LIBNAME).dll \ + --output-lib lib$(LIBNAME).a \ + --def ms/ssleay32.def lib$(LIBNAME).a \ + -lwsock32 -lgdi32 ) +link_a.mingw: + @ $(CALC_VERSIONS); \ + INHIBIT_SYMLINKS=yes; \ + SHLIB=$(LIBNAME)eay32; \ + SHLIB_SUFFIX=.dll; \ + SHLIB_SOVER=-$(LIBVERSION); \ + ALLSYMSFLAGS='-Wl,--whole-archive'; \ + NOALLSYMSFLAGS='-Wl,--no-whole-archive