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 jfannin@xxxxxxxxx -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ