Thanks to John Stultz, now I know that this may relate to the new improvements about IPA-SRA in GCC 10. Refer to [1], which states: "Inter-procedural optimization improvements: The inter-procedural scalar replacement of aggregates (IPA-SRA) pass was re-implemented to work at link-time and can now also remove computing and returning unused return values."
However, such a change of symbol names negatively impacts the tracing tools commonly used in kernel debugging. Such as bcc/eBPF, who __hardcoded__ function names (without the .isra.0 suffix) into their scripts. [1] https://gcc.gnu.org/gcc-10/changes.html On Fri, Mar 5, 2021 at 11:21 AM Guodong Xu <guodong...@linaro.org> wrote: > Hi, all > > Does anybody know what does '.....isra.0' mean in GCC 10.2 compiled > objects? > > I just noticed this issue when using bcc/eBPF tools. I submitted the > detail into > * https://github.com/iovisor/bcc/issues/3293 > > Simply put, when building a linux kernel with GCC 10.2, the symbol > 'finish_task_switch' becomes 'finish_task_switch.isra.0' in the object (as > reported by 'nm') > > Because a lot of kernel tracers (such as bcc) use 'finish_task_switch' as > the probe point, this change in the compilation result can make all result > such tools fail. > > Thanks. > Best regards, > Guodong Xu > > _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-toolchain