> Well, with /MT I'm getting the
> 'unresolved external symbol _iob referenced in function OPENSSL_showfatal'
Oh! It must be Win64... I could reproduce it, it's new to me... The
torture never stops...
> Well, IMHO /MT should be banned :)
> It's only usage is for producing self contained .exe that
> won't dynamically load any third-party .dll.
Basically what you're saying is that it's error-prone to have several
copies of MSV CRT in same application. I couldn't agree more, but if we
refuse the possibility, we'll have to refuse to compile a single
application with Visual Studio >=7. Indeed, there is a lot of .dlls in
system32 linked with msvcrt.dll, which is bundled with all Windows
versions. But does Visual Studio offers possibility to link with it? No.
It makes you link with msvcrXX.dll, which is not even bundled with OS
(not even with Vista)! In other words any application compiled with
Visual Studio ends up in essentially same situation as ... /MT
application. In other words if you want to be *consistent*, then you'd
have to ban recent versions of Visual Studio:-)
> Any chance to simply make the /MT /MD configurable at Configure
> time overriding default /MD, /MT selection based
> on 'dll' Configure param?
Well, then you have to talk to somebody else, as I don't give up that
easy:-) Test following. In e_os.h there is #if/#endif with "/*
compensate for bug in VC6 ctype.h */" comment. *After* that #endif add
following:
# if defined(_MSC_VER) && !defined(_DLL) && defined(stdin)
FILE *__p__iob();
# undef stdin
# undef stdout
# undef stderr
# define stdin (__p__iob()+0)
# define stdout (__p__iob()+1)
# define stderr (__p__iob()+2)
# endif
Recompile static build and link your .dll. A.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]