Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5770
The TX3904 carries the R3900 core, which has no coprocessor 1. The ABI flags of the BSP name the processor and leave the floating point ABI at the default of the compiler, which is hard float. The start code writes a pattern to two floating point registers and reads it back. It clears the coprocessor enable when the read-back fails. So the BSP detects the absence of the unit at run time and builds as if the unit were there. Every floating point operation of an executable therefore needs an instruction which the processor does not carry. `_CPU_Context_switch()` stores twelve of them on every switch. The GDB simulator executes the instruction whatever the board option, so the test suite passes. `-msoft-float` is the fix, and the compiler carries a soft float multilib for this ISA level. The change is not free. It adds four failures to the release build of the BSP. `psxfenv01` fails because the C library leaves the floating point environment unimplemented, and `dl07`, `dl08` and `dl09` report 80 unresolved symbols, because the loadable object needs the soft float helpers of the compiler runtime. Both of them need a decision of their own, so this issue stays open. Found by the specification driven validation of the context switch. The floating point checks of it report nothing on this BSP, because the exception path stores no floating point register while the coprocessor enable is clear. This description was created with Claude Code assistance. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5770 You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/namespace/49/sent_notifications/5-5tcaksxvztj5lbitu7t0sezmv-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
