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

Reply via email to