Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5685
The port declares a thread-local storage variant and implements none of it. `_CPU_Context_Initialize()` discards the thread-local storage area, `_CPU_Get_TLS_thread_pointer()` returns NULL, and the context switch skips r10, which is the thread pointer of the OpenRISC ABI. Every thread therefore shares whatever value that register holds. The variant is also the wrong one. The linker of this architecture computes the offsets relative to a 16 byte thread control block and reserves an aligned block of that size before the data, so an object with an alignment above 16 bytes reads as zero. Found while running the full test suite on Qemu. This description was created with Claude Code assistance. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5685 You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/5-3obnoa8zluf40t2gpwb66g4y9-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
_______________________________________________ bugs mailing list [email protected] http://lists.rtems.org/mailman/listinfo/bugs
