From: Nickolay S. <sk...@bs...> - 2003-10-27 21:41:32
|
Hello, Brad ! >> 2. there is no substantial difference between server engine and client >> library. For example, when you link to libfbembed.so you actually link >> to full-fledged embeeded server engine. > So to get this straight, should there be a fbclient library and is that what > the client programs should link with or can I link with fbembed and use that > in a client? If I'm supposed to be using fbclient then its missing from the > RPM package I got. You are may use libfbembed.so as a client library (or as embeeded local server) for single-threaded applications. You should use libfbclient.so for multi-threaded applications. I can include libfbclient.so in CS RPM if there are no objections. >> I'll take a look at FB1.5 codebase and will recon what can be done >> there with this problem. And yes, this is the real problem. > Thanks! Its a real show stopper at least for me and I assume it will bite > other people when they link with libstdc++ in the wrong order or try to > dynamically load the library. It looks like I was able to create solution for this problem. It is really dirty hack, actually. The idea of solution is to replace operators and objects defined in STL <new> header with static inline ours (given some GNU STL internals knowledge). We need to make sure that our header is always included before system <new> and prevents it from inclusion (via defining __NEW__ actually). We also need to include the header with re-defined operators for each module that uses them (thus I added it to firebird.h). This approach will fail if something from the following changes: 1. static inline functions are always expanded and are not exported 2. none of STL code that Firebird uses is contained in libstdc++5.so, in particular no pre-instantiated templates are used 3. STL templates are not pre-compiled I hope this is a temporary solution. I think to commit it to CVS HEAD tomorrow and let people test it. If there are no problems, I'll backport it to B1_5_Release branch. Suggestions ? -- Nickolay Samofatov mailto:sk...@bs... |