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