[libc-commits] [libc] [libc] implement vdso (PR #91572)
Schrodinger ZHU Yifan via libc-commits
libc-commits at lists.llvm.org
Thu May 9 09:33:05 PDT 2024
SchrodingerZhu wrote:
```bash
strace ./projects/libc/test/src/__support/OSUtil/linux/libc.test.src.__support.OSUtil.linux.vdso_test.__hermetic__.__build__
```
On x86, the above line should generate no `syscall` for `gettimeofday`, which is indeed the case:
```
execve("./projects/libc/test/src/__support/OSUtil/linux/libc.test.src.__support.OSUtil.linux.vdso_test.__hermetic__.__build__", ["./projects/libc/test/src/__suppo"...], 0x7fffea955d20 /* 45 vars */) = 0
gettid() = 2701205
mmap(NULL, 41064, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7a9d7cdd6000
getrandom("\xca\x7c\xd2\xa3\x43\x65\x83\xfb", 8, 0) = 8
arch_prctl(ARCH_SET_FS, 0x7a9d7cde0038) = 0
write(2, "\33[32m", 5) = 5
write(2, "[ RUN ] ", 13[ RUN ] ) = 13
write(2, "\33[0m", 4) = 4
write(2, "LlvmLibcOSUtilVDSOTest.SymbolsDe"..., 37LlvmLibcOSUtilVDSOTest.SymbolsDefined) = 37
write(2, "\n", 1
) = 1
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=0, tv_nsec=696960}) = 0
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=0, tv_nsec=718680}) = 0
write(2, "\33[32m", 5) = 5
write(2, "[ OK ] ", 13[ OK ] ) = 13
write(2, "\33[0m", 4) = 4
write(2, "LlvmLibcOSUtilVDSOTest.SymbolsDe"..., 37LlvmLibcOSUtilVDSOTest.SymbolsDefined) = 37
write(2, " (took ", 7 (took ) = 7
write(2, "22", 222) = 2
write(2, " us)\n", 5 us)
) = 5
write(2, "\33[32m", 5) = 5
write(2, "[ RUN ] ", 13[ RUN ] ) = 13
write(2, "\33[0m", 4) = 4
write(2, "LlvmLibcOSUtilVDSOTest.GetTimeOf"..., 35LlvmLibcOSUtilVDSOTest.GetTimeOfDay) = 35
write(2, "\n", 1
) = 1
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=0, tv_nsec=863630}) = 0
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=0, tv_nsec=883420}) = 0
write(2, "\33[32m", 5) = 5
write(2, "[ OK ] ", 13[ OK ] ) = 13
write(2, "\33[0m", 4) = 4
write(2, "LlvmLibcOSUtilVDSOTest.GetTimeOf"..., 35LlvmLibcOSUtilVDSOTest.GetTimeOfDay) = 35
write(2, " (took ", 7 (took ) = 7
write(2, "20", 220) = 2
write(2, " us)\n", 5 us)
) = 5
write(2, "Ran ", 4Ran ) = 4
write(2, "2", 12) = 1
write(2, " tests. ", 8 tests. ) = 8
write(2, " PASS: ", 7 PASS: ) = 7
write(2, "2", 12) = 1
write(2, " ", 1 ) = 1
write(2, " FAIL: ", 7 FAIL: ) = 7
write(2, "0", 10) = 1
write(2, "\n", 1
) = 1
munmap(0x7a9d7cde0038, 41064) = -1 EINVAL (Invalid argument)
exit_group(0) = ?
+++ exited with 0 +++
```
https://github.com/llvm/llvm-project/pull/91572
More information about the libc-commits
mailing list