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

Re: more non-PIC static libs in shared libs



On Sat, Jan 11, 2003 at 05:27:44PM +0100, Daniel Kobras wrote:
> On Fri, Jan 10, 2003 at 05:31:39PM -0500, Daniel Jacobowitz wrote:
> > Yes.  If you hide the symbols, using __attribute__((hidden)) and/or
> > version maps, the linker will resolve the relocations.  This is perfect
> > if you don't want the symbols visible externally at all.  There's some
> > more complex things you can do if you want them to be externally
> > visible and still resolved internally.
> 
> Do you have pointers on where to look up those more complex things?
> Most of the symbols in libdv's assembly are merely referenced from other
> object files, only a couple are exported to apps.  I've tried listing
> them in --exclude-symbols, but apparently this only sets the type from
> FUNC to NOTYPE; TEXTREL is still set.

In that case a linker (version) map is all you need.  Search for
VERSION in the ld documentation.  If you don't need to actually version
anything, you can just do:

{
  global:
    list; of; exported; functions;
  local:
    *
}

and then use -Wl,--version-script,FILENAME at link time.  This is a
good idea for any shared library anyway.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



Reply to: