When doing the change of r1076556, should the define LOWER_7BITS_SET not always be mapped to 0x7f7f7f7f independent of the APR_SIZEOF_VOIDP setting?
//#if SVN_UNALIGNED_ACCESS_IS_OK //#if APR_SIZEOF_VOIDP == 8 //# define LOWER_7BITS_SET 0x7f7f7f7f7f7f7f7f //# define BIT_7_SET 0x8080808080808080 //# define R_MASK 0x0a0a0a0a0a0a0a0a //# define N_MASK 0x0d0d0d0d0d0d0d0d //#else # define LOWER_7BITS_SET 0x7f7f7f7f # define BIT_7_SET 0x80808080 # define R_MASK 0x0a0a0a0a # define N_MASK 0x0d0d0d0d //#endif //#endif Marc -----Original Message----- From: eq...@web.de [mailto:eq...@web.de] Sent: donderdag 3 maart 2011 9:55 To: Marc Haesen Cc: dev@subversion.apache.org Subject: Re: crash during svn blame on windows 64-bit version 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.