On Mon, 2008-01-28 at 12:52 +0200, Adrian Bunk wrote:
> On Thu, Jan 24, 2008 at 09:27:29PM -0500, Joseph Fannin wrote:
> > Hi!
> >
> > Is there are simple way to get a list of the exported symbols
> > (i.e. with EXPORT_SYMBOL) for a particular kernel arch, preferably
> > without building a kernel for that arch?
> >
> > I'd like to find a definitive way to see if a symbol is exported or
> > not for a particular architechture -- without a full suite of cross
> > compilers.
>
> Please clarify what you mean with "list of the exported symbols for a
> particular kernel arch" - which symbols are exported heavily depends on
> the kernel configuration.
>
> What exactly do you want to do with the result?
Unionfs needs copy_page() exported, but on a number of architectures it
isn't. I sent akpm a patch for one; when I saw the problem on arm as
well I thought I could just get them all in one go.
If there's no definitive way to get that information, it's probably best
I don't try it. I've got other nits to work on. :-)
> > One more thing -- consider you have:
> >
> > static inline void copy_page(void *to, void *from)
> > {
> > copy_4K_page(to, from);
> > }
> >
> > ... and copy_4K_page is exported, but copy_page is not. Is it
> > possible that gcc would optimize copy_page() away, so that modules
> > referencing copy_page would end up getting (the exported) copy_4k_page
> > and would work?
> >
> > That last doesn't seem likely to me, but I thought I saw it happening
> > somewhere. I would like to understand this a bit better.
>
> The way we redefine inline in the kernel we force gcc to always inline
> copy_page() in your example, and the modules will therefore always
> directly call copy_4K_page().
That makes a lot of sense. Thanks!
--
Joseph Fannin
[EMAIL PROTECTED]
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ