On Thu, 5 Mar 2026 18:14:01 GMT, Kevin Walls <[email protected]> wrote:
>> src/jdk.hotspot.agent/linux/native/libsaproc/symtab.c line 424:
>>
>>> 422: int st_type = ELF_ST_TYPE(syms->st_info);
>>> 423: if (st_type != STT_FUNC && st_type != STT_OBJECT &&
>>> 424: st_type != STT_NOTYPE && st_type != STT_NOTYPE) {
>>
>> Looks like duplication of st_type != STT_NOTYPE
>> ah, so the symbol table read may have missed the trampoline method before.
>
> __restore_rt is a FUNC, not sure if there are variations that are STT_NOTYPE
> so we need this?
Thanks, fixed.
> __restore_rt is a FUNC, not sure if there are variations that are STT_NOTYPE
> so we need this?
In vdso.so on AArch64 Linux Kernel, signal trampoline (`__kernel_rt_sigreturn`)
is `STT_NOTYPE` at least, so I think it should be accepted. (I don't know why
it is `NOTYPE`)
$ readelf -sW vdso.so
Symbol table '.dynsym' contains 6 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 OBJECT GLOBAL DEFAULT ABS LINUX_2.6.39
2: 0000000000000760 108 FUNC GLOBAL DEFAULT 7
__kernel_clock_getres@@LINUX_2.6.39
3: 00000000000007f0 8 NOTYPE GLOBAL DEFAULT 7
__kernel_rt_sigreturn@@LINUX_2.6.39
4: 0000000000000744 20 FUNC GLOBAL DEFAULT 7
__kernel_gettimeofday@@LINUX_2.6.39
5: 0000000000000730 20 FUNC GLOBAL DEFAULT 7
__kernel_clock_gettime@@LINUX_2.6.39
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29731#discussion_r2893042125