|
From: Neal R. <ne...@ri...> - 2002-05-09 02:47:49
|
On Wed, 8 May 2002, Gilles Detillieux wrote: > According to Neal Richter: > > Hey, > > So we're working on a native windows port of HtDig... > > > > Using the cygwin environment and the 'mingw' too-chain an headers files. > > > > Basically MinGW is an attempt to fashion a set of native windows > > libraries, and headers that expose the functions in CRTDLL.DLL, > > MSVCRT.DLL and let you use the gcc/g++ tools to compile native windows > > programs and DLLs. > > > > I have it compiling... minimal changes in the db, htlib, htnet, htcommon, > > htword directories. Larger changes in the htserach & htdig directories > > (Native windows does not have POSIX signals). > > > > Here's the problem we are having... the code in the htdig-xxx/db dir is > > behaving differently. > > > > Specifically htdig produces database files that report an error upon > > loading > > > > "filesize not a multiple of pagesize" > > > > The execs produce db.xxx files that can by 'one byte' off in size in > > comparison to cygwin or linux binaries. > > > > So here's the question. Does anyone know why the BDB code would behave > > differently in native windows? > > > > we're currently working on makefiles to use native microsoft compilers... > > > > Thanks! > > We've had lots of reports of that error happening with Cygwin ports of > ht://Dig too. It seems some versions cause this and some don't, but > we've never mapped out which do or don't. We've also never managed to > get to the bottom of this. I've also seen a report of this error on a > Solaris system, but I don't know how closely related this is to the ones > on Windows systems. I believe running out of disk space, or exceeding > your quota, can trigger this error, but in many of the reports from > Cygwin users this had been ruled out. > > My gut instinct suspects a problem with inconsistent structure padding on > some systems, or with some header files, but I never dove deeply enough > in the DB code to determine this for a fact. > This error pops up with either the Microsoft compilers (we wrote a completely different set of makefiles for it) or the MinGW tools. We downloaded the latest copy of BDB from sleepycat. It contained a win32-native db_config.h that made the Microsoft compiler tool-chain happy. And the error happens on different DB files depending on how much information is gathers by HtDig.exe I'm hip deep in it now trying to follow all the calls to write(..) in windows. We're considering just linking htdig.exe against the most recent version of BDB to see if it goes away. BDB is pretty complex code... it seems like the windows execution path is very different from the Linux execution path.... so even a comparative log of the writes doesn't work well. (different 'pagesize' for DB files) Thanks. -- Neal Richter Knowledgebase Developer RightNow Technologies, Inc. Customer Service for Every Web Site |