Compiling Cyrus IMAPD on AMD Opteron
Igor Brezac
igor at ipass.net
Fri Jun 13 12:27:30 EDT 2003
On Fri, 13 Jun 2003, Rob Siemborski wrote:
> On Fri, 13 Jun 2003, Igor Brezac wrote:
>
> > > Anything that goes inside a lib should be -fPIC. Really. I have done this in
> > > the Debian build (which runs OK in S/390, IA64, Alpha, MIPS, MIPS-EL...)
> > > ages ago. I don't know if these changes are in CMU Cyrus.
> >
> > This in true only for shared libs unless you are trying to link an
> > archive into a shared lib (which can be the case with perl modules).
> >
> > Position independent code adds some overhead. I think CMU folks like to
> > build things static as much as possible for performance reasons.
>
> Actually, we prefer shared libraries for maintainability reasons.
I stand corrected. ;) All this trouble of building static libsasl led me
to think this way.
> However, the number of shared libraries our IMAPd links (once SASL is all
> done loading etc) is something up near 25-30. Since each of these shared
> libraries costs you a per-process jump table, this gets expensive in terms
> of memory usage really fast. So, we try to link staticly in this case.
>
> > > Yep. Arch dislikes mixing PIC and non-PIC code inside a relocatable object.
> >
> > Correct. On Solaris, I build lib/ and perl/sieve/lib with -fPIC just to
> > build cyrus-imap perl stuff.
>
> Hmmmm. We've never had to do this on solaris.
>
> I wonder if we could write a configure test to determine if this is
> necessary on a given platform.
It depends on how perl is built and possibly type of compiler/linker flags
used.
Also, CFLAGS=-fPIC breaks 'make depend'. I am not sure what is the best
way to deal with this, fix makedepend?.
--
Igor
More information about the Info-cyrus
mailing list