[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Trying to compile 1.6.15 with IPv6 enabled

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Wed, 01 Jun 2011 19:15:43 +0200

On 01.06.2011 15:44, Timothy Baldock wrote:
> Hello,
>
> Our company recently implemented a VPN solution called DirectAccess. Due
> to the way this works the client application MUST support IPv6, or it
> won't work (even when the server is IPv4 only). One of the applications
> I need to support via this is Subversion, and since the majority of our
> users use TortoiseSVN I need to get a version of it which is IPv6-capable.
>
> I've been following the instructions in the readme.txt and build.txt
> with the distribution and I've gotten it to compile without the ipv6
> option specified (though it bombs out during creation of the docs, all
> the compilation works properly). The command which works is:
>
> nant setup
>
> But running it with:
>
> nant ipv6 setup
>
> Gets me this error when trying to link against the library logcachelib.lib:
>
>
>> [exec] 24>Compiling resources...
>> [exec] 24>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
>> [exec] 24>Copyright (C) Microsoft Corporation. All rights reserved.
>> [exec] 24>Linking...
>> [exec] 24>LINK : fatal error LNK1181: cannot open input file '..\..\obj\logcachelib\release\logcachelib.lib'
>> [exec] 24>Build log was saved at "file://c:\svn\tortoisesvn\tags\version-1.6.15\obj\TortoiseProc\Release\BuildLog.htm"
>> [exec] 24>TortoiseProc - 1 error(s), 4 warning(s)
>> [exec] ========== Rebuild All: 22 succeeded, 2 failed, 1 skipped ==========
>>
>> BUILD FAILED - 0 non-fatal error(s), 304 warning(s)
>>
>> c:\svn\tortoisesvn\tags\version-1.6.15\src\TortoiseSVN.build(104,14):
>> External Program Failed: devenv.com (return code was 1)
>>
>> Total time: 302.3 seconds.
>
>
> Looking into it a bit more deeply I found that logcachelib compilation
> failed (which didn't fail the build), there were a lot of errors there...
>
>> Compiling...
>> stdafx.cpp
>> Compiling...
>> LogCacheSettings.cpp
>> SVNLogQuery.cpp
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(48) : error C2894: templates cannot be declared to have 'C' linkage
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(74) : error C2061: syntax error : identifier 'socklen_t'
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(166) : error C3861: 'inet_addr': identifier not found
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(167) : error C2065: 'INADDR_NONE' : undeclared identifier
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(206) : error C2027: use of undefined type 'addrinfo'
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(69) : see declaration of 'addrinfo'
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(211) : error C2027: use of undefined type 'WspiapiNewAddrInfo::sockaddr_in'
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(202) : see declaration of 'WspiapiNewAddrInfo::sockaddr_in'
>> C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\Wspiapi.h(217) : error C2027: use of undefined type 'WspiapiNewAddrInfo::sockaddr_in'
>> ...
>
> It looks like it's trying to Include the wspiapi header file, which is
> using a bunch of networking stuff which isn't defined anywhere.
>
> The only difference between the ipv6 and non ipv6 builds as far as I can
> tell is that the following flags are set in subversion.build:
>
> <define name="_WIN32_WINNT" value="0x0501" if="${ipv6 == 'enabled'}" />
> <define name="APR_HAVE_IPV6" if="${ipv6 == 'enabled'}" />
>
> As far as I can tell the APR_HAVE_IPV6 flag is only relevant to the
> apache portable runtime compilation (which works fine). The _WIN32_WINNT
> flag gets set to 0x0501 in the stdafx.h header file for the LogCacheLib
> solution as well, so this should be an identical configuration as far as
> that library is concerned.
>
> I am a bit stumped at this point, can anyone suggest a good course of
> action for getting this to compile?

if you don't need TSVN to run on win2k but only on XP and later, then
you can remove the following from ext\build\apr.build:

                                <!-- With the Vista SDK, it's necessary to define _WIN32_WINNT to
0x0501 to gt IPv6 support,
                                     but that value also breaks the app on Win2k. To get a stub
compiled in, we must include
                                     Wspiapi.h, this will make it work again on win2k. -->
                                <replacestring from='#if APR_HAVE_IPV6' to='#if APR_HAVE_IPV6
#include "Wspiapi.h"' if="${ipv6 == 'enabled'}" />

I'll remove this for the trunk build now, since we don't support win2k
for that version anyway anymore.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2755273
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2011-06-01 19:15:56 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.