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

Reply via email to