Date: Wed, 17 Feb 1999 22:39:47 -0800 (PST) From: John Polstra <jdp@polstra.com> To: kbyanc@freedomnet.com Cc: hackers@freebsd.org Subject: Re: symbol export question Message-ID: <199902180639.WAA69320@vashon.polstra.com> In-Reply-To: <000201be59e3$0ebbf5c0$1468f0c6@tech.freedomnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <000201be59e3$0ebbf5c0$1468f0c6@tech.freedomnet.com>,
Kelly Yancey <kbyanc@freedomnet.com> wrote:
>
> I saw a similar question pop up a few days ago relating to Apache's DSO
> model, but I never saw an answer. I have a similar problem that I'm hoping
> that someone with more dynamic library experience can help me with...
>
> I have written a program which loads dynamic libraries using dlopen() and
> friends to implement optional functionality. The main executable can call
> dlsym() to properly resolve the symbols in the libraries and the libraries
> can call symbols exported from the main executable. Everything works. Now,
> for the trick...the only reason I can get it to work right is because I pass
> the -Xlinker -E parameter(s) to gcc so that it tells ld to export *all* the
> symbols in each the main executable and the modules. While this works, it
> seems like a nasty kludge.
No, it's the only way to do what you want to do. If you think it's a
kludge, consider that it was the default in the a.out tools. You just
didn't notice it before. :-)
> I looked at the PAM sources under /usr/src/lib/libpam and see that if PAM
> is compiled to use dynamic modules, it defines PAM_EXPORT as extern (which
> is then in turn used for each symbol declaration to be exported). Well, I
> have 2 problems with that:
That's an entirely separate thing, which has nothing to do with your
question above.
John
--
John Polstra jdp@polstra.com
John D. Polstra & Co., Inc. Seattle, Washington USA
"Nobody ever went broke underestimating the taste of the American public."
-- H. L. Mencken
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902180639.WAA69320>
