Bill Allombert on Tue, 20 Nov 2001 21:24:59 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: library installation/Mac OS X


On Thu, Nov 15, 2001 at 12:31:18PM -0500, Ilya Zakharevich wrote:
> On Thu, Nov 15, 2001 at 02:17:01PM +0100, Karim BELABAS wrote:
> > What I exactly meant was to have two libraries:
> > 
> >   libparikernel.a  (src/kernel)
> >   libpari.so       (the rest)
> > 
> > and request that executables (in particular gp) be linked with -lparikernel
> > -lpari.

This will not works with kernel inlining, because you must put in kernel.a
not only the kernel, but every function that contains inlined kernel code,
i.e. almost all. The problem is the use of avma, hiremainder and overflow as
global variable in inlined asm code.

The use of GOT to access them with -fPIC is the cause of the performance
penalty.

> This does not solve the problems with Math::Pari: its build needs to
> produce a DLL, not an "executable".  Somehow, I did not see error
> reports related to this; are contemporary linkers smart enough to
> recognize that some .o files are not relocatable, so they produce
> non-shared DLLs?

In some way, yes, but it is usually a per page decision not a global one.

Have you try to compile Math::Pari on ia64-linux, hppa-linux or arm-linux ?
-fPIC is mandatory for shared lib on these archs.

Bill.