To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=45753


User jb changed the following:

                  What    |Old value                 |New value
================================================================================
                    Status|RESOLVED                  |REOPENED
--------------------------------------------------------------------------------
                Resolution|FIXED                     |
--------------------------------------------------------------------------------




------- Additional comments from [EMAIL PROTECTED] Wed Mar 23 08:10:23 -0800 
2005 -------
Our version of the BDB build process is incorrect on Windows and results in a
DLLthat is incompatible to the one distributed by sleepycat.

Linking and symbol export of libdb42 are done incorrectly. The sleepycat version
exports the C symbols by ordinal.External libraries (e.g. apoc) are linked
against that version. As a result they imports at least some symbols by ordinal.
In our version different symbols are exported in arbitrary order and without
assigned ordinals. As a result a call to db_env_create ends up calling the
constructor of DbDeadlockException with invalid parameters.

The sleepycat build specifies DLL exports in two ways: For the C exports there
is a libdb.def file, which lists these exports and assigns ordinals to them. For
the C++ exports the MSVC __declspec(dllexport)/__declspec(dllimport) feature is
used. To trigger this, one of the macros DB_CREATE_DLL or DB_USE_DLL  has to be
used when the db_cxx.h header is included.
[As we don't deliver that C++ header any more, we needn't take extra steps to
make sure clients define DB_USE_DLL.]

Our build creates (in the patch) a dxp file, which lists all the symbols we know
of (incidentally that is fewer symbols than in the sleepycat DLL  (419 vs. 465))
in mostly arbitrary order. This should be changed to use the same mechanisms as
the sleepycat build: For C symbols use the DEF-file, for C++ symbols add
/D"DB_CREATE_DLL" in the makefiles.

The investigation of this problem also revealed that libdb_java42 is also built
incorrectly. The original version is linked against the libdb42.dll. The
StarOffice version statically links all of the objects that make up libdb42
instead. This is certainly incorrect and could possibly cause problems, because
two independent instances of the bdb engine are active in the same process. This
should also be fixed when correcting the problem.



---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to