mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
perf_gettime() and perf_getfreq() are kernel functions, defined in sched/clock/clock_perf.c. Neither appears in syscall.csv, and libc supplies only perf_gettime(), under CONFIG_ARCH_HAVE_PERF_EVENTS_USER_ACCESS. So a protected or kernel build cannot resolve either of them from user space: ostest/perf_gettime.c:91: undefined reference to `perf_gettime' ostest/perf_gettime.c:184: undefined reference to `perf_getfreq' make[1]: *** [nuttx_user.elf] Error 1 The call in user_main() is guarded by CONFIG_ARCH_PERF_EVENTS && !CONFIG_ARCH_PERF_EVENTS_USER_ACCESS -- which is exactly the case where the symbols are kernel-only -- so every such configuration fails to link. mps3-an547:knsh is one: it sets CONFIG_SCHED_IRQMONITOR, which makes ARCH_PERF_EVENTS default y. mps2-an521:knsh escapes only because it sets neither monitor, leaving ARCH_PERF_EVENTS off, so the call compiles out and the archive member is never pulled in. Require CONFIG_BUILD_FLAT, where ostest links against the kernel's own copy. No configuration that runs the test today stops running it. Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com> Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| arch | ||
| cmocka | ||
| crypto | ||
| cxx | ||
| cxx-oot-build | ||
| drivers | ||
| enet | ||
| fff | ||
| fs | ||
| libc | ||
| ltp | ||
| mm | ||
| nettest | ||
| nuts | ||
| ostest | ||
| sched | ||
| sig_sp_test | ||
| testsuites | ||
| unity | ||
| .gitignore | ||
| CMakeLists.txt | ||
| Make.defs | ||
| Makefile | ||