System.map with symbols from discarded sections
Quite a few functions in the 2.3 kernels and up are marked as __exit. This puts the functions in the .text.exit section that is marked as DISCARD
in vmlinux.lds.
It turns out that if the function is static, ld never puts it into the symbol
table of vmlinux; however, if the function is global, ld throws it into the
*ABS* section of vmlinux with an address most likely lower than PAGE_OFFSET.
These symbols are included in System.map since they are not 'a' type but 'A'
type. An example of which is 'acpi_exit', as shown below,
00000000 A acpi_exitc0100000 A _textc0100000 t startup_32c0100000 T _stext
...
It seems rather harmless except it breaks the readprofile utitlity which reads
the System.map. I am wondering if ld is behaving correctly.
Regards,
Peng
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/