I think I found the cause. After GCC optimization, those static functions are not visible any more in the object file (not sure because of function inlining?). Thus, they don't show up in vmlinux or /proc/kallsyms. I tried changing it to -O0, they all show up. Thanks, Ji On Fri, Jun 13, 2014 at 12:10 AM, Ji <lijimlee@xxxxxxxxx> wrote: > Thank you very much for replying. > > I actually notice that there are many static functions in that file. > However, some of them show up in symbol table, the rest do not. So what you > are saying is that there is no connection between being a static function > and showing up in kernel symbol table. Then what causes the difference > appearing in symbol table or not? In other word, if i add a new static > function and like it in kallsyms, what should I do? > > Thanks, > Ji > ________________________________ > From: Valdis.Kletnieks@xxxxxx > Sent: 6/12/2014 8:47 PM > To: Ji Li > Cc: Kernelnewbies@xxxxxxxxxxxxxxxxx > Subject: Re: why a static function is in kernel symbol table > > On Thu, 12 Jun 2014 16:23:58 -0700, Ji Li said: > >> I happened to find that a static function show up in kernel symbol table: > >> Could anyone kindly cast some light? > > Hint: 'static' prevents code in other compilation units (basically, other .c > files) from referencing it directly (though they can still access it via a > function pointer variable or other similar tricks). That does *not* mean > that > other code in the *same* compilation unit can't reference the static > function > in a way that requires a symbol table entry... > _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies