On 24.02.2011 08:53, Marc Haesen wrote:
I saw a crash when running svn blame with a svn.exe compiled for win64
on trunk.

After some investigation I found the reason for the crash.


The reason is because apr.h is using the define WIN64 for defining the
APR_SIZEOF_VOIDP define.

(I am using the apr.h/apr.hw delivered with httpd-2.2.17)
Thanks for digging into that issue!
WIN64 is currently not defined when compiling for 64-bit on windows.
Luckily, TSVN is not affected by this bug as it
uses its own build script including the WIN64
define.

However, SVN cl clients and possibly *servers*
are affected.
This caused the wrong code to be generated for the contains_eol function
in subversion\libsvn_diff\diff_file.c (revision 1074059)

Two solutions:

1.      Replace #ifdef WIN64 by #ifdef _WIN64 in apr.h (or apr.hw since
this is actually the source)
Submit the patch to the APR guys (if you haven't
done so already).
2.      Add the WIN64 to the compile options when compiling for 64-bit
windows
3.    Make the SVN code work with either definition
of APR_SIZEOF_VOIDP.

I took that road in r1076556 on /trunk to make sure
that SVN will not be broken regardless of the APR
version being used.

-- Stefan^2.

Reply via email to