You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Troy Curtis Jr <tr...@gmail.com> on 2018/01/28 04:44:43 UTC

Windows Compile Help

I'm hoping someone can point me in the right direction with an issue I'm
having compiling Subversion on Windows 10 using Visual Studio 2015 tools.

I decided to break out of my comfort zone a bit and see if I could get the
changes in for the py3c dependency added on the Windows side, but I am
*not* a Windows dev.  I've done a lot of learning, which as been fun, but I
can't figure this last error out.  I've attached the error log, and my WIP
visual studio script that basically got me this far.

It seems to complain the it can't find a handful of symbols related to
zlib, but if I look at the static archive I see those names (though there
are all those different calling conventions on windows, so maybe that is
related to my issue?).

Anyway, I've run out of ideas and was hoping for a little nudge.
…


Troy

Re: Windows Compile Help

Posted by Troy Curtis Jr <tr...@gmail.com>.
[..snip..]


> Glad I could help. Out of curiosity is this a 64-bit build and did you
> have to do anything out of the ordinary because of that?
>

I'm basically taking defaults, and considering the zlib asm I built was x86
and not x64 (and linking finally worked), I'm guessing it is a 32-bit build
:)

Troy

Re: Windows Compile Help

Posted by Nathan Hartman <ha...@gmail.com>.
On Sun, Jan 28, 2018 at 10:23 AM, Troy Curtis Jr <tr...@gmail.com>
wrote:

>
>
> On Sun, Jan 28, 2018 at 12:21 AM Nathan Hartman <ha...@gmail.com>
> wrote:
>
>> On Jan 27, 2018, at 11:44 PM, Troy Curtis Jr <tr...@gmail.com>
>> wrote:
>>
>> I'm hoping someone can point me in the right direction with an issue I'm
>> having compiling Subversion on Windows 10 using Visual Studio 2015 tools.
>>
>> I decided to break out of my comfort zone a bit and see if I could get
>> the changes in for the py3c dependency added on the Windows side, but I am
>> *not* a Windows dev.  I've done a lot of learning, which as been fun, but I
>> can't figure this last error out.  I've attached the error log, and my WIP
>> visual studio script that basically got me this far.
>>
>> It seems to complain the it can't find a handful of symbols related to
>> zlib, but if I look at the static archive I see those names (though there
>> are all those different calling conventions on windows, so maybe that is
>> related to my issue?).
>>
>> Anyway, I've run out of ideas and was hoping for a little nudge.
>> …
>>
>>
>> Troy
>>
>> <vs-build.txt>
>>
>> <svnbuilderr.txt>
>>
>>
>> Forgive the second reply but on further study of the build log and some
>> googling around, I think the absolute/relative paths are not the culprit,
>> and that your suspicion about calling conventions may be correct.
>>
>> https://stackoverflow.com/questions/5424549/unresolved-
>> externals-despite-linking-in-zlib-lib
>>
>> Which led to:
>>
>> http://www.zlib.net/DLL_FAQ.txt
>>
>> To summarize, CDECL is default and therefore probably what Subversion is
>> building with, but zlib may be building with STDCALL.
>>
>> I would check if the zlib project defines ZLIB_WINAPI and if so, remove
>> it and retry the build.
>>
>
> Thanks so much for taking the time to look at this Nathan! You were right
> on.  I had gotten close earlier but went the wrong way.  At one point I
> *added* ZLIB_WINAPI to the config header, but of course it complained about
> a redefinition.   It didn't click that I needed to *remove* it.  Pulling
> that out of the build configuration finally got me linking (well, after
> added /safeseh to the asm build in zlib as well).
>
> Now to add swig to the mix and maybe eventually actually adding the change
> I want to test! XD
>
> Thanks again!
>
> Troy
>


Glad I could help. Out of curiosity is this a 64-bit build and did you have
to do anything out of the ordinary because of that?

Re: Windows Compile Help

Posted by Troy Curtis Jr <tr...@gmail.com>.
On Tue, Jan 30, 2018 at 5:49 AM Jan Ehrhardt <ph...@ehrhardt.nl> wrote:

> Bert Huijben in gmane.comp.version-control.subversion.devel (Mon, 29 Jan
> 2018 14:43:15 +0100):
> >If you build ZLib with the Windows specific assembly optimizations you
> >introduce known issues. Please make sure that you run the Subversion
> >test that was designed to show you this problem.
> >
> >These assembly optimizations to zlib are a non-supported contributed
> >package to zlib and not supported by the zlib authors. And as such they
> >weren’t kept up to date over the last few releases.
>
> The code is still there, although the ZLib authors say it has been
> removed. Ref:
> https://www.apachelounge.com/viewtopic.php?p=36321#36321
> https://github.com/madler/zlib/issues/293#issue-253089104
>
> Bad habit to leave unsupported code on github.
> --
> Jan
>
>
Thanks for the info guys! I built the asm since it was in the vc6-build.bat
file that
I was using as a guide.  I'll shortly be proposing an updated version of
the script
based on the my "adventures", after a bit of clean up, so I'll be sure to
leave that part out.

Troy

Re: Windows Compile Help

Posted by Jan Ehrhardt <ph...@ehrhardt.nl>.
Bert Huijben in gmane.comp.version-control.subversion.devel (Mon, 29 Jan
2018 14:43:15 +0100):
>If you build ZLib with the Windows specific assembly optimizations you
>introduce known issues. Please make sure that you run the Subversion
>test that was designed to show you this problem.
>
>These assembly optimizations to zlib are a non-supported contributed
>package to zlib and not supported by the zlib authors. And as such they
>weren’t kept up to date over the last few releases. 

The code is still there, although the ZLib authors say it has been
removed. Ref:
https://www.apachelounge.com/viewtopic.php?p=36321#36321
https://github.com/madler/zlib/issues/293#issue-253089104

Bad habit to leave unsupported code on github.
-- 
Jan


RE: Windows Compile Help

Posted by Bert Huijben <be...@qqmail.nl>.
If you build ZLib with the Windows specific assembly optimizations you introduce known issues. Please make sure that you run the Subversion test that was designed to show you this problem.

 

These assembly optimizations to zlib are a non-supported contributed package to zlib and not supported by the zlib authors. And as such they weren’t kept up to date over the last few releases. 

 

In some cases this may corrupt your data when transferred via ra-serf. This is how we found and reported the now-known problem to the zlib authors. They are currently not interested in fixing this issue, as the optimizations are non-supported and out of date anyway.

 

              Bert

 

From: Troy Curtis Jr [mailto:troycurtisjr@gmail.com] 
Sent: zondag 28 januari 2018 16:23
To: Nathan Hartman <ha...@gmail.com>
Cc: Subversion Development <de...@subversion.apache.org>
Subject: Re: Windows Compile Help

 

 

On Sun, Jan 28, 2018 at 12:21 AM Nathan Hartman <hartman.nathan@gmail.com <ma...@gmail.com> > wrote:

On Jan 27, 2018, at 11:44 PM, Troy Curtis Jr <troycurtisjr@gmail.com <ma...@gmail.com> > wrote:

 

I'm hoping someone can point me in the right direction with an issue I'm having compiling Subversion on Windows 10 using Visual Studio 2015 tools.

I decided to break out of my comfort zone a bit and see if I could get the changes in for the py3c dependency added on the Windows side, but I am *not* a Windows dev.  I've done a lot of learning, which as been fun, but I can't figure this last error out.  I've attached the error log, and my WIP visual studio script that basically got me this far.

It seems to complain the it can't find a handful of symbols related to zlib, but if I look at the static archive I see those names (though there are all those different calling conventions on windows, so maybe that is related to my issue?).

Anyway, I've run out of ideas and was hoping for a little nudge.

…

 

 

Troy

<vs-build.txt>

<svnbuilderr.txt>

 

Forgive the second reply but on further study of the build log and some googling around, I think the absolute/relative paths are not the culprit, and that your suspicion about calling conventions may be correct.

 

https://stackoverflow.com/questions/5424549/unresolved-externals-despite-linking-in-zlib-lib

 

Which led to:

 

http://www.zlib.net/DLL_FAQ.txt

 

To summarize, CDECL is default and therefore probably what Subversion is building with, but zlib may be building with STDCALL.

 

I would check if the zlib project defines ZLIB_WINAPI and if so, remove it and retry the build.

 

Thanks so much for taking the time to look at this Nathan! You were right on.  I had gotten close earlier but went the wrong way.  At one point I *added* ZLIB_WINAPI to the config header, but of course it complained about a redefinition.   It didn't click that I needed to *remove* it.  Pulling that out of the build configuration finally got me linking (well, after added /safeseh to the asm build in zlib as well).

 

Now to add swig to the mix and maybe eventually actually adding the change I want to test! XD

 

Thanks again!

 

Troy


Re: Windows Compile Help

Posted by Troy Curtis Jr <tr...@gmail.com>.
On Sun, Jan 28, 2018 at 12:21 AM Nathan Hartman <ha...@gmail.com>
wrote:

> On Jan 27, 2018, at 11:44 PM, Troy Curtis Jr <tr...@gmail.com>
> wrote:
>
> I'm hoping someone can point me in the right direction with an issue I'm
> having compiling Subversion on Windows 10 using Visual Studio 2015 tools.
>
> I decided to break out of my comfort zone a bit and see if I could get the
> changes in for the py3c dependency added on the Windows side, but I am
> *not* a Windows dev.  I've done a lot of learning, which as been fun, but I
> can't figure this last error out.  I've attached the error log, and my WIP
> visual studio script that basically got me this far.
>
> It seems to complain the it can't find a handful of symbols related to
> zlib, but if I look at the static archive I see those names (though there
> are all those different calling conventions on windows, so maybe that is
> related to my issue?).
>
> Anyway, I've run out of ideas and was hoping for a little nudge.
> …
>
>
> Troy
>
> <vs-build.txt>
>
> <svnbuilderr.txt>
>
>
> Forgive the second reply but on further study of the build log and some
> googling around, I think the absolute/relative paths are not the culprit,
> and that your suspicion about calling conventions may be correct.
>
>
> https://stackoverflow.com/questions/5424549/unresolved-externals-despite-linking-in-zlib-lib
>
> Which led to:
>
> http://www.zlib.net/DLL_FAQ.txt
>
> To summarize, CDECL is default and therefore probably what Subversion is
> building with, but zlib may be building with STDCALL.
>
> I would check if the zlib project defines ZLIB_WINAPI and if so, remove
> it and retry the build.
>

Thanks so much for taking the time to look at this Nathan! You were right
on.  I had gotten close earlier but went the wrong way.  At one point I
*added* ZLIB_WINAPI to the config header, but of course it complained about
a redefinition.   It didn't click that I needed to *remove* it.  Pulling
that out of the build configuration finally got me linking (well, after
added /safeseh to the asm build in zlib as well).

Now to add swig to the mix and maybe eventually actually adding the change
I want to test! XD

Thanks again!

Troy

Re: Windows Compile Help

Posted by Nathan Hartman <ha...@gmail.com>.
On Jan 27, 2018, at 11:44 PM, Troy Curtis Jr <tr...@gmail.com> wrote:
> 
> I'm hoping someone can point me in the right direction with an issue I'm having compiling Subversion on Windows 10 using Visual Studio 2015 tools.
> 
> I decided to break out of my comfort zone a bit and see if I could get the changes in for the py3c dependency added on the Windows side, but I am *not* a Windows dev.  I've done a lot of learning, which as been fun, but I can't figure this last error out.  I've attached the error log, and my WIP visual studio script that basically got me this far.
> 
> It seems to complain the it can't find a handful of symbols related to zlib, but if I look at the static archive I see those names (though there are all those different calling conventions on windows, so maybe that is related to my issue?).
> 
> Anyway, I've run out of ideas and was hoping for a little nudge.
> …
> 
> 
> Troy
> <vs-build.txt>
> <svnbuilderr.txt>

Forgive the second reply but on further study of the build log and some googling around, I think the absolute/relative paths are not the culprit, and that your suspicion about calling conventions may be correct.

https://stackoverflow.com/questions/5424549/unresolved-externals-despite-linking-in-zlib-lib

Which led to:

http://www.zlib.net/DLL_FAQ.txt

To summarize, CDECL is default and therefore probably what Subversion is building with, but zlib may be building with STDCALL.

I would check if the zlib project defines ZLIB_WINAPI and if so, remove it and retry the build.

Re: Windows Compile Help

Posted by Nathan Hartman <ha...@gmail.com>.
On Jan 27, 2018, at 11:44 PM, Troy Curtis Jr <tr...@gmail.com> wrote:
> 
> I'm hoping someone can point me in the right direction with an issue I'm having compiling Subversion on Windows 10 using Visual Studio 2015 tools.
> 
> I decided to break out of my comfort zone a bit and see if I could get the changes in for the py3c dependency added on the Windows side, but I am *not* a Windows dev.  I've done a lot of learning, which as been fun, but I can't figure this last error out.  I've attached the error log, and my WIP visual studio script that basically got me this far.
> 
> It seems to complain the it can't find a handful of symbols related to zlib, but if I look at the static archive I see those names (though there are all those different calling conventions on windows, so maybe that is related to my issue?).
> 
> Anyway, I've run out of ideas and was hoping for a little nudge.
> …
> 
> 
> Troy
> <vs-build.txt>
> <svnbuilderr.txt>

There seems to be a mix of relative and absolute paths with respect to zlib in the build script. I'm writing this on my phone so I can't look at the script while writing this but the ZLIBPROJ variable (if memory serves) is assigned a relative path; the library binaries are copied from there to another relative path location; but the --with-zlib= for building Subversion uses an absolute path starting with C:\ -- perhaps you have a different zlib there? If so then you're building one zlib in this script but using a different zlib when building Subversion, perhaps one built with mingw instead of MSVC or something. That would explain the linker errors. Unless I'm missing something else :-)

Hope this helps