Most errors found with:
codespell -L cach,thst,odly,aslo,parm,parms,inpu,ges,prset,pevent,ptd,pring,valu,noo,noe,ned,inout,ro,siz,froms,nd,fo,singl,sart,multy,tthe,allong,ment,inate,nodel,tring,alse,ture,thi,wille,numer
Some more manually found (its -> it's)
c++20: Do not use apostrophe (e.g. can't) in unquoted #error message
OP_SYS_LDLIBS ends up on the GeSys object link command line, which ends
up breaking things. When linking GeSys objects, a symbol root is not
defined using -u or -e, which is required for --gc-sections to work.
If you overwrite INSTALL_LOCATION in CONFIG_SITE, then it would be the case that
TOP_CFG_CONFIGS would point to those from EPICS base and not from the module
that you are loading. Fetching these earlier fixes that issue.
This allows other modules like pvxs to find files there, too.
Also, the install locations of homebrew and MacPorts are now
detected rather than assumed.
If a package is installed in both, the homebrew version is preferred.
Certain windows build environments (see
https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=1234387&view=results
for an example) fail unless the echo command is properly quoted. This
seems to be due to how Make handles various commands on non-posix
systems; without the quotes it directly tries to run
```
echo foo bar
```
inside cmd.exe, which fails as echo is not a valid command in that context.
Co-authored-by: Anders Harrisson <anders.harrisson@ess.eu>
This flag causes EPICS to call abort() on assertion failures rather than
suspend the executing thread. With the epicsThreadSuspendSelf() behavior,
an IOC can end up in a difficult to detect error state where one or more
threads has essentially crashed due to an assertion failure.
This also matches the C behavior of assert(3)
RTEMS 6 has moved the legacy network support out of the main repo
to a 3rd party library. This change adds support for using the
legacy networking stack with EPICS in a backwards compatible way.
A BSP can be built with libbsd or the legacy stack and by default
EPICS 7 assumes libbsd.
This patch also fixes the LDFLAGS adding the RTEMS LDFLAGS imported
from Makefile.inc.
Markdown can be generated from .pod and .dbd.pod files.
Markdown will be generated and installed by "make inc".
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
Co-authored-by: Andrew Johnson <anj@anl.gov>
The problem is that VSCode's make extension, in order to determine
some information about the project, runs
```
make --dry-run --always-make
```
which despite its name will actually try to remake the configure/*
files. Running `installEpics.pl` on these will delete them first,
then try copy them, resulting in an error.
Since Make version 4.4, MAKEFLAGS also contains long options and
overridden variables on the command-line[1].
[1]: https://git.savannah.gnu.org/cgit/make.git/tree/NEWS?h=4.4#n67
This means that parsing by filtering out '--%' doesn't work reliably
anymore, since it doesn't remove overrides:
Running 'make VAR=quacks' gives 'MAKEFLAGS=" -- VAR=quacks"', and
'checkflags' would understand that flags -q, -s, ... were set.
This would get transmitted below into 'QUIET_FLAGS' and
'QUESTION_FLAG', then passed to the 'genVersionHeader.pl' as '-i' and
'-q'.
The result would be that 'genVersionHeader.pl' would never create the
version header (only check for its up-to-date status), leading to
confusing errors:
../misc/epicsRelease.c:25:32: error: expected ')' before 'EPICS_VCS_VERSION'
25 | printf ( "## %s\n", "Rev. " EPICS_VCS_VERSION );
| ~ ^~~~~~~~~~~~~~~~~~
The NEWS file[1] recommends using 'firstword', but unfortunately this is
not compatible with GNUMake < 3.82.
FreeBSD 13 uses clang, not gcc, any more.
GNU_DIR must be set to /usr/local
Note: This change touches both the x86 and the x86_64 files.
It was tested on 'amd64' system only, which is x86_64
Commit b38ff09f6e and
commit d9ca8a70f0 introduced the TAB
completion in iocsh.
Commit 1f75813a4d enabled it for MacOs
having readline installed via HomeBrew.
This commit enables it for MacPorts.
That .pod file will now be converted to .html using the same style as
the individual local documents that it links to.
The dbdToHtml output files now include a header and footer that link to
the ComponentReference.html file (they started pointing to the original
RecordReference.html but that was broken on most people's builds because
we weren't converting that from the original Markdown version).
This commit also adjusts documentation/Makefile to use the build system
properly, and reorders the Doxygen main page index.
It's been deprecated by Apple in latest XCode and generates warning
messages when creating .dylib libraries, but they don't yet have a
solution for use when creating loadable libraries (.bundle files).