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 [email protected]
Automated List Manager [EMAIL PROTECTED]