Re: why a static function is in kernel symbol table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux