RTEMS-5 support
This port is based on Andrew's changes to the configuration system. It introduces a new variable RTEMS_SERIES. Old API sources (<5.0) files can now be found in libCom/osi/os/RTEMS kernel. New sources in libcom/osi/os/RTEMS-posix. I tried to use as much as possible of the standard posix without changes for RTEMS-5.
Unfortunately it doesn't work for PowerPC on the newest master of RTEM-5 yet. Chris John is still tinkering with libld here. But this should work again at the end of the week. I tested it extensively only on the beatnik (MVME6100) hardware.
This is because of a bug: https://devel.rtems.org/ticket/2830 On qemu-i386 a single test (part of epicsTimeTest) is stuck and hanging with RTEMS-pc386-qemu:
{ // badNanosecTest static const char * pFormat = "%a %b %d %Y %H:%M:%S.%4f"; try { const epicsTimeStamp badTS = {1, 1000000000}; epicsTime ts(badTS); char buf [32]; ts.strftime(buf, sizeof(buf), pFormat); testFail("nanosecond overflow returned "%s"", buf); } catch ( ... ) { testPass("nanosecond overflow throws"); } }
It prints the testPass "nanosecond overflow throws" and is hanging after that.
This is because of a bug: https://devel.rtems.org/ticket/2830. I will ask Gedare if this can be fixed.
Things I haven't been able to do yet: Messages to the console (errPrintf, printf (stdout, stderr) are mixed and are not readable. The line editor (readline?) does not work yet.