epicsEventCreate() mallocs the wrapper but epicsEventDestroy() only
destroys the embedded rtems_binary_semaphore, leaking one heap block
per event lifecycle on every RTEMS >= 5 build.
The used-bytes count is nextPut - nextGet everywhere else in this file
(epicsRingBytesPut, epicsRingBytesUsedBytes), but
epicsRingBytesResetHighWaterMark computed nextGet - nextPut. For a ring
holding u bytes it therefore stored size-u; since Put only raises the
mark, the high-water mark stayed permanently inflated and wrong.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
epicsParseDouble returns 0 on success and non-zero on failure, but the
branches were swapped: a valid delay printed "Invalid 'on error wait'
delay" and the usage text, while an invalid delay was silently accepted
with timeout forced to 5.0. Report the error on parse failure and accept
the value on success.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
errlogBufResize copied the print buffer from &pvt.print->base (the
address of the char* field inside the buffer_t struct) instead of
pvt.print->base (the buffer it points to), reading bufSize bytes from an
~8-byte struct field. Drop the stray & so it reads the actual buffer,
matching the adjacent log-buffer copy.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RTEMS performs a few early errlogPrintf calls. This initialises
the errlog buffers to some default values blocking certain tests
from re-initialising the error log later.
The DST characteristics of the POSIX EST5EDT and CST6CDT timezones
depend on whether the implementation uses the built-in POSIX definition
or reads an updated version from the tzdata files, and for POSIX
timezones, there is no specified behavior [1].
To avoid any plaform-specific behavior, we can specify the desired DST
ourselves. We used the timezone values available in
configure/CONFIG_SITE_ENV, which already included DST information, and
means the tests are consistent with our own usage.
[1] https://www.openwall.com/lists/musl/2024/03/05/2
eg. After running "false > $@", the output file modification
time will be updated. So a despite failure, a repeated
"make" will not re-run.
Handle this by accumulating output to "$@.tmp", then
move to $@ as a final step.
Fix EditorConfig failure in modules/libcom/RTEMS/epicsNtp.c
Add dbDefs to Sphinx API index, move devLib to libcom
Rename internal CA enum tag to fix Doxygen complaint
Set Clang's minimum MacOS version for aarch64 CPUs