po 18. 11. 2024 v 11:13 odesílatel Jean-Michel Hautbois <jeanmichel.hautbois@xxxxxxxxxx> napsal:
I had to modify the source code a bit, as it does not compile with my uclibc toolchain: ...
glibc added a gettid() wrapper with version 2.30; earlier glibc and uclibc do not have it. That can be fixed by conditionally including the inline function if on glibc lower than 2.30 or another libc; for reference on how to detect that, see how kernel self tests do it [1]. As of the FOPTS changes: are those necessary for rtla to build, or were you just using them for easier debugging? AFAIK rtla shouldn't depend on unwind tables or stack protection for functionality.
But it is not enough, as executing rtla fails with a segfault. I can dump a core, but I could not manage to build gdb for my board so I can't debug it (I don't know how to debug a coredump without gdb !). JM
I have seen a similar libtraceevent-related rtla segfault recently on ARM64, which was fixed by updating libtraceevent to a version that includes the fix. Such issues are caused by the files for kernel tracepoint tracefs having different contents on different architectures, exposing bugs. I see Steven has already fixed one of the issues on m68k [2]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/nolibc/nolibc-test.c#n1008 [2] https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/commit/?id=45a9b0647c904b7bf1240da5a11fe3a1ffd1006d Tomas