From: Andrei Petrov <andrei.petrov@veritas.com>
To: Adam Heath <doogie@brainfood.com>
Cc: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>,
Andrei Petrov <andrei.petrov@veritas.com>,
"xen-devel@lists.sourceforge.net"
<xen-devel@lists.sourceforge.net>
Subject: Re: dynamic libraries
Date: Wed, 23 Feb 2005 16:18:03 -0800 [thread overview]
Message-ID: <20050224001803.GA6489@liz.veritas.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0502231713320.5424@gradall.private.brainfood.com>
On Wed, Feb 23, 2005 at 05:14:14PM -0600, Adam Heath wrote:
> On Wed, 23 Feb 2005, Keir Fraser wrote:
>
> >
> > On 23 Feb 2005, at 21:28, Andrei Petrov wrote:
> >
> > > While looking at tools build I noticed that same object files are used
> > > to build both
> > > static and dynamic libraries (libxc, libxutil). It's normally required
> > > to compile in
> > > PIC form for dynamic ones. At first I thought that no applcations use
> > > those libraries,
> > > but no, they are used by all of them. Surprisingly it doens't cause
> > > any problems (at
> > > least nobody's complaining, ld.so even).
> > >
> > > Well, anyway it doesn't look correct for me, I'd like to come up with
> > > a patch
> > > but it'll take some time, so I wouldn't mind if some Makefile savvy
> > > beat me on it.
> > > Short term solution would be always set -fPIC.
> >
> > Well, we have the functionality in the build system already; it just
> > isn't the default.
> > Where is it stated that dynamic libraries must be compiled -fPIC? They
> > contain
> > relocation info and so can be relocated wherever needed at run time.
> > Potentially
> > less efficient (library relocated to different addresses cannot have
> > its text pages
> > shared across processes) but I don't see why it is *disallowed*.
> >
AFAIK, you need position independant code for shared library, so -fPIC,
as man(1) says. I can imagine cases when code migth be PIC without
the flag, say pure code. But if you have data segment which supposed to
be relocatable and your code access it in position dependant mode, I'm
kind of doubt that would work correctly, I need to experiment with that.
> > If there's a suitably convincing explanation/reason then I will change
> > the default setting. :-)
>
> Well, it just doesn't work at all on amd64, as well as other arches. It just
> happens to work on i386, so most people never notice it.
Yep, that how I noticed it.
And, mapping to different addresses doesn't hurt page sharing.
--Andrei Petrov
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
next prev parent reply other threads:[~2005-02-24 0:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-23 21:28 dynamic libraries Andrei Petrov
2005-02-23 23:08 ` Keir Fraser
2005-02-23 23:14 ` Adam Heath
2005-02-23 23:19 ` Keir Fraser
2005-02-23 23:26 ` Adam Heath
2005-02-23 23:43 ` Keir Fraser
2005-02-24 0:00 ` Adam Heath
2005-02-24 0:09 ` smohekey
2005-02-24 0:12 ` Adam Heath
2005-02-24 1:40 ` [Xen-devel][PATCH] " Vincent Hanquez
2005-02-24 7:33 ` Keir Fraser
2005-02-24 0:23 ` Andrei Petrov
2005-02-24 0:46 ` Jacob Gorm Hansen
2005-02-24 0:18 ` Andrei Petrov [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-02-24 0:20 Charles Coffing
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050224001803.GA6489@liz.veritas.com \
--to=andrei.petrov@veritas.com \
--cc=Keir.Fraser@cl.cam.ac.uk \
--cc=doogie@brainfood.com \
--cc=xen-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.