On Thu, 26 Apr 2007 11:16:57 -0400 Hong Ye <[EMAIL PROTECTED]> wrote:
> Hi, > > I have an Apache module which makes calls to functions in Kerberos > library. On the redHat server that I build my Apache module, there is > kerberos library that come with redHat. But I don't want to use that > one since it is too old. So I compiled and installed a newer version > of kerberos library in my own directory. In my build script, I > specified to use the kerberos library in my own directory for linking. > > After my Apache module is loaded, I found there are namespace > collisions. There are global symbols with the same name, one is from > the kerberos library I installed, the other one is from the kerberos > library that come with redHat. > > Can someone help me out? You can't expect to load multiple versions of the same library. Your module should specify the library as a dependency, and require [version x or later] as appropriate. Users can then load a version compatible with your module and any others that use the library. As regards distributions such as redhat, if their packaging system makes this unduly difficult for their users, you might want to raise the matter with them. This is one reason why it's preferable to use LoadFile to load your libraries, rather than link them in. -- Nick Kew Application Development with Apache - the Apache Modules Book http://www.apachetutor.org/
