Stefano Pettini wrote:
2) What I think is a bug in the Win32 makefile. I had to compile Axis
since I needed HTTPS support. Official binaries worked well, but mine
not. I compiled with DEBUG=1 and I noticed the makefile didn't specify
which C Runtime to use. This caused the single-threading C runtime to be
implicitly linked, generating random crashes during calls of C runtime
functions from more than one thread. I solved the problem replacing part
of the code of the makefile with the following:
This is probably because you are using Visual Studio 6 as you have
mentioned elsewhere.
"/MLd" option, which instructs the compiler to use single threaded debug
c runtime, libcd.lib, is the default for VS6. "/ML" and "/MLd" options
are no longer available in VS2005 [1]. C runtimes shipped with VS2005
are all multi threaded. That should be the reason why dist binaries
worked fine. (Our dist is compiled using VS2005)
#################### debug symbols
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 /MDd
LDFLAGS = $(LDFLAGS) /DEBUG
!else
CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 /MD
LDFLAGS = $(LDFLAGS)
!endif
The DEBUG=1 case must specify the /MDd parameter, to link to MSVCRTD.dll
in multithreading mode. The ignore library parameter of the linker is
removed too. I modified also the DEBUG=0 case, replacing /MT with /MD to
link to MSVCRT.dll.
/MTd and /MT could be used instead of /MDd and /MD to link the runtime
library statically, but I suggest dynamic linking, since it's used as
default by VS6 and by libxml2, zlib, iconv and openssl.
May you include these modifications in 1.1? Pathed makefile is attached.
I think we should add this. It is good to have our build working
properly with older versions of VS compilers too.
-Dumindu.
[1] http://msdn2.microsoft.com/en-us/library/ms235505(VS.80).aspx
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]