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

Re: VC8, BDB -> incompatible

From: Branko Čibej <brane_at_xbc.nu>
Date: 2006-01-19 01:10:58 CET

Stefan Küng wrote:
> Branko Čibej wrote:
>> Stefan Küng wrote:
>>> Hi,
>>>
>>> If Subversion (and BDB) is compiled with VC8 (or
>>> VCExpress/VS.NET2005), the resulting binaries will work ok, but BDB
>>> repositories aren't compatible anymore with other clients.
>>>
>>> I've searched the web and found some posts indicating that the
>>> change in the size of time_t is the reason for this. So by defining
>>> _USE_32BIT_TIME_T, this should not be a problem anymore. But a BDB
>>> repo created with the official Subversion client is still
>>> incompatible. A client compiled with VC8 still can't access such a
>>> repository via file:/// but crashes.
>>>
>>> Does anyone know how to fix this? Maybe a compiler switch I can use?
>>> Another define I forgot? Because if I can't keep a client compiled
>>> with VC8 compatible anymore to the official Subversion client,
>>> that's bad.
>>> I'm close to getting rid of BDB in TSVN because of this: better to
>>> have users ask why something doesn't work anymore and tell them to
>>> dump/load to FSFS than to receive 50 crashreports a day.
>>
>> I've told you this before: *don't build your own BDB DLLs for TSVN*.
>>
>> Use the ones that I posted on subversion.tigris.org. There is no
>> issue of runtime library compatibility since at least svn-1.1,
>> because we tell BDB which malloc(), realloc() and free() to use.
>
> The problem with that approach is that I can't debug my app anymore.
> Because the CRT debug dll's aren't part of the OS, and they don't ship
> with the newer VS.NET but only with VC6.
Aargh. If this is about building the debug version on your dev machine
(not distributing it), then I'm sure something can be arranged.

>
> But I now got it working anyway:
>
> add the line
> #define _USE_32BIT_TIME_T
> at the top of the file /build_win32/db_config.h and then rebuild the
> berkeley db dll's. It's not enough to just set _USE_32BIT_TIME_T as a
> compiler define - I don't know why but that doesn't work.
>
> Then, all the libs using the berkeley dll's must also be compiled with
> _USE_32BIT_TIME_T defined. That includes apr-util and Subversion. So
> you might want to patch your build generator to set that define.
>
> For those interested:
> I have created Nant build scripts which will build all the libs and
> Subversion without using devenv but the cl.exe and link.exe alone.
> You can find those scripts here:
> http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/ext/build/
>
> By using those scripts, I can avoid learning python to patch the
> Subversion build generator if I need to.
You also opened another opportunity for incompatibilities between TSVN
and Subverison creeping in. But I'm inclined towards feeling that it's
your problem.

-- Brane

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jan 19 03:06:11 2006

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