Compiling Cyrus IMAPD on AMD Opteron
Stephen L. Ulmer
ulmer at ufl.edu
Fri Jun 13 12:28:46 EDT 2003
On 13 Jun 2003, Rob Siemborski said:
> 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.
>
> 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.
Isn't that what libtool is for? For the Perl stuff explicitly:
root at spcws1en1:46$ perl -V:cccdlflags
cccdlflags='-fpic';
root at spcws1en1:47$
--
Stephen L. Ulmer ulmer at nersp.nerdc.ufl.edu
Senior Systems Programmer http://www.ulmer.org/
Northeast Regional Data Center VOX: (352) 392-2061
University of Florida FAX: (352) 392-9440
More information about the Info-cyrus
mailing list