[Python-Dev] Windows x64 & bsddb 4.4.20 woes

Trent Nelson tnelson at onresolve.com
Fri Mar 14 13:54:31 CET 2008


> > Removing the dependency on db_static.vcproj and merging the relevant
> > source code files into _bsddb.vcproj did the trick -- all x64
> > bsddb-related tests now pass.  The only issue with this approach is
> > that it locks _bsddb.vcproj into 4.4.20.  However, considering that
> > this approach (i.e. bringing their source files into our build
> > instead of linking against a static lib compiled with wildly
> > incompatible flags) only took me about two minutes to implement and
> > immediately fixed every bsddb problem I was encoutering, I'm
> > convinced it's the right way to go.  (I can separate the dependencies
> > easily enough.)
>
> I'm convinced this is the wrong approach. Are you sure you copied
> all compiler settings over to the project correctly? What is the
> procedure to upgrade such a setup? What is the procedure for people
> who want to build with a different version of bsddb?

I reviewed all the compiler options used by db_static.vcproj -- the only thing I needed to bring over was -DDIAGNOSTIC for debug builds.  Everything else either had no impact and could be safely dropped, or conflicted with compiler options used by the rest of the python build (function level linking, buffer overflow checks, etc).

Regarding support for users who want to build with different versions of bsddb; if they want a functional build that passes tests they're going to have to do something similar to the work I've done anyway.  As it stands now, the .lib generated by db_static.vcproj for x64 builds just straight out does not work.  That can be fixed in two ways: coerce db_static.vcproj into matching our build, or mimicking db_static in a new .vcproj that's contained with our build, inheriting our property sheets.  I chose the latter.

    Trent.


More information about the Python-Dev mailing list