Hi...
On Jan 25, 2008 9:27 AM, Joseph Fannin <[EMAIL PROTECTED]> 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?
The best I can think is by doing:
# grep EXPORT_SYMBOL -I -r -n /usr/src/linux
substitute /usr/src/linux with the path of your extracted kernel source.
> 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.
basically, anything...AFAIK, which isn't declared "static" can be
accessed from the modules
> 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?
Hm, I don't think so. Symbol value (in other word, its address in
.text section) is just one... so if it's inlined, then there is no
specific place to call/jump.
You said your module will call copy_page? IMHO that wouldn't possible,
because its symbol wouldn't be resolvable by the kernel module
loader...well, unless you know ELF linking trick that I don't know. I
am ready for further lessons here...
regards,
Mulyadi.
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ