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]

Reply via email to