Greetings RTAI users! TESTERS WANTED! I have just finished completely re-working the math functions in kernel space for RTAI.
Instead of putting nearly an entire C library in kernel space, I have trimmed the living hell out of musl and have ported it for use with RTAI. The amount of (COMPLETELY SAFE) warnings of undefined symbols have been shortened dramatically, and you are welcome to start playing with the new branch here: https://github.com/NTULINUX/RTAI/tree/new-libm All of the math functions in rtapi_math.h located in the LinuxCNC source tree are fully supported. The following are: acos asin atan atan2 ceil cos exp fabs floor fmax fmin fmod pow round scalbn sin sqrt tan 53 changed files, 4,173 additions, 714 deletions -- Big commit, lots of changes, needs testing. Previously, the RTAI build system would do a fresh git clone every time during `make` and all files were git ignored. This is no longer the case, musl is now included in RTAI, but only the parts required for LinuxCNC and RTAI functionality. The result is less warnings, and less junk in kernel space. In order to make the warnings go away entirely, all of the new libm code would need to be ported to Kbuild, and I do not have the time nor the skill. These warnings are also present in mainline RTAI as the rtai_math.ko exports symbols which are not already defined. Instead, less than a second later, these symbols come statically linked from the just-built musl libm.a, defining all of the symbols that were previously undefined. In short: 1.) RTAI build system compiles musl's libm (creates libm.a) 2.) RTAI build system compiles rtai_math.ko (separately, these are where the warnings come in) 3.) RTAI build system statically links rtai_math.ko to libm.a which defines all of those symbols. With Kbuild, everything happens at once. The libm from musl and rtai_math.ko get built together, all in one module. Starting Monday I will be very busy and will not have time for RTAI anymore. If this new branch checks out OK with andypugh, Tom, and other users/testers, I will merge the `new-libm` branch into master, and bump the version to 5.2.4. After that, feel free to make a Debian release as this is the preferred way to use RTAI math support (although putting all of this cool new stuff in Kbuild is obviously a better option) andypugh, you will have to refork your RTAI tree as it is currently out of sync. I broke that tree when I was first starting out and went back and fixed some commits. Also, please do not make debs with the no-calibration branch as this was only a test for your system, and yours only. The focus now with RTAI is making sure the `new-libm` branch is working for everyone, as this is better, cleaner, and more robust than the approach on RTAI mainline, and with less warnings. This just needs testing before the merge into `master` but everything should check out OK. Thank you everyone! Alec _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers