You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Alexander Mueller <Xe...@web.de> on 2006/02/03 16:00:23 UTC

Runtime library ambiguities for Subversion on Windows/Debug

Some of the dependant libraries of subversion seem to implicitely
include MSVCRT.lib even for the debug configuration. This leads to the
linker warning LNK4098 which tells you there are conflicts with the
standard library.

This can give unexpected result while debugging Subversion on Windows.
In my configuration _stddup was used from MSVCRT.lib while free was used
from MSVCRTD.lib...

What to do next? Shall I create an issue appending the patch?

Xela


Here is the proposed commit log message entry for the patch:

Changed the generator script for MSVC dsp files so all the libs (even
standard runtim libs) are mentioned explicitely. This is because some
of the libs subversion uses lead to an implicit linkage against
MSVCRT.lib when build in debug configuration. The result is linkage
against MSVCRT.lib and MSVCRTD.lib.

* build/generator/msvc_dsp.ezt: Added the linker option to use
      no default libs (only for EXE)

* build/generator/gen_win.py: add "oldnames.lib",
    "kernel32.lib" and "msvcrtd.lib"/"msvcrt.lib" to the list
    of libs to be linked against (only for EXE)


Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by Branko Čibej <br...@xbc.nu>.
Alexander Mueller wrote:
> This sounds pretty good. If nobody else jumps in I will take a look at
> the zLib configuration to make sure it uses different directories.
You'll have to send patches to the zlib project, we just use the 
makefile they provide.

-- Brane


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by Alexander Mueller <Xe...@web.de>.
This sounds pretty good. If nobody else jumps in I will take a look at
the zLib configuration to make sure it uses different directories.

Xela


Ivan Zhakov schrieb:
> On 2/3/06, Branko Čibej <br...@xbc.nu> wrote:
> 
>>Alexander Mueller wrote:
>>
>>>Some of the dependant libraries of subversion seem to implicitely
>>>include MSVCRT.lib even for the debug configuration. This leads to the
>>>linker warning LNK4098 which tells you there are conflicts with the
>>>standard library.
>>
>>Yes, this is indeed a problem ...
> 
> [..]
> 
>>A better solution would be to see which libraries are actually causing
>>problems. and fix their builds. I suspect zlib.
> 
> Yeah, Branko you are right, it's zlib. And not openssl. I have tested,
> removing --with-zlib option eliminates warnings. In zlib problem occur
> because *.obj files stored in same directory for release and debug
> configurations.
> 
> So, Alexander, there is workaround: make full rebuild after changing
> between release and debug configurations. It should help.
> 
> --
> Ivan Zhakov


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by Ivan Zhakov <ch...@gmail.com>.
On 2/3/06, Branko Čibej <br...@xbc.nu> wrote:
> Alexander Mueller wrote:
> > Some of the dependant libraries of subversion seem to implicitely
> > include MSVCRT.lib even for the debug configuration. This leads to the
> > linker warning LNK4098 which tells you there are conflicts with the
> > standard library.
> Yes, this is indeed a problem ...
[..]
> A better solution would be to see which libraries are actually causing
> problems. and fix their builds. I suspect zlib.
Yeah, Branko you are right, it's zlib. And not openssl. I have tested,
removing --with-zlib option eliminates warnings. In zlib problem occur
because *.obj files stored in same directory for release and debug
configurations.

So, Alexander, there is workaround: make full rebuild after changing
between release and debug configurations. It should help.

--
Ivan Zhakov

Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by Stefan Küng <st...@gmx.ch>.
D.J. Heap wrote:
> On 2/3/06, steveking <st...@gmx.ch> wrote:
> [snip]
>> Actually, it's openssl. I haven't seen a build switch for it to create a
>> debug build - do you know if it has something like this?
> 
> 
> Yes, but it's not just a switch -- you have to tweak a file.  It's
> documented in the INSTALL.W32 file.

Ah, thanks for the pointer!

I guess I leave it that way - tweaking files in an automated build is 
something I'd like to avoid if possible.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by "D.J. Heap" <dj...@gmail.com>.
On 2/3/06, steveking <st...@gmx.ch> wrote:
[snip]
>
> Actually, it's openssl. I haven't seen a build switch for it to create a
> debug build - do you know if it has something like this?
>


Yes, but it's not just a switch -- you have to tweak a file.  It's
documented in the INSTALL.W32 file.

DJ

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by steveking <st...@gmx.ch>.
Branko Čibej wrote:
> Alexander Mueller wrote:
>> Some of the dependant libraries of subversion seem to implicitely
>> include MSVCRT.lib even for the debug configuration. This leads to the
>> linker warning LNK4098 which tells you there are conflicts with the
>> standard library.
> Yes, this is indeed a problem ...
> 
>> This can give unexpected result while debugging Subversion on Windows.
>> In my configuration _stddup was used from MSVCRT.lib while free was used
>> from MSVCRTD.lib...
>>
>> What to do next? Shall I create an issue appending the patch?
> I see one potential problem with this patch: it will break VS.NET builds 
> because it explicitly mentions msvcrt, which is not the correct runtime 
> lib for the newer compilers.
> 
> A better solution would be to see which libraries are actually causing 
> problems. and fix their builds. I suspect zlib.

Actually, it's openssl. I haven't seen a build switch for it to create a 
debug build - do you know if it has something like this?

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Runtime library ambiguities for Subversion on Windows/Debug

Posted by Branko Čibej <br...@xbc.nu>.
Alexander Mueller wrote:
> Some of the dependant libraries of subversion seem to implicitely
> include MSVCRT.lib even for the debug configuration. This leads to the
> linker warning LNK4098 which tells you there are conflicts with the
> standard library.
Yes, this is indeed a problem ...

> This can give unexpected result while debugging Subversion on Windows.
> In my configuration _stddup was used from MSVCRT.lib while free was used
> from MSVCRTD.lib...
>
> What to do next? Shall I create an issue appending the patch?
I see one potential problem with this patch: it will break VS.NET builds 
because it explicitly mentions msvcrt, which is not the correct runtime 
lib for the newer compilers.

A better solution would be to see which libraries are actually causing 
problems. and fix their builds. I suspect zlib.

(BTW, kernel32.lib and oldnames.lib shouldn't be problematic.)

-- Brane


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org