libtool
[Top][All Lists]
Advanced

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

Re: -dlopen self on AIX


From: Albert Chin
Subject: Re: -dlopen self on AIX
Date: Sun, 30 Oct 2005 21:54:52 -0600
User-agent: Mutt/1.5.6i

On Sun, Oct 30, 2005 at 12:16:01PM -0600, Albert Chin wrote:
> On Sun, Oct 30, 2005 at 11:56:30AM -0600, Albert Chin wrote:
> > On Sun, Oct 30, 2005 at 11:14:14AM -0600, Albert Chin wrote:
> > > [snip ...]
> > > 
> > > This means the method libtool uses to support -dlopen self on AIX
> > > won't work (by building a list of symbols into some xxS.o file and
> > > linking it with the executable). The real solution is to -bE the
> > > symbol list. What's the cleanest way to do this?
> > > 
> > > Dynamic module support in openldap-2.3.x isn't working on AIX for the
> > > above reason. Using -bexpall or -bE when linking the main binary does
> > > work though. While the main binary, slapd, doesn't dlopen itself,
> > > modules it dlopen()'s cannot resolve symbols in slapd because they
> > > weren't exported.
> > 
> > Seems the openldap folks should really use -export-dynamic, which
> > isn't defined for AIX. We could make it -bexpall but as documented in
> > the previous mail, it doesn't export everything. So, should we create
> > a new variable, export_dynamic_cmds? If so, and temporary files are
> > created by it, how do we clean up?
> 
> Related to this, if always_export_symbols=yes, shouldn't we run
> $export_symbols_cmds against programs as well? export_symbols_cmds=yes
> only on AIX but it's equally important for programs and libraries.

I finished a patch for this but it's not robust. There's nothing we
can do. If a program links against an archive library in the build
process, the linker will pull in whatever symbols it needs from the
archive library. If we export a full set of symbols from both the
program and the library, we might get unresolved symbols from the
linker because we've included symbols in the export list that the
linker wouldn't pull in from the archive library because the program
never references them.

Oh well.

-- 
albert chin (address@hidden)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]