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

RE: Linker issues building subversion on Windows

From: Johan Corveleyn <johan.corveleyn_at_uz.kuleuven.ac.be>
Date: Wed, 9 Sep 2009 02:36:33 +0200

> Van: Daniel Shahaf [mailto:d.s_at_daniel.shahaf.name]
> Johan Corveleyn wrote on Fri, 28 Aug 2009 at 10:41 +0200:
> > Note: I'm very unexperienced in building on Windows, but was
> trying to
> > make a build myself yesterday with VC Express 2008 (based on
> > a Makefile posted by Daniel Shahaf:
> > http://svn.haxx.se/users/archive-2009-07/0764.shtml). I didn't
> get
> > through it yet (got stuck on building openssl), and gave up
> around 3am
> > this morning.
> > Will try again this weekend :).
> >
> And...?
> If you get stuck with openssl, the easiest solution is to remove it
> from
> the build (don't pass it to gen-make.py) --- it's only used by
> neon/serf,
> not by Subversion itself. (Once you can build an ssl-less svn.exe,
> we can
> go back and figure out openssl.)
> However, the build instructions in openssl/INSTALL.W32 are not hard
> (assuming you have Perl installed already)...
> Daniel
> (always good to see more people build on windows)

Sorry to be so slow, but I didn't get around to it as fast as I wanted to. However, I've now been able to spend some more time with it, and ... I succeeded, Woohoo! With openssl. Now I can finally start experimenting with my own Windows build of the svn client from trunk.

I must say it wasn't easy. Your Makefile was very helpful, Daniel, but still I encountered many issues along the way (though some of them may be totally newbie-stuff). I'll list them here FYI:

0) First had to change some more paths in the Makefile, but that's nothing. Just a little tweaking ... Then had to prepare all the dependencies, but I took them from the subversion-deps-trunk.zip that I downloaded from the nightly tarball location. That was also still no problem.

1) zlib wouldn't compile with masm (ml.exe) included with VCE 2008. I got errors like "inffas32.asm(647) : error A2070: invalid instruction operands". See e.g. http://www.deanlee.cn/windows/inffas32asm-error-a2070-invalid-instruction-operands/

I didn't want to mess with the (assembler-)source, so in the end I found an old masm (6.xx), and put that in place of the ml.exe of VCE 2008. That fixed it (However, see 4).

In the meantime, I read somewhere that zlib contains a .sln file in its tarball in contrib/vstudio/vc8 that might do a better job here.

2) The svn build complained about not finding libapr-1.lib (although apr, apr-util and apr-iconv seemed to have been correctly built, i.e. there was). I couldn't find the file either, so after some troubleshooting I decided to build apache entirely from source. That helped (I changed the Makefile to use --with-httpd instead of --with-aprutil and friends).

3) apache was also not trivial to build (I thought I needed to build it from source, according to svn's INSTALL document; it got me the necessary libapr-1.lib etc.). Following the instructions on http://httpd.apache.org/docs/2.2/platform/win_compiling.html helped. I couldn't get it to build from the command line, but opening and building the project from the VCE Studio worked.

4) building openssl failed with some strange error (forgot to write it down). I was using ms/do_masm (do_ms didn't work either). Apparently it was failing because of the 6.xx ml.exe I put in place while fixing zlib's build. Placing the original back from VCE 2008 fixed it.

5) Finally, a minor Makefile issue: when executing "nmake /f Makefile.pub all1", it ended with the following error:
        "c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" package

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.

NMAKE : fatal error U1073: don't know how to make 'package'
NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : return code '0x2'

I.e. the following didn't seem to work:
all1: targetdir
        $(MSBUILD) /t:__ALL__
        $(MAKE) package

After that, I just executed the "package" target directly and all was well :).
Thanks again for providing the Makefile. I don't have time (or enough knowledge) to contribute to improve the build process for Windows, but I hope my feedback is helpful.

Kind regards,


To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-09-09 02:37:33 CEST

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

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