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>