[DTrace-devel] [PATCH 2/4] test: Use syscall in case of no execveat() wrapper
Eugene Loh
eugene.loh at oracle.com
Tue Oct 7 17:44:32 UTC 2025
On 10/7/25 11:38, Kris Van Hees wrote:
> On Mon, Oct 06, 2025 at 05:57:24PM -0400, eugene.loh--- via DTrace-devel wrote:
>> From: Eugene Loh <eugene.loh at oracle.com>
>>
>> While execveat() appeared in kernel 3.19, GNU C library support
>> came later. We are still testing on some systems with older libc.
> Wow, we do?
Yeah, I know.
> I am curious where...
E.g., I just launched a fresh OCI OL8 instance.
$ uname -r
5.15.0-312.187.5.1.el8uek.x86_64
$ ls -l /usr/lib64/libc.so*
-rw-r--r--. 1 root root 253 Aug 5 17:05 /usr/lib64/libc.so
lrwxrwxrwx. 1 root root 12 Aug 5 17:06 /usr/lib64/libc.so.6 ->
libc-2.28.so
$ nm /usr/lib64/libc.so.6 |& grep execve
00000000000388d0 t __execve
00000000000388d0 W execve
0000000000108500 T fexecve
00000000000388d0 t __GI___execve
00000000000388d0 t __GI_execve
On an OL9 instance I get:
$ ls -l /usr/lib64/libc.*
-rw-r--r--. 1 root root 7000662 Aug 5 08:18 /usr/lib64/libc.a
-rw-r--r--. 1 root root 253 Aug 5 08:15 /usr/lib64/libc.so
-rwxr-xr-x. 1 root root 2544448 Aug 5 08:18 /usr/lib64/libc.so.6
$ nm /usr/lib64/libc.so.6 | grep execve
00000000000d9eb0 t __execve
00000000000d9eb0 W execve
00000000000fd300 T execveat
00000000000d9ee0 T fexecve
00000000000d9eb0 t __GI___execve
00000000000d9eb0 t __GI_execve
$ ldd --version
ldd (GNU libc) 2.34
>> Do not assume libc has an execveat() wrapper: use syscall().
>>
>> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
> Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Thanks.
More information about the DTrace-devel
mailing list