Compare commits

...

1867 Commits

Author SHA1 Message Date
Andrew Johnson
86154953f5 Final commit for 7.0.9
Some checks failed
Check EditorConfig / editorconfig (push) Failing after 2s
Base / Cross linux-aarch64 (push) Failing after 1s
Base / Cross linux-arm gnueabi (push) Failing after 2s
Base / Cross linux-arm gnueabihf (push) Failing after 1s
Base / Fedora-33 (push) Failing after 2s
Base / Fedora-latest (push) Failing after 1s
CodeQL / Analyze (cpp) (push) Failing after 2s
Base / Ub-20 gcc + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc + MinGW (push) Has been cancelled
Base / Ub-20 gcc unsigned char (push) Has been cancelled
Base / Ub-20 gcc C++11, static (push) Has been cancelled
Base / Ub-20 gcc + MinGW, static (push) Has been cancelled
Base / Ub-22 gcc-12 c++20 Werror (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
Base / Ub-20 clang C++11 (push) Has been cancelled
Base / MacOS clang (push) Has been cancelled
Base / Ub-20 clang (push) Has been cancelled
Base / Ub-20 gcc + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc + RT-5.1 pc686 (push) Has been cancelled
2025-02-21 17:31:33 -06:00
Andrew Johnson
07572ab025 Update submodules to released versions 2025-02-21 15:47:00 -06:00
Andrew Johnson
0733beae50 Fix for PR #597 breakage of VS-2012/2010 builds 2025-02-20 10:27:41 -06:00
Andrew Johnson
a3d8531008 Revert PR #589
* Revert "Release Notes for PYTHON=python3"
  commit 2612b47c3f.

* Revert "Remove Python build dependency when LINKER_USE_RPATH=ORIGIN"
  commit f4c474eb77.
2025-02-19 14:10:16 -06:00
Michael Davidsaver
7a6e11cae0 make casStatsFetch() safe-ish when RSRV not initialized
Maybe too early.  Or maybe RSRV disabled via dbServer.
2025-02-18 07:30:51 -08:00
Michael Davidsaver
7384351181 clarify cantProceed() message 2025-02-18 07:30:51 -08:00
Michael Davidsaver
890cbc2c0d doc 2025-02-18 07:30:51 -08:00
Andrew Johnson
2612b47c3f Release Notes for PYTHON=python3 2025-02-17 22:47:27 -06:00
Andrew Johnson
f4c474eb77 Remove Python build dependency when LINKER_USE_RPATH=ORIGIN
This change converts the makeRPath.py script to Perl.
Also changes the PYTHON default to run `python3`
2025-02-17 22:47:27 -06:00
Andrew Johnson
1735a821db Update pvDatabase 2025-02-11 17:44:51 -06:00
Michael Davidsaver
1d19ba4cc2 doc and log for *MustSucceed()
Replace the "never returns NULL." statement which is
manifestly not true.
2025-02-07 09:09:22 -08:00
JJL772
144f9756ea Add iocshSetError in a bunch of places 2025-02-05 10:16:16 -06:00
DW
48eed22f3b check IOCSH_STARTUP_SCRIPT before set 2025-02-05 10:03:35 -06:00
Érico Nogueira
8ac2c87156 Post monitors from compress record when resetting it
This way clients receive updates with an empty array after writing into
the RES field.
2025-02-05 09:59:18 -06:00
Simon Rose
0d2ffcd97f Typo fix on arch name (#593) 2025-02-05 09:47:24 -06:00
Andrew Johnson
c8eccfcb8f Edit Release messages for English & Markdown 2025-02-03 11:36:37 -06:00
Michael Davidsaver
6fb40b02fe update RELEASE_NOTES 2025-02-02 20:16:38 -08:00
Andrew Johnson
dad0ee9c89 Revert "Limit _FORTIFY_SOURCE <= 2"
This reverts commit 5fe563bed8.
2025-02-02 19:59:39 -08:00
Timo Korhonen
065fe7cab6 Fix internal link 2025-01-28 15:05:55 -08:00
Michael Davidsaver
e4ad4becde rationalize osdMutex
Avoids split allocation.
Eliminates special case free-list.

win32: eliminate pre-XP
rtems-score: eliminate non-fast
2024-12-29 16:35:26 -08:00
Michael Davidsaver
1cd141c540 dbLoadTemplate: error propagation and more context on .db syntax error 2024-12-29 16:35:26 -08:00
72026a27a0 allow to load the same alias multiple times (unless dbRecordsOnceOnly is set) 2024-12-29 16:35:25 -08:00
Simon Rose
9fb820b46e Add tests for relative include paths 2024-12-29 16:34:10 -08:00
Jeremy Lorelli
721e9cc3a7 Add ABORT_ON_ASSERT flag to CONFIG_SITE
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)
2024-12-29 16:34:10 -08:00
Simon Rose
0186836449 Reading a file from the command-line should not use include paths 2024-12-29 16:34:10 -08:00
Simon Rose
b90ab7de13 Improve relative path check for msi
For posix-ish systems, we previously checked that a path was relative
by simpy checking if it included a '/' character. This meant that you
could not, for example, do
```
$ cat foo.substitutions
file rel/to/bar.template {
}

$ msi -I /some/path foo.substitutions
```
where our template file is located at `/some/path/rel/to/bar.template`.

Note that relateive paths work differently on Windows, so we carve out
an exception there.
2024-12-29 16:34:10 -08:00
Jeremy Lorelli
333be085c0 Fix compile error in tsSLList.h 2024-12-28 12:40:27 -08:00
Ralph Lange
169948967f Merge pull request #578 from ralphlange/doc-udfs
Add documentation for the UDFS field
2024-12-27 15:10:43 +01:00
Ralph Lange
5a11954c51 Add documentation for the UDFS field 2024-12-26 18:44:23 +01:00
Jure Varlec
9f8a8b9c1f Update RELEASE_NOTES with AMSG propagation 2024-12-11 09:38:02 -06:00
Jure Varlec
d0cf47cd6f Propagate AMSG through MSS links
MS and MSI links do not propagate STAT and therefore do not propagate
AMSG, either. CA, CP and CPP links also do not propagate AMSG, but the
reason is technical: the message is not available over Channel Access.
2024-12-11 09:38:02 -06:00
Simon Rose
f4aee8e6b7 Add debug build configuration for os x mX arch 2024-12-11 09:33:24 -06:00
dac620a708 loop safe wrapper for dbGet added 2024-12-11 09:31:49 -06:00
4ee766b6b1 correct mask for finding field in linkGrp
It worked before because the get_xxx functions are never called for
the links (bit0 = 1), but checking both bits looks cleaner.
2024-12-11 09:31:49 -06:00
5143258011 fix support for link 0 2024-12-11 09:31:49 -06:00
Michael Davidsaver
ead8b7e82b doc getIocState() 2024-12-09 17:00:03 -08:00
Jure Varlec
8483ff9560 Clear NAMSG together with NSTAT and NSEV
Previously, there was no way to clear AMSG when setting a no-alarm
status: it kept the last error message, and it is strange to have a
record that has no alarm while showing an error. With this change, the
NAMSG field is treated the same as NSTA and NSEV: they are cleared when
their content is moved to STAT, SEVR, and AMSG.
2024-11-27 07:40:39 -08:00
b7cc33c3c9 Send DBE_PROPERTY events before DBE_VALUE | DBE_LOG events to allow clients to update their formatting etc in time 2024-11-13 10:00:12 -06:00
9e7cd241e0 fix DBE_PROPERTY events for mbbi/mbbo records 2024-11-13 10:00:12 -06:00
faac1df1c6 send DBE_PROPERTY events only if property field actually changed 2024-11-13 10:00:12 -06:00
Andrew Johnson
1f8851a5dc GHA: rm cmp versions from names when we don't specify them 2024-11-01 11:46:15 -05:00
Andrew Johnson
ac3e8af9fd Update github action versions 2024-11-01 11:00:37 -05:00
Chris Johns
98a30e8029 rtems: Extend the BSP checks for 5 to 5 or greater 2024-10-31 16:21:49 -05:00
Chris Johns
594e5ee9db rtems: Set the name of EPICS threads so RTEMS commands report the name
Use the NP POSIX call pthread_setname_np to set the POSIX thread name.
2024-10-31 16:21:49 -05:00
Chris Johns
135193c4bd rtems: Fix shell networking commands
This patch cleans up the shell defines for the libbsd and legacy
network stack shell commands.

The top and rtems shell commands have been added.
2024-10-31 16:21:49 -05:00
Chris Johns
9d65da5c61 rtems: Fix rtems_bsdnet_bootp_server_address decl with RTEMS_LEGACY_STACK
The legacy stack provides this variable and this decl clashed. This was
seen before now due to the link order of libraries.
2024-10-31 16:21:49 -05:00
Chris Johns
f9d1fbeedb rtems: BSP mvme2700 is now supported in RTEMS
This patch changes the name for RTEMS 6 or later from mvme2307 to
mvme2700.
2024-10-31 16:21:49 -05:00
Chris Johns
2b8a944a7d rtems: Add legacy network support and fix LDFLAGS
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.
2024-10-31 16:21:49 -05:00
Chris Johns
83cbf8a4c7 freebsd: Add support for x86 and amd64 builds
Use the OS compiler, ie cc and c++.
2024-10-31 16:16:45 -05:00
Andrew Johnson
47880fbcf7 Fix config.yml syntax, disable git submodules 2024-10-31 15:20:32 -05:00
Andrew Johnson
b0bff556c9 Move query selections into config file
Ignore `goto`s and "recommendations" for now.
2024-10-31 15:20:32 -05:00
Andrew Johnson
932e506df1 Adjustments to suggested configuration
* Rebased to latest 7.0
* Check 7.0 branch and tags only
* Ignore text files
* Drop Python checks
* Remove .lgtm.yml file, adjust skips
2024-10-31 15:20:32 -05:00
LGTM Migrator
b7991b6eca Add CodeQL workflow for GitHub code scanning 2024-10-31 15:20:32 -05:00
Michael Davidsaver
f6cd43b7cc asTrap serverSpecific is dbChannel
Save/restore dbAddr::pfield around callbacks to
avoid corruption if CB forgets to restore.

Need to peak at dbChannel.h during libCom build.
So generate dbCoreAPI.h early, and add extra
-I to source location when compiling dbTrapWrite.c
2024-10-31 12:30:15 -05:00
Timo Korhonen
e6a2047bbf formatting fixes, as requested 2024-10-30 11:07:25 -05:00
Timo Korhonen
7923076b1c edit to reduce Codacy warnings. May not fix all but this is my best guess. 2024-10-30 11:07:25 -05:00
Timo Korhonen
46ad962cd8 replaced the html version of msi document with markdown. 2024-10-30 11:07:25 -05:00
Andrew Johnson
f47e1d94a3 Use Perl for filtering MAKEFLAGS properly
Requires moving the checkflags code into CONFIG_BASE
as that's where FIND_TOOL gets defined.

Fixes #545
2024-10-30 09:51:37 -05:00
Michael Davidsaver
022b8d468b document dbScan.h 2024-10-20 10:18:30 -07:00
Michael Davidsaver
152d306ad8 avoid UB with self pthread_join() 2024-10-02 09:22:00 -05:00
Michael Davidsaver
012139638d posix: epicsThreadCreateOpt() avoid leak of joinable on EPERM
On a system where RT priorities have been probed.
When creating a joinable thread, but still fails
with EPERM, the first epicsThreadOSD was leaked.
2024-10-02 09:22:00 -05:00
Minijackson
78b575f487 documentation: fix RELEASE_NOTES Sphinx warning
Apparently, starting a section with a horizontal line is not permitted
2024-10-02 09:16:29 -05:00
Minijackson
74713632a6 documentation: fix title underline of menu-API 2024-10-02 09:16:29 -05:00
Minijackson
dd5df7363c documentation: migrate ComponentReference to markdown
This enables us to use toctrees, which informs Sphinx on the global
documentation structure, and removes warnings about not-included
documents.

The old ComponentReference.pod was kept, in order to not break the old
HTML output, but the new Markdown file is used as source for the
generated markdown files in doc/
2024-10-02 09:16:29 -05:00
Andrew Johnson
3888e9dec7 Make header file links use Markdown for Sphinx toctree 2024-10-02 09:16:29 -05:00
Andrew Johnson
af206ba7fc Move Sphinx sources to O.Common/rtd-src
Adds the build target 'sphinx' for manual Sphinx runs, and
installs the output of that under $(INSTALL_HTML)/readthedocs

Adjusted some Sphinx config parameters and titles.
2024-10-02 09:16:29 -05:00
Minijackson
be4d1604ba documentation/RELEASE_NOTES: remove main anchor 2024-10-02 09:16:29 -05:00
Minijackson
8e2217dbf7 documentation: remove KnownProblems
From @anjohnson:

> I haven't actually published a Known Problems page online since EPICS 7.0.1,
> maintaining it was becoming too time-consuming.
2024-10-02 09:16:29 -05:00
Minijackson
34b3306faa documentation: Edit & add README 2024-10-02 09:16:29 -05:00
Minijackson
8c88d052bb Add readthedocs templates and build rules
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
Co-authored-by: Andrew Johnson <anj@anl.gov>
2024-10-02 09:16:29 -05:00
Minijackson
ad7575f5a4 documentation/Doxyfile: adapt for Sphinx Breathe
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
2024-10-02 09:16:29 -05:00
Minijackson
601ac051db documentation/Makefile: Remove gh-pages rules
Co-authored-by: Andrew Johnson <anj@anl.gov>
2024-10-02 09:16:29 -05:00
Minijackson
c0aeb4c69b Move and fix ComponentReference.pod
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
Co-authored-by: Andrew Johnson <anj@anl.gov>
2024-10-02 09:16:29 -05:00
Minijackson
7cdaaf716a Generate Markdown from all .pod and .dbd.pod files
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
2024-10-02 09:16:29 -05:00
Minijackson
615ba73044 Rules to generate and install Markdown
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>
2024-10-02 09:16:29 -05:00
Minijackson
c285f2a78f dbdToMD.pl: create
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
2024-10-02 09:16:29 -05:00
Minijackson
fcb227ed97 podToMD.pl: create
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
2024-10-02 09:16:29 -05:00
Andrew Johnson
4f6aa7ec29 Add Pod::Markdown and EPICS::PodMD Perl modules
Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
2024-10-02 09:16:29 -05:00
60f6ba7b49 Drop execute bits from startup/win32.bat
The file startup/win32.bat shouldn't be executable, so drop the execute
bits from its file mode.
2024-10-02 09:14:22 -05:00
Érico Nogueira
8045770751 libCom: don't use std::unexpected in epicsThread.
Besides being deprecated in C++11 and removed in C++17, the intended use
case for this was always wrong, since std::unexpected() is called by the
C++ runtime when a function throws an exception that was not specified
in its "dynamic exception specification", which is different from an
exception thrown by user code which wasn't caught [1,2]. Using abort()
keeps the same behavior, but with the intended semantics.

We don't use std::abort() to simplify backwards compatibility.

[1] https://github.com/epics-base/epics-base/issues/343
[2] https://en.cppreference.com/w/cpp/error/unexpected
2024-09-09 07:27:32 -07:00
Michael Davidsaver
2e4113b63b Add typing to dbEvent.h opaque structs when -DUSE_TYPED_DBEVENT 2024-09-04 10:15:55 -05:00
Érico Nogueira
3b50194837 genVersionHeader: work with git submodules and worktrees.
When the epics-base directory is used as a git submodule, or checked out
in multiple places as a git worktree, ".git" is not a directory, but a
file which points to the location of the git directory. In that case,
the git tools can still be used to determine the version information.

Without this change, the version string is determined from the build
date/time, which has multiple issues:

- it doesn't include the full information about the build environment
- it is not reproducible
- it leads to unnecessary rebuilds, since a lot of files depend on
  "epicsVCS.h"
2024-09-04 10:14:22 -05:00
99f70a1081 Print link types as text instead of numbers 2024-09-04 10:13:08 -05:00
Grzegorz Kowalski
5d9ffe15da caget: free PV value after printing 2024-09-04 10:02:49 -05:00
Grzegorz Kowalski
3ac8dcc3de caget: free memory allocated for PV array 2024-09-04 10:02:49 -05:00
Jure Varlec
25e155ee8c Fix a mis-asssignemnt of copyright
Copyright was previously assigned based on the author's email, which had
been modifified by repository conversion from CVS to git. This rectifies
the situation by assigning copyright to the authors employer at the time
of creation of the file.
2024-09-04 10:02:04 -05:00
Jure Varlec
049cc175a9 Fix a mangled copyright header 2024-09-04 10:02:04 -05:00
Jure Varlec
0d92b74aae Compactify SPDX tags in README files 2024-09-04 10:02:04 -05:00
Jure Varlec
ecba8a3a5e Move SPDX tags in st file for compatibility 2024-09-04 10:02:04 -05:00
Jure Varlec
466a9b565e Change comment style for SPDX tags in C files 2024-09-04 10:02:04 -05:00
Jure Varlec
c304b7db53 Add SPDX license tags to templates
Copyright information was gathered using `git log` with per-line history
tracking, which allows following the history of a file through renames.
2024-09-04 10:02:04 -05:00
Grzegorz Kowalski
0eb31ed70b free memory allocated for filenames 2024-09-04 09:59:55 -05:00
Chris Johns
c5f5e4e508 rtems: Allow site local override of the default tick period
Add to configure/CONFIG_SITE.local:

 OP_SYS_CFLAGS += -DCONFIGURE_MICROSECONDS_PER_TICK=1000
2024-09-04 09:59:13 -05:00
Freddie Akeroyd
9866815dab Improve error message wording 2024-09-04 09:58:29 -05:00
Freddie Akeroyd
0e66b3edff Improve error message for mingw64 architecture 2024-09-04 09:58:29 -05:00
Freddie Akeroyd
dd154180bf Avoid isnan/isinf redefine in c++ on VS2013 and above 2024-09-04 09:48:03 -05:00
Freddie Akeroyd
574fe116fc protect isnan/isinf define on c++ 2024-09-04 09:48:03 -05:00
Michael Davidsaver
052a0c7e19 test get_enum_strs() 2024-08-21 10:01:26 -05:00
Michael Davidsaver
979dde8376 redo get_enum_strs() to pacify _FORTIFY_SOURCES=3 2024-08-21 10:01:26 -05:00
Michael Davidsaver
9a0113f834 GHA: add gcc with -D_FORTIFY_SOURCE=3 2024-08-21 10:01:26 -05:00
Michael Davidsaver
3d70e70640 Add dbPvt2Rec() cast
Reverse of dbRec2Pvt()

pacify -D_FORTIFY_SOURCE=3 and __builtin_object_size() as
"&precord->common" does not know than common as actually
the prefix of a variable sized struct.
2024-08-21 10:01:26 -05:00
Michael Davidsaver
f9e53dded6 show buffered line along with DB parse error 2024-08-21 09:53:38 -05:00
403ebab858 use more standard permissions for bins and libs 2024-08-21 09:50:26 -05:00
Hinko Kocevar
8e62ea4965 handle deletion of the non-existant record with field 2024-08-21 09:48:23 -05:00
Hinko Kocevar
f00de26be1 directory path name is free'd before it is used in testAbort() 2024-08-21 09:48:23 -05:00
Hinko Kocevar
50b6a3801a check if precordType is null in dbGetRecordTypeName() 2024-08-21 09:48:23 -05:00
Michael Davidsaver
2a5def7fc6 test removal of non-existant record 2024-08-21 09:48:23 -05:00
Michael Davidsaver
fd072e4429 add more information to record(# warning 2024-08-21 09:48:23 -05:00
Hinko Kocevar
3a5c9ab0cd add a warning if deleting a non-existent record 2024-08-21 09:48:23 -05:00
Hinko Kocevar
c735de4ff8 fix number of tests to execute 2024-08-21 09:48:23 -05:00
Hinko Kocevar
bb5423171d remove warning and error messages, fix duplicate flag setting 2024-08-21 09:48:23 -05:00
Hinko Kocevar
4e4e55ca89 invoke dbFreeLinkContents() to clean up link related allocations 2024-08-21 09:48:23 -05:00
Hinko Kocevar
e9748881cd make codacy happy 2024-08-21 09:48:23 -05:00
Hinko Kocevar
39b0301062 plug memory leak resulting from record deletion 2024-08-21 09:48:23 -05:00
Hinko Kocevar
2f98251c9f add unit tests for record deletion 2024-08-21 09:48:23 -05:00
Hinko Kocevar
535c9c2a06 Allow deleting a record at database creation.
Using a magical record type "#" will allow the user to
delete previously created record  from the database.
2024-08-21 09:48:23 -05:00
Michael Davidsaver
057eb87101 readline: only keep history for interactive session 2024-08-21 09:36:39 -05:00
457387ed38 fix warning when dbf_type_to_text is called with an unsigned type argument 2024-08-21 09:35:53 -05:00
b6fffc2225 fix string to epicsUInt32 conversion via double 2024-08-21 09:28:45 -05:00
86cdfc596f fix wrong (unsigned) comparison 2024-08-12 10:29:08 -04:00
Andrew Johnson
3dae29b7e8 Oops, needed stdint.h 2024-08-10 14:45:28 -05:00
Andrew Johnson
9d393c4437 Cast sizeOffset to uintptr_t for ordered comparison
Issue report & fix by Dirk Zimoch.
2024-08-10 13:21:30 -05:00
Andrew Johnson
a5c3330c8e Update .ci module, disable CentOS-7 build 2024-08-07 09:54:16 -05:00
Andrew Johnson
856f345d2c Fix Codacy complaint about C-style casts 2024-08-07 09:54:16 -05:00
Andrew Johnson
3f4d080260 Make dbFastGet/PutConvertRoutine arrays const
Also added Doxygen annotations for them.
2024-08-07 09:54:16 -05:00
Andrew Johnson
1e8d49f2a6 Drop debugging diagnostics 2024-08-07 09:54:16 -05:00
Andrew Johnson
31b22fd253 Add test of jlinkz::putValue() to dbPutLinkTest
Add OUTP link field to xRecord
xRecord::process() puts VAL to the OUTP link
jlinkz writes the output value to the record's own PHAS field
Correct the dbFastPutConvertRoutine lookup
Test sets OUTP link, processes record and confirms that PHAS was set
2024-08-07 09:54:16 -05:00
Andrew Johnson
916b17ef3f Fix review comment 2024-08-07 09:54:16 -05:00
Andrew Johnson
437320926b Move declaration back 2024-08-07 09:54:16 -05:00
Andrew Johnson
7890e67d37 Various misc warnings 2024-08-07 09:54:16 -05:00
Andrew Johnson
918a188285 Define USE_TYPED_DRVET, use drvet * instead of struct drvet * 2024-08-07 09:54:16 -05:00
Andrew Johnson
2f730b8e9f Add arg's to function pointer typedefs and prototypes 2024-08-07 09:54:16 -05:00
Andrew Johnson
1835187a86 Change fast convert routines to match prototype
Most of these edits were make using regexes in find/replace.
2024-08-07 09:54:16 -05:00
Andrew Johnson
f287cfa2ac Introduce & use FASTCONVERTFUNC with full prototype 2024-08-07 09:54:16 -05:00
Andrew Johnson
785237e41a Remove duplicate link libraries 2024-08-07 09:54:16 -05:00
23999a106b use -nologo with rc like with many other MSVC commands 2024-08-07 09:40:29 -05:00
Andrew Johnson
91e1d0ab80 Update release process files 2024-06-27 22:20:19 -05:00
Andrew Johnson
172bfce1f3 Merge 'Release 7.0.8.1' branch into 7.0 2024-06-27 21:07:50 -05:00
Andrew Johnson
615e7e99ce Update version numbers and submodules after release 2024-06-27 20:56:47 -05:00
Andrew Johnson
57c930fbee Release R7.0.8.1
Some checks failed
Check EditorConfig / editorconfig (push) Failing after 1s
Base / Cross linux-aarch64 (push) Failing after 2s
Base / Cross linux-arm gnueabi (push) Failing after 1s
Base / Cross linux-arm gnueabihf (push) Failing after 2s
Base / CentOS-7 (push) Failing after 1s
Base / Fedora-33 (push) Failing after 2s
Base / Fedora-latest (push) Failing after 1s
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 unsigned char (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Ub-22 gcc-12 c++20 Werror (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
2024-06-27 20:55:03 -05:00
Andrew Johnson
785b777baf Update Release Notes, set version numbers 2024-06-26 14:59:18 -05:00
Andrew Johnson
d0d15ee911 Replace UNRELEASED with 7.0.8.1 2024-06-26 14:59:18 -05:00
Andrew Johnson
5af9c7e50d Revert submodules to versions at R7.0.8 2024-06-26 14:59:18 -05:00
Andrew Johnson
5fe563bed8 Limit _FORTIFY_SOURCE <= 2 2024-06-26 14:58:53 -05:00
Tynan Ford
772c10d904 Fix issue with RSRV_SERVER_PORT above 9999
don't worry about null termination on epicsSnprintf call
2024-06-19 09:38:23 -07:00
Michael Davidsaver
72d50ce274 fix dblsr()
clearly doesn't get called very often...
2024-06-14 16:45:07 -07:00
Michael Davidsaver
0a6b9e4511 dbScan: handle scanStop() before start 2024-06-14 16:45:07 -07:00
be8f8b41ff centralize -g flag for gnu targets 2024-06-13 14:35:43 -07:00
Simon Rose
1b46077096 Fix off by one error in constant link fetch
For long string buffers, we currently write a null terminator one byte
past the end of the buffer. This can be seen with a record of the type

```
record(aai, foo) {
  field(NELM, 1)
  field(FTVL, CHAR)
  field(INP, {const: "foo"})
}
```
where the buffer is only of size 1, but then we write at index 1 (aka
past the end of the buffer).

Co-authored-by: Lucas A. M. Magalhães <lucmaga@gmail.com>
2024-06-12 16:19:36 -07:00
Chris Guerrero
ede745cc34 Update aSubRecord.dbd.pod 2024-06-12 09:14:30 -07:00
Michael Davidsaver
a864f16318 dbCa test sync. improvements 2024-06-11 19:37:23 -07:00
seifalrahman
4c20518864 modifying the condition from (status!=0) to (status>0) to skip the block in case the status variable ==-1 2024-06-11 18:45:33 -07:00
Michael Davidsaver
6ca716a77f iocsh: add more iocshSetError() 2024-06-11 13:52:03 -07:00
Michael Davidsaver
aa77b1c04a iocInit errors say ERROR 2024-06-11 11:14:07 -07:00
Michael Davidsaver
fe4247d57d Send .db parser errors to stderr 2024-06-11 11:14:07 -07:00
Michael Davidsaver
77490d4939 space in errPrintf() output 2024-06-11 11:14:07 -07:00
Michael Davidsaver
0495ac3bc5 WARN for FLNK uses CA without PROC 2024-06-11 11:14:07 -07:00
Michael Davidsaver
4a305a42a7 softMain log iocInit() failure. 2024-06-11 11:14:07 -07:00
DW
11fba63d18 Fix histogram doc 2024-05-29 09:17:03 -05:00
Simon Rose
1db37bcd91 Update release notes 2024-05-29 09:15:35 -05:00
Simon Rose
beec00b403 Fix issue with compress record
The handling of N-to-M array compression was broken with the addition
of the partial buffer option, which broke the bounds check that was
being used.

Note that this also makes the partial buffer option more consistent;
if, for example, you have
```
record(compress, foo) {
  field(ALG, "N to 1 Average")
  field(INP, "bar NPP")
  field(NSAM, 2)
  field(N, 2)
  field(PBUF, YES)
}
```
(with `bar` having, e.g. length 3), then this will now behave as
expected on both of the samples.
2024-05-29 09:15:35 -05:00
DW
4966baf423 fix sizv for printf & fix doc 2024-05-20 09:18:26 -04:00
Michael Davidsaver
e5b4829074 bound lso/lsi to limit of dbAddr::field_size 2024-05-19 11:57:19 -04:00
Ralph Lange
d8b5616772 ci: bump checkout to v4 in check-editorconfig.yml
- fix node16.js usage warning
2024-05-16 10:07:12 +02:00
Ralph Lange
92615a77fe ci: fix last commit (GHA workaround) 2024-05-15 18:04:58 +02:00
Ralph Lange
b3f92d81db ci: add workaround for GHA node20@centos7 failures 2024-05-15 16:57:34 +02:00
Simon Rose
839f764bcb Clean up some potential memory leaks
The watchdog tasks are allocated, but not consistently removed. In
general this doesn't matter: they run in threads that will only
end when the process actually quits. For consistency and for the
purpose of future-proofing, I think there is value in having the
cleanup added in each case.
2024-05-15 09:26:09 -05:00
Simon Rose
4bb50fe664 Memory leak in caservertask.c 2024-05-15 09:26:09 -05:00
Ralph Lange
c77f32b19c Merge pull request #482 from ericonr/calcout-docs
Fix calcout doc typo.
2024-05-03 04:04:41 +09:00
Érico Nogueira
66ce1c2076 Fix calcout doc typo. 2024-05-02 15:29:22 -03:00
Érico Nogueira
1a9dc993c1 Fix gmtime messages in epicsTimeZoneTest. 2024-04-29 15:10:47 -07:00
Michael Davidsaver
cb1571783b link.h wrong type
Change to unsigned incorrectly increased size.

e88a186fc3
2024-04-02 08:35:25 -07:00
Freddie Akeroyd
5dfc6caf3c Accept should return SOCKET rather than int 2024-03-06 09:48:26 -06:00
Ralph Lange
cb49bd0133 Update ci-scripts to 3.4.1
Builds on AppVeyor (VS2019) started to fail
because of the Python version/distutils
2024-03-01 18:00:40 +01:00
Freddie Akeroyd
4720b61c1f Move call to setThreadName()
The call to setThreadName() is moved to avoid a race condition that
can happen with very short lived processes. If the process terminates
very quickly e.g. is a google test runner or the msi.exe command
called from a Makefile during a build, then very occasionally a
crash can occur during process termination if setThreadName() when called
from the newly created thread. This looks to be becauae the DLL it is
trying to call gets unloaded between it getting a handle to the DLL
and making the call. Moving the setThreadName() call to the creating
thread avoids this problem. The issue was only ever seen with statically
linked epics executables, I am unsure if the way a DLL based epics
program unloads might avoid this, or just make it less likely but
still possible. As mentioned above, the issue will only ever occur
to threads that are created during process termination and so would
not affect running IOCs
2024-02-21 09:59:36 -06:00
4383cf291e allow macros with defaults in dbLoadRecords without substitutions 2024-02-21 09:50:03 -06:00
Simon Rose
a6977ae731 Fix issue where VSCode makefile extension can delete files
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.
2024-02-21 09:45:14 -06:00
Michael Davidsaver
07cbf00187 posix: warn on epicsSocketCreate() without osiSockAttach() 2023-12-22 10:26:28 -08:00
Michael Davidsaver
c75b9ad0be add dbRecordNode::order
Keep track of parse order of record instances.
2023-12-22 10:26:28 -08:00
Michael Davidsaver
87acb98d1e ca: remove hostname length limit when parsing address lists 2023-12-22 10:26:28 -08:00
Michael Davidsaver
403e203325 quieting clang-tidy, use unsigned
places where we shouldn't be negative anyway
2023-12-22 10:26:28 -08:00
Michael Davidsaver
a7a56912eb default/epicsMessageQueue: initialize threadNode 2023-12-22 10:26:28 -08:00
Michael Davidsaver
fe4a32e425 default/epicsMessageQueue: avoid volatile flag
Only one place where eventSent was accessed
without locking.  Move this load earlier.
2023-12-22 10:26:28 -08:00
Michael Davidsaver
823386573f ipAddrToAsciiGlobal::run() keep scratch buffer as local 2023-12-22 10:26:28 -08:00
Michael Davidsaver
ea8247586f adjustToWorstCaseAlignment() simplify
Add some STATIC_ASSERT to check assumptions.

Only in-tree use is freeListLib to ensure chunks in
a malloc()'d block are aligned.
2023-12-22 10:26:28 -08:00
Michael Davidsaver
e88a186fc3 make link::flags bit field unsigned 2023-12-22 10:26:28 -08:00
Michael Davidsaver
20f32068c3 gha add workflow_dispatch 2023-12-22 10:26:28 -08:00
Andrew Johnson
8998341588 Update version numbers and submodules after release 2023-12-15 13:03:57 -06:00
Andrew Johnson
448fde0671 Set release version numbers
Some checks failed
Check EditorConfig / editorconfig (push) Failing after 2s
Base / Cross linux-aarch64 (push) Failing after 1s
Base / Cross linux-arm gnueabi (push) Failing after 2s
Base / Cross linux-arm gnueabihf (push) Failing after 1s
Base / CentOS-7 (push) Failing after 2s
Base / Fedora-33 (push) Failing after 1s
Base / Fedora-latest (push) Failing after 2s
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 unsigned char (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Ub-22 gcc-12 c++20 Werror (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
2023-12-14 16:42:10 -06:00
Andrew Johnson
477e36b1f0 Update submodules to tagged versions 2023-12-14 16:42:10 -06:00
Andrew Johnson
fad830bd14 Remove example sub-module 2023-12-14 16:42:10 -06:00
Andrew Johnson
331df3d7e4 UNRELEASED => 7.0.8 2023-12-14 16:42:10 -06:00
Andrew Johnson
4a53713f37 Update Release Procedures/Checklist 2023-12-14 16:31:42 -06:00
Andrew Johnson
2e6fd505d2 Use epicsSnprintf() for old MSVC compilers 2023-12-14 11:31:36 -06:00
Andrew Johnson
5ecf7d18a8 Clean up Clang 15 sprintf() warnings in libcom and ca 2023-12-13 13:34:25 -06:00
Andrew Johnson
56dbc949ff Add declarations to flex, cleans up Clang 15 warnings. 2023-12-12 13:44:08 -06:00
Simon Rose
6a369acd0b Add newline to help text 2023-12-05 08:05:12 -08:00
Simon Rose
d9d35a4eab Allow auto-declarations for dbdExpand.pl 2023-12-01 09:19:03 -06:00
Ralph Lange
116881ad87 Use split() for fetching last tag with darcs
(setting $/='' breaks reading multi-line into an array)
2023-11-29 09:53:24 -06:00
96857d92bc fix problem with commands returning multiple trailing newlines 2023-11-29 09:53:24 -06:00
Érico Nogueira
0cf8c934f9 Set ASL0 for mbboDirect Bx fields.
Since the record's VAL field is ASL0, it doesn't make sense to gate
writes into the Bx fields with ASL1.
2023-11-29 09:44:03 -06:00
Michael Davidsaver
69d05fe5b0 Add ERROR to error messages 2023-11-26 15:25:09 -08:00
Michael Davidsaver
511bf1ffca const-ify dbLink arrays
external code really should never be modifying pamaplinkType[]
2023-11-25 14:52:16 -08:00
Uchenna Ezeobi
7a7028de56 Config: Fixed Hard coded LDFLAGS in MVME2500 2023-11-17 15:20:32 -06:00
Michael Davidsaver
7a65c001ce update submodules 2023-11-15 07:31:53 -08:00
Michael Davidsaver
0bc6ff3d4c release notes 2023-11-07 16:00:46 -08:00
Michael Davidsaver
f2fe9d1203 bi "Raw Soft Channel" use MASK
If set, apply MASK to value read into RVAL.
2023-11-07 15:53:41 -08:00
Michael Davidsaver
ffc2d0f23a incorrect error check on GetStdHandle()
Likely inconsequential as GetConsoleMode() should
return 0 when given an invalid handle.
2023-11-07 15:53:41 -08:00
Michael Davidsaver
a352865df9 print ANSI escapes to stderr
unconditionally print ANSI some escapes (to colorize errors)
to the stderr stream.
2023-11-07 15:53:22 -08:00
Michael Davidsaver
63740f2edd colorize more errlog messages 2023-11-07 15:53:22 -08:00
Jeremy Lorelli
f4be9daf4d Null check callback function in callbackRequest
Previously, calling callbackRequest(pcallback), where pcallback->callback
is NULL, would result in a crash on one of the callback threads.
2023-11-07 15:17:04 -08:00
Michael Davidsaver
3fa1932345 update ci-scripts 2023-11-07 15:14:09 -08:00
Michael Davidsaver
95bd5453d9 dbRecordField() add "did you mean..." hint for unknown field 2023-11-01 09:52:32 -05:00
Michael Davidsaver
eb3f8a004c const-ify dbCopyEntry() and dbCopyEntryContents() 2023-11-01 09:52:32 -05:00
Michael Davidsaver
9f868a1074 avoid hang during concurrent db_cancel_event()
cf. fab8fd7102
2023-11-01 09:24:44 -05:00
Michael Davidsaver
b41787b6bf doc 2023-10-22 17:42:36 -07:00
19b232545c gha: turn most warnings into errors in github build 2023-10-22 17:42:36 -07:00
Michael Davidsaver
2ca70d3aa2 iocsh: keep history file 2023-10-22 17:42:36 -07:00
JJL772
395015aac4 Com: Make STATIC_ASSERT macro typedefs unique 2023-10-22 17:42:36 -07:00
Michael Davidsaver
92cae86ff2 dbRecordsOnceOnly allow append only with "*"
with

> record(ai, "myrec") {}

dbRecordsOnceOnly!=0 currently disallows appending fields with either form:

> record("*", "myrec") {} # error
> record(ai, "myrec") {}  # error

Change the meaning such that dbRecordsOnceOnly!=0
allways allows appending when explicitly intended (rtype "*").

> record("*", "myrec") {} # allowed
> record(ai, "myrec") {}  # error

Also clearly label this parse error.
2023-10-22 17:42:36 -07:00
Jack Harper
49ea46ee5e iocsh: add comment to cvtArg explaining default iocsharg behaviour 2023-10-22 17:42:36 -07:00
Michael Davidsaver
df908f299b remove unused local 2023-10-22 17:42:36 -07:00
AlexWells
6dec68554c iocsh: Add underline separator between help outputs
Also tweaks the overall format of the message a bit.
Add tests for new help output format
2023-10-22 17:42:36 -07:00
Michael Davidsaver
badd8f518d update modules/pvData 2023-10-22 17:42:35 -07:00
Michael Davidsaver
766c9906b5 update ci-scripts 2023-10-22 14:46:28 -07:00
Jeremy Lorelli
60fa2d31da libCom: Fix buggy pointer dereference in postfix() 2023-09-26 09:52:13 -07:00
Michael Davidsaver
88ea1507f4 Fix compile w/ vs2012 2023-09-22 08:20:27 -07:00
Emilio Perez
8c08c57247 Allow adding error symbols after early initialization
This was acomplished by making errSymbolAdd add the error symbol directly
into the global hash table and removing errnumlist which is not needed
anymore.

Unit tests were added for checking the following cases:
- Adding a valid symbol and checking that it exists (fixed by this change)
- Getting an existing error symbol
- Getting a non existing error symbol
- Adding an invalid error symbol (fixed by this change)
- Adding an error symbol with a code that already
  exists (fixed by this change)

Therefore, issue #268 was fixed

error: statically allocate error symbol hash table

This will allow calling errSymbolAdd before errSymBld, therefore, a
function adding error symbols can now be run before iocInit or errlogInit

error: add a constant for the minimum module number

Make adding an identical error symbol not fail

A test case was also added which test that adding an error symbol
with same error code and message as one added before will not fail

Add locking to error symbol table

This protects the cases of:
- simultaneously adding and requesting of an error symbol
- simultaneously adding many error symbols

Update release notes regarding adding error symbols
2023-09-22 08:20:19 -07:00
Michael Davidsaver
45b3bce515 epicsThreadShow() zombies
Flag when the thread has returned, but the tracking
struct is still around.  eg. in need of joining.
2023-09-22 08:19:25 -07:00
Érico Nogueira
7c4a21eab4 libCom: detect support for backtrace() with __has_include.
This is necessary in order to build epics-base with musl libc, for
example, and any other C libraries which don't include this
functionality. In order to not regress builds with older compilers, we
still support the uclibc check. Furthermore, it has been checked that
uclibc-ng (the maintained version of uclibc) doesn't install the
<execinfo.h> header when the functionality is disabled [1] [2].

To avoid repetition, we don't define HAS_EXECINFO to 0 when it is not
available.

[1] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/Makefile.in?id=cdb07d2cd52af39feb425e6d36c02b30916b9f0a#n224
[2] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/Makefile.in?id=cdb07d2cd52af39feb425e6d36c02b30916b9f0a#n277
2023-09-21 08:18:49 -07:00
Michael Davidsaver
fab8fd7102 dbEvent: handle multiple db_event_cancel()
Allow for multiple db_event_cancel() (concurrent or
self-cancel) prior to event_task wakeup.

In db_event_cancel(), immediate free() only if idle
(not queued or in progress).  Otherwise, defer free()
to event task.  Avoids need to immediately expunge
canceled event from queue.  Allow event task to
process canceled events as normal (except no user_sub)
until npend==0.
2023-09-21 08:18:49 -07:00
Michael Davidsaver
3d25756065 privatize evSubscrip 2023-09-21 08:18:49 -07:00
Michael Davidsaver
5aca4c684c dbEvent minor 2023-09-14 08:54:40 +02:00
Michael Davidsaver
39b5c01c5d minor 2023-09-14 08:54:40 +02:00
Michael Davidsaver
3b22e5f710 doc dbLock.h 2023-09-14 08:54:40 +02:00
Michael Davidsaver
9f660f2238 add initHookAtPrepare 2023-09-05 08:54:48 +02:00
Michael Davidsaver
ca9c957e62 doc add page for initHooks.h 2023-09-05 08:53:40 +02:00
Michael Davidsaver
8488c9e891 initHookName() assert length
basic compile time consistency check.
2023-09-05 08:53:07 +02:00
Michael Davidsaver
1f2edb69d2 silence -Wformat-security for printfRecord
we know what we are doing... right?
2023-09-05 08:53:03 +02:00
Michael Davidsaver
fe3ee85aee doc errSymTbl.h 2023-09-05 08:52:58 +02:00
Michael Davidsaver
a74789d9c0 db: decimate and sync filters don't drop DBE_PROPERTY 2023-08-28 14:17:00 +02:00
Michael Davidsaver
7830345e59 move IocshRegister() to iocshInit()
No need for both global ctor and lazy init
2023-08-28 14:17:00 +02:00
Michael Davidsaver
1595ed8860 quieting clang-tidy, non-functional changes
Changes to syntax which should not effect generated code
2023-08-28 14:17:00 +02:00
Michael Davidsaver
d97943b697 timerPrivate.h: mark override/final
Clarify the class hierarchy by decorating types and
method override and/or final whenever possible.
Does not change the hierarchy.
2023-08-28 14:17:00 +02:00
Michael Davidsaver
f8f4376594 ~fdRegForOldFdmgr() can't throw doubleDelete
Exceptions can't actually be thrown from a
C++ class destructor.
2023-08-28 14:17:00 +02:00
Érico Nogueira
df397f4ade fix typo in boRecord.dbd.pod 2023-08-28 14:17:00 +02:00
Zainab Olalekan
7fd690e53e Fix libcom test failure on RTEMS 2023-08-28 14:17:00 +02:00
Andrew Johnson
bc5d347bb2 Call perror() before close(), add detail to messages 2023-08-28 14:17:00 +02:00
Chris Johns
3ea29f581b rtems: Close NTP socket 2023-08-28 14:17:00 +02:00
AlexWells
6de82bb0fd Additional help messages for iocsh
Henrique Silva <henrique.silva@ess.eu>
2023-08-28 13:24:16 +02:00
e1a51e2839 extra parentheses around second sizeof to silence "does not compute number of elements" warning 2023-08-28 13:24:16 +02:00
Michael Davidsaver
0f59d823d3 appveyor remove skip_commits: 2023-08-28 13:24:16 +02:00
Ralph Lange
00dc55b8a2 Fix usage info in .tools/make-tar.sh 2023-08-08 10:29:09 +02:00
Rolf Keitel
524f81b8bd Doc updates to PINI, PHAS & EVNT 2023-07-25 11:36:44 -05:00
Michael Davidsaver
80e62031e9 doc 2023-07-23 08:43:32 -07:00
Minijackson
d87fd0db01 Fix MAKEFLAGS parsing with Make 4.4+
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.
2023-07-22 08:36:43 -07:00
Ralph Lange
6636b4b9e7 libCom: check calloc() failure in RTEMS-posix/osdMessageQueue.c 2023-07-22 08:35:59 -07:00
Ralph Lange
b51d1de283 libCom: fix possible memory leak in RTEMS-posix/osdMessageQueue.c
found by static code analysis (cppcheck @ sonarqube)
2023-07-22 08:35:59 -07:00
Ralph Lange
38c99df2e0 libCom: fix possible memory leaks in iocLogServer.c
found by static code analysis (cppcheck @ sonarqube)
2023-07-22 08:35:59 -07:00
Ralph Lange
688195a273 libCom: handle realloc() failures correctly in macEnv.c
found by static code analysis (cppcheck @ sonarqube)
2023-07-22 08:35:59 -07:00
Ralph Lange
d691acc001 ca: init local variable in catime.c
found by static code analysis (cppcheck @ sonarqube)
2023-07-22 08:35:59 -07:00
Ralph Lange
059d32a975 db: init struct members in dbChannel.c
found by static code analysis (cppcheck @ sonarqube)
2023-07-22 08:35:59 -07:00
Henrique Silva
5c99031157 Add missing AFTC documentation to records
Fixes #313
2023-07-22 08:33:19 -07:00
Henrique Silva
a01c671399 Add missing HYST field documentation to longin record 2023-07-22 08:33:19 -07:00
Minijackson
b2c80efd33 release notes: link release notes from submodules'
fixes #226
2023-07-22 08:33:08 -07:00
Karl Vestin
39b6fa26da Added unit test for binary output record type 2023-07-22 08:32:16 -07:00
Karl Vestin
3ee6097ab7 Fixes #361 2023-07-22 08:30:44 -07:00
Emilio Perez
500a57738b Validate target record name when creating an alias
This fixes issue #312 by printing an error when a field is specified
2023-07-22 08:29:09 -07:00
AlexWells
f488765631 Add tests for PR#310
Also add missing NULL/empty checks
2023-07-22 08:28:25 -07:00
Sebastian Marsching
3a2d225682 Detect error in fprintf and return (fixes #309).
fprintf returns a negative value in order to signal an error. We have to
detect this situation in epicsStrPrintEscaped and return a negative
when fprintf returns a negative value in order to give the calling code
a chance to detect this situation.

The old implementation (of simply accumulating the return values of
fprintf) was wrong anyway, because it would not only lead to an error in
fprintf to be lost but would also cause the returned number to be too
small (not representing the actual number of bytes written) in such a
case.

The only case where the old implementation would work correctly was when
all calls to fprintf succeeded or all these calls failed.
2023-07-22 08:27:32 -07:00
Doug Murray
1d056c6fe4 Add support for CA tools timeout from environment variable EPICS_CLI_TIMEOUT 2023-07-22 08:24:22 -07:00
Michael Davidsaver
42604fc794 Allow clang with GCC compilerSpecific.h
Some checks failed
Check EditorConfig / editorconfig (push) Failing after 1s
Base / Cross linux-aarch64 (push) Failing after 2s
Base / Cross linux-arm gnueabi (push) Failing after 1s
Base / Cross linux-arm gnueabihf (push) Failing after 2s
Base / CentOS-7 (push) Failing after 1s
Base / Fedora-33 (push) Failing after 2s
Base / Fedora-latest (push) Failing after 1s
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 unsigned char (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
Makes it easier to run clang derivative analysis tools
on builds configured for GCC.
2023-06-13 08:47:13 -07:00
Michael Davidsaver
4ecc0daa79 make mapDBFToDBR[] const 2023-06-13 08:47:13 -07:00
Michael Davidsaver
5a1f3ecc8b doc: note when some record types were introduced 2023-05-18 11:57:41 -07:00
Michael Davidsaver
cb97d662a7 doc 2023-05-01 10:31:01 -07:00
Michael Davidsaver
d4fab0d20e iocsh: dbCompleteRecord() missing NULL check 2023-05-01 10:31:01 -07:00
Michael Davidsaver
0c13e6ba6c iocsh: tab completion handle iocshArgArgv 2023-05-01 10:31:01 -07:00
Michael Davidsaver
8f1243da40 epicsSingleton: eliminate global ctor with >= c++11 2023-05-01 10:25:29 -07:00
Michael Davidsaver
fe9995c0b5 Update recommendation for CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 2023-05-01 09:06:59 -07:00
Freddie Akeroyd
f56412d6a5 WIN32: use FlsAlloc() to cleanup epicsThreadOSD
Adjust macros for compiling for older MSVC/Win SDK versions

Try to cover missing fibres include in 7.0 SDK

Support Windows XP and above.
Also removed explicit define of _WIN32_WINNT in code if it has not
been passed on compile line. This is possibly a matter for
further discussion
2023-05-01 09:03:52 -07:00
Érico Nogueira
07d18c55ba Clean whitespace in makeBaseApp template README 2023-05-01 09:03:52 -07:00
Minijackson
9f97f25669 ci: add cross-compilation tests for aarch64, arm soft and hard float 2023-05-01 09:03:52 -07:00
912a82c0b5 replace deprecated decrementing volatile with atomic decrement 2023-05-01 09:03:52 -07:00
acf2241fd0 Some archs define ECHO in termios.h 2023-05-01 09:03:52 -07:00
Eva Lott
b878295d06 Added the new annotation EPICS_PRINTF_FMT 2023-05-01 09:03:45 -07:00
f41f11c7f6 fix compiler warning on 32 bit systems 2023-04-28 09:35:49 -05:00
Michael Davidsaver
216359974c update release notes 2023-04-18 13:11:59 -05:00
Torsten Bögershausen
17ad04505e Change compiler for FreeBSD 13: Use clang
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
2023-04-18 09:51:33 -05:00
Michael Davidsaver
3500a02034 iocsh: expose dbCreateAlias 2023-04-18 09:51:28 -05:00
Michael Davidsaver
52b18d56a0 dbCreateAlias fixup error handling 2023-04-18 09:51:28 -05:00
Michael Davidsaver
5507646ce7 posix: optimize epicsThreadOnce()
Use atomic ops to short circuit when already initialized
2023-04-18 09:51:24 -05:00
Michael Davidsaver
625c2ef159 epicsThreadPerform: time epicsThreadOnce() 2023-04-18 09:51:24 -05:00
Jure Varlec
bdaca51d96 Update shareLib API docs, directing the reader to makeAPIheader.pl 2023-04-18 09:51:21 -05:00
Jure Varlec
9655b78e11 Update release notes: ts filter 2023-04-18 09:51:07 -05:00
Jure Varlec
e11f88017d ts filter: port to the new db_field_log 2023-04-18 09:51:07 -05:00
Jure Varlec
8a3020033e ts filter: replace cantProceed with a non-fatal error msg 2023-04-18 09:51:07 -05:00
Jure Varlec
bd1af9ac95 ts filter: fix unused variable warnings 2023-04-18 09:51:07 -05:00
Jure Varlec
d5959ca20a ts filter: handle calloc failures 2023-04-18 09:51:07 -05:00
Jure Varlec
e10dcede7d ts filter: clear the dtor field after destruction 2023-04-18 09:51:07 -05:00
Jure Varlec
c042b08ab0 Extend timestamp filter, giving access to the record timestamp 2023-04-18 09:51:07 -05:00
Michael Davidsaver
5eff3803a8 update release notes 2023-03-10 12:02:29 +00:00
Michael Davidsaver
151256533f renamed hidden pdbbase in dbd parser
avoid confusion with non-static pdbbase global
2023-03-10 11:00:58 +00:00
Michael Davidsaver
3b484f58d3 for links, treat "" the same as unset. 2023-03-10 11:00:58 +00:00
Michael Davidsaver
d3f93746a8 1<<31 upsets ubsan 2023-03-10 10:57:35 +00:00
Michael Davidsaver
f99a1cb0f3 dbdToRecordtypeH use offsetof()
quiets UB sanitizer
2023-03-10 10:57:35 +00:00
Michael Davidsaver
531a769007 fix rtems_ne2kpci_driver_attach prototype 2023-03-10 10:57:35 +00:00
Henrique Silva
3e51491628 Fix generalTimeReport interest_level argument type
Setting to iocshArgInt actually makes the function verbosity to be able
to be controlled by the value
2023-03-10 10:56:58 +00:00
0b01fb20db make buffer large enough for any argument value 2023-03-10 10:56:58 +00:00
Minijackson
c7a769e5da editorconfig: add workflow to check if config is upheld 2023-03-10 10:56:58 +00:00
Minijackson
a9fd57a865 editorconfig: add initial version forcing final newlines
See #337
2023-03-10 10:56:58 +00:00
e862f0e95f fix warning "if clause does not guard..." 2023-03-10 10:56:58 +00:00
172597e0e6 avoid accessing dbr_text[type] when type is out of range 2023-03-10 10:56:58 +00:00
bcdeeed206 fix missing newline at end of file 2023-03-10 10:56:58 +00:00
Michael Davidsaver
b6626e4f60 dbEvent: try to detect possible "stall"
event_read() should not return if the last callback
was delivered with eventsRemaining!=0
2023-03-10 10:56:58 +00:00
Michael Davidsaver
e1c1bb8b1b dbEvent: correct eventsRemaining
Only pass eventsRemaining when no queued events have been canceled.
Also possible race bt accessing ev_que with locking.
2023-03-10 10:56:58 +00:00
Torsten Bögershausen
90ae51e8f2 MacOs: Use readline from MacPorts
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.
2023-03-10 10:56:58 +00:00
Brendan Chandler
832abbd3b1 Return an error if subrecord processing fails due to bad INP links
If a sub record has an invalid INPx link, it was silently failing (and
not running the proc function).  This change plumbs in the error, so
the put fails and the user knows something went wrong.
2023-03-10 10:56:58 +00:00
Michael Davidsaver
52cc68433f COMMANDLINE_LIBRARY fallback to $(wildcard $(GNU_DIR) 2023-03-10 09:52:30 +00:00
Michael Davidsaver
f430389ee7 iocShutdown(): Always stop worker threads 2023-03-10 09:52:08 +00:00
Michael Davidsaver
bded79f14d dbScan join threads 2023-03-10 09:52:08 +00:00
Michael Davidsaver
2ff44cb386 callback join threads 2023-03-10 09:52:08 +00:00
Michael Davidsaver
a9ade9669a switch dbScan to epicsThreadCreateOpt() 2023-03-10 09:52:08 +00:00
Michael Davidsaver
f902d70006 switch callback to epicsThreadCreateOpt() 2023-03-10 09:52:08 +00:00
Michael Davidsaver
e22d74310b RTEMS: ensure epicsThreadMustJoin() short-circuits 2023-03-10 09:52:08 +00:00
Simon Rose
e5ad12e638 Updated RELEASE_NOTES 2023-03-10 09:51:08 +00:00
Simon Rose
b963a4564e Added commend about PBUF having no effect on 'Average' algorithm 2023-03-10 09:51:08 +00:00
Simon Rose
579c125b01 Updated documentation 2023-03-10 09:51:08 +00:00
Simon Rose
84d9617375 Added one more put/process to go over the buffer length
Note that it is not really a circular buffer in this case, but
a full reset of the buffer to the beginning. This matches the
documentation, but it seems valuable to add an explicit test for
this case.
2023-03-10 09:51:08 +00:00
Simon Rose
d66e90a016 Fixing 'error C2057: expected constant expression' error 2023-03-10 09:51:08 +00:00
Simon Rose
373e5440ac General cleanup 2023-03-10 09:51:08 +00:00
Simon Rose
dec23501e1 Added test for array_average 2023-03-10 09:51:08 +00:00
Simon Rose
11a4bed9aa compress_scalar for average works correctly now 2023-03-10 09:51:08 +00:00
Simon Rose
bf4a4c6b78 Added failing test for partial ai average 2023-03-10 09:51:08 +00:00
Simon Rose
b54d4b9a24 Added test for low value 2023-03-10 09:51:08 +00:00
Simon Rose
84f4771691 Single input data test passes 2023-03-10 09:51:08 +00:00
Simon Rose
1dc34a02e2 Add test path for single input data 2023-03-10 09:51:08 +00:00
Simon Rose
3ab22818da Added failing test for partially filled buffer average 2023-03-10 09:51:08 +00:00
Simon Rose
1ab474638d Initial test for averaging 2023-03-10 09:51:08 +00:00
Michael Davidsaver
eea361bf5e Com: Allow runtime bypass of freeListLib
By environment or iocsh variable.
2023-03-10 09:48:27 +00:00
Michael Davidsaver
d9052f7105 update ci-scripts 2023-03-09 14:26:45 +00:00
Michael Davidsaver
fa00572780 update pvData 2023-03-06 15:54:34 +00:00
Ralph Lange
636f5517b2 Add QT Creator 9.x dir to .gitignore 2023-03-06 09:30:02 +00:00
Andrew Johnson
718da5c9be Convert RecordReference.md to ComponentReference.pod
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.
2023-02-04 22:56:19 -06:00
Michael Davidsaver
e5335ce760 GHA: Add -funsigned-char build 2023-02-01 09:25:10 -08:00
3dbc9ea264 iocsh: fix argument splitting
Since commit 60128ee9 "Com: separate iocsh argument splitting",
iocsh is broken on VxWorks (tested with version 6.9.4.12)

Any command prints the error "Unbalanced quote."

> iocsh
epics> echo
Unbalanced quote.
epics> "echo"
Unbalanced quote.
epics> "echo
Unbalanced quote.
epics> echo bla
Unbalanced quote.
epics> echo 1 2 3
Unbalanced quote.
epics> exit
Unbalanced quote.
2023-02-01 09:25:10 -08:00
Michael Davidsaver
80da400f9c dbLock: avoid possibly lost log prior to cantProceed 2023-02-01 09:25:10 -08:00
Michael Davidsaver
5787125bbb doc 2023-02-01 09:25:10 -08:00
Andrew Johnson
bc54524270 Fix bad JSON char detection in dbStatic
Thanks to Dirk Zimoch for pointing this out.
2023-01-24 11:08:13 -06:00
Andrew Johnson
a2d53c05f6 Explain SNC registration in template 2023-01-24 11:06:48 -06:00
Andrew Johnson
3293a29d59 Darwin: Remove '-undefined dynamic_lookup' from SHRLIB_LDFLAGS
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).
2023-01-19 11:05:21 -06:00
Andrew Johnson
550e902bf3 iocLogPrefix: skip "already set" warning if prefix identical 2023-01-19 11:00:14 -06:00
Andrew Johnson
84e5cc0b69 softIoc -v -x prefix should show loading exit_file 2023-01-19 10:56:46 -06:00
Andrew Johnson
4b63882f28 Appveyor config fixes 2023-01-06 15:28:15 -06:00
Andrew Johnson
fb742beae3 Fix epicsThreadOnceTest.c
Replace epicsThreadSleep() with proper thread synchronization.
The main thread was reading runCount without taking lock first.
Taking the lock before accessing doneCount might not be necessary
given the epicsEventMustWait(), but not 100% sure.
2023-01-06 15:24:56 -06:00
Andrew Johnson
7ef0c80630 errSymLib: status 0 => "Ok" 2022-12-31 19:14:57 -06:00
Andrew Johnson
1f75813a4d Have macOS builds use Homebrew's GNU readline if present 2022-12-31 19:12:49 -06:00
Andrew Johnson
34ad8e2347 Edits to Release Notes and postfix.h documentation 2022-12-31 19:10:49 -06:00
Andrew Johnson
413f14e4ae Remove now-unused pdset variable. 2022-12-29 18:10:38 -06:00
Andrew Johnson
c22895d499 Adjust documentation about longout feature 2022-12-29 18:04:48 -06:00
Andrew Johnson
e63184e518 Merge PR #63, longout.OOPT 2022-12-29 16:31:42 -06:00
Andrew Johnson
755a4541c5 Update the RecordReference.md index; add links and filters. 2022-12-28 15:53:48 -06:00
Andrew Johnson
05cd7edf71 Update channel filter documentation, adding $ syntax 2022-12-28 15:52:30 -06:00
Andrew Johnson
5759726a89 Update link documentation 2022-12-28 15:43:35 -06:00
Andrew Johnson
14e7926d22 Add RecRef links to the top & bottom of each reference page 2022-12-28 15:30:25 -06:00
Andrew Johnson
c068fe3525 capr.pl: Fetch link fields as long strings 2022-12-28 12:43:38 -06:00
Andrew Johnson
c2364d9d1c Add license header to new epicsReadlinePvt.h 2022-12-28 12:42:51 -06:00
Michael Davidsaver
6be0372257 doc 2022-12-21 09:50:07 -08:00
Michael Davidsaver
e994ad78db GHA update 2022-12-21 08:15:26 -08:00
Michael Davidsaver
49fddaa13e errlogRemoveListeners() handle self-removal
Handle errlogRemoveListeners() during a callback.
2022-12-20 20:12:04 -08:00
Michael Davidsaver
7448a8bfa9 errlog: worker exit when buffer is empty
Allow the worker to flush any buffered messages.
After pvt.atExit, further logging will be synchronous.
Ensure any flusher gets a final wakeup.
2022-12-20 20:12:04 -08:00
Michael Davidsaver
166267a32f ringPointerTest in thread 2022-12-20 20:12:04 -08:00
Andrew Johnson
b460c2659e Fix for GH issue #219, menu fields with non-choice values
It's rare, but menu fields may hold a value that does not correspond
to one of the menu choices; the default value of the SSCN fields is
the most common example (65535). Change the type conversion routines
to return a numeric string instead of giving an error.

DBF_DEVICE was fixed in dbFastLinkConv.c before the 7.0.7 release.
2022-12-20 20:12:04 -08:00
Michael Skoufis
7ccc3ab82d Modify pointer type in example to match options from epicsTypes.h 2022-12-20 20:12:04 -08:00
Michael Davidsaver
adb0c898a6 doc 2022-12-20 20:12:04 -08:00
Michael Davidsaver
b38ff09f6e Com: iocsh: Tab completion of variable names for "var" 2022-12-20 20:12:04 -08:00
Michael Davidsaver
d9ca8a70f0 Com: iocsh: Tab completion
Add tab completion for "help ...", record names, and "pdbbase"
2022-12-20 20:12:04 -08:00
Michael Davidsaver
60128ee924 Com: separate iocsh argument splitting 2022-12-20 20:12:04 -08:00
Michael Davidsaver
b189991f9d Com: iocsh: add tab completion for command names 2022-12-20 20:12:04 -08:00
Michael Davidsaver
07ffc1ffae Com: introduce epicsReadlinePvt.h
Helping IDEs understand gnuReadline.c and osdReadline.c
2022-12-20 20:11:45 -08:00
Michael Davidsaver
a6afef4850 calc: add FMOD 2022-12-20 20:11:44 -08:00
Michael Davidsaver
9c0c486111 appveyor: bypass auto-detect of readline 2022-12-08 09:12:45 -08:00
Michael Davidsaver
3f5cf61fb6 update pvData 2022-12-05 10:51:47 -08:00
Andrew Johnson
6222902688 Update pva2pva module 2022-12-01 12:43:18 -06:00
Andrew Johnson
7febee04fa More & better Perl script dependencies 2022-11-30 13:35:56 -06:00
Andrew Johnson
4640f0a8ae Fix dbdExpand.pl issue 2022-11-30 13:34:22 -06:00
Andrew Johnson
8969a952e4 configure: Make Perl-generated files dependent on their .pl script 2022-11-24 17:57:05 -06:00
Michael Davidsaver
bc9415bb10 epicsErrlogTest: osiSockAttach() 2022-11-15 10:07:26 -08:00
Andrew Johnson
cbd86ada20 regRecDevDrv.pl: Don't break long symbol names in DBD files
Makes a test symbol name long enough to trigger the problem.

Fixes lp: #1995728
2022-11-04 11:09:06 -05:00
Michael Davidsaver
0f8ea3aa36 doc update dbUnitTest.h 2022-09-25 09:34:13 -07:00
Andrew Johnson
f62f68fd66 Update all submodules for future development 2022-09-07 17:00:45 -05:00
Andrew Johnson
eddafd2827 Release Checklist used for 7.0.7 2022-09-07 16:58:21 -05:00
Andrew Johnson
e3ce9d7f1a Adjustments to the make-tar.sh script 2022-09-07 16:57:09 -05:00
Andrew Johnson
df96e6df0f Set next development versions 2022-09-07 13:54:12 -05:00
Andrew Johnson
6fab3cafc5 Release notes and version number updates
Some checks failed
Base / CentOS-7 (push) Failing after 1s
Base / Fedora-33 (push) Failing after 2s
Base / Fedora-latest (push) Failing after 1s
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
2022-09-07 13:50:35 -05:00
Andrew Johnson
e4811d5a28 Documentation updates UNRELEASED => 7.0.7 2022-09-07 12:46:21 -05:00
Andrew Johnson
34af1a12bc Submodule updates for the 7.0.7 release 2022-09-07 12:17:32 -05:00
Andrew Johnson
0301e60629 Expanded on Oksana's annotations 2022-09-05 21:58:34 -05:00
Oksana Ivashkevych
759a737983 moved code tags to exclude comments, as suggested 2022-09-05 21:58:34 -05:00
Oksana Ivashkevych
eeddf54b84 in file initHooks.h changed brief sytax to make comment appear next to the field, used \code {.cpp} as suggested for the example 2022-09-05 21:58:34 -05:00
Oksana Ivashkevych
6f6ab3b758 codeathon 2022 Added doxygen formatting to initHooks.h 2022-09-05 21:58:34 -05:00
Oksana Ivashkevych
59d16c56a1 codeathon 2022. Added missing comments with \brief, updated other notation for consistency 2022-09-05 21:58:34 -05:00
Oksana Ivashkevych
58edb984c9 codeathone 2022, added doxygen syntax to all comments in dbChannel.h 2022-09-05 21:58:34 -05:00
Oksana Ivashkevych
eb3207ee21 Codeathon 2022 Header annotations project dbChannel.h 2022-09-05 21:58:34 -05:00
Andrew Johnson
098ee6c063 Oops: Fix to RULES_MODULES 2022-09-03 10:59:26 -05:00
Andrew Johnson
54c02e2c24 Fix for GitHub issue #293
Ensure local build targets are up to date before running tests.
2022-09-03 10:47:58 -05:00
Andrew Johnson
efc7cbaf7f Build system fixes related to INSTALL_LOCATION
* The build can't descend into external submodules when there is no
configure/RULES_TOP file present in $(INSTALL_LOCATION).
* Recreate modules/RELEASE.<host>.local if configure/CONFIG_SITE or
configure/CONFIG_SITE.local have changed.
* Move the distclean of modules/RELEASE.<host>.local to RULES_TOP
* Several comment and white-space changes
2022-09-03 10:47:58 -05:00
Andrew Johnson
ede35aa152 Add .gitignore files to the makeBase{App,Ext} templates 2022-09-03 10:47:58 -05:00
Torsten Bögershausen
a8e8d22c31 iocinf.cpp: Hostnames may be longer than 32 bytes
Found here at ESS:

(all in one line)
EPICS_CA_ADDR_LIST=averylonghostname.mylabnetwork.technicalnetwork.example.com
EPICS_CA_AUTO_ADDR_LIST=NO
caget somePVnam

leads to something like this:
CA.Client.Exception...............................................
    Warning: "Empty PV search address list"
    Source File: ../udpiiu.cpp line 403
    Current Time: Thu Jun 09 2022 10:10:47.804161447

Problem desription:
addAddrToChannelAccessAddressList() will collect what ever we specify in
EPICS_CA_ADDR_LIST for channel access.
That function will add IP-addresses to the search list.
hostnames are possible, but are ignored if longer than 32 bytes,
because buf is too short.

If a hostname can be resolved into an IP, that is fine,
if not that is "fine as well" (better say: silently ignored):
If, and only if, EPICS_CA_AUTO_ADDR_LIST=NO is given then the one
and only too long hostname will be ignored and lead to an
"Empty PV search address list".

If EPICS_CA_AUTO_ADDR_LIST=YES (or nothing) is specified, the search list
is not empty, and EPICS will search all broadcast addresses.
This will eventually lead into a timout.

Solution:
Increase the buf size in addAddrToChannelAccessAddressList() from 32 to 256

The maximum length for a hostname is 255:
https://www.ietf.org/rfc/rfc1034.txt

If we add one byte for the string terminating '\0', we need 256 bytes.

And yes, this patch neglets the fact that a user can specify HOSTNAME:PORT,
which may need another 6 bytes. To put it the other way around:
In this case the hostname length is limited to 250 bytes,
which is still long enough in practice.
2022-09-02 18:28:34 -07:00
c2df1c6fe5 string waveform init test added 2022-09-02 08:33:32 -07:00
c5a7548526 eliminated unnecessary code 2022-09-02 08:33:32 -07:00
dc70dfd625 escape non-printable chars in dbgf output of CHAR arrays 2022-09-02 08:33:32 -07:00
20e20cbf2b improved JSON parser error messages 2022-09-02 08:33:32 -07:00
2e44ca586f using the same error printing function consistently 2022-09-02 08:33:32 -07:00
c9619d013a printing some context 2022-09-02 08:33:32 -07:00
ec650e8c3f allow empty array input links 2022-09-02 08:33:32 -07:00
Michael Davidsaver
d47fa4caa4 fix aSub with constant input links 2022-09-02 08:09:51 -07:00
Michael Davidsaver
f0369058bb dbReadCOM missing newline in error 2022-09-02 08:08:27 -07:00
Andrew Johnson
df96c0170a Minor changes to makeBaseApp templates 2022-08-30 14:06:30 -05:00
Andrew Johnson
a411a19b2a Updates to makeBaseExt templates
Removed RULES_PYTHON (swig and Python 2.2!)
Removed CONFIG_SITE files for cygwin, solaris & darwin-ppc & ppcx86
Added CONFIG_SITE files for linux-aarch64 and darwin-aarch64
Removed pointers to many ancient packages
2022-08-30 14:05:15 -05:00
Andrew Johnson
c0db7a0beb Fix ECHO, QUIET_FLAG and QUESTION_FLAG 2022-08-26 15:22:30 -05:00
Andrew Johnson
52dfb89741 PRINT.var targets work under make -q 2022-08-26 12:32:04 -05:00
Andrew Johnson
b652e8230a Improve expandVars.pl debug output 2022-08-26 12:16:09 -05:00
Andrew Johnson
0efffc1bcb expandVars.pl now only writes output when it changes 2022-08-26 12:12:14 -05:00
Andrew Johnson
d7030ae8a5 Adjust for Perls without \N in regex. 2022-08-23 15:15:41 -05:00
Andrew Johnson
24f30ede22 Portability: Don't use bash/shell operations 2022-08-23 13:35:40 -05:00
Andrew Johnson
04ee3f2888 hg and svn have been tested 2022-08-23 13:07:06 -05:00
Andrew Johnson
a373327b59 Get revision date from Darcs 2022-08-23 13:06:44 -05:00
Andrew Johnson
1fa98d489f Merge Pierrick's VersionHeaderDate branch into 7.0 2022-08-23 11:54:07 -05:00
Andrew Johnson
5cef60a3e4 Clear unused var warning 2022-08-21 16:51:17 -05:00
Andrew Johnson
20fb6b9ef5 Merge 3.15 changes into 7.0 2022-08-21 16:44:38 -05:00
Andrew Johnson
a249561677 Added darwin-aarch64 support from 7.0 branch 2022-08-21 16:17:29 -05:00
Andrew Johnson
96887926bf Merge Freddie's set_thread_descriptions branch
PR #270
2022-08-21 16:01:51 -05:00
Andrew Johnson
c8647ffab7 Added Release Note 2022-08-21 16:00:30 -05:00
Michael Davidsaver
e28c914966 dbDumpRecordType show field offset/size 2022-08-20 13:53:03 -07:00
Michael Davidsaver
f086be93a9 add OPT_LDFLAGS and pass -g when linking 2022-08-20 13:53:03 -07:00
Michael Davidsaver
6feaaebd75 test epicsStrtok_r 2022-08-20 11:47:41 -07:00
Andrew Johnson
5d92d406a1 Darwin: Resolve soft-links in epicsGetExecName() 2022-08-18 12:17:06 -05:00
Andrew Johnson
ad1a13730a Remove unused var 2022-08-16 15:08:23 -05:00
Andrew Johnson
a24a84c315 Replace errPrintf() in recGbl.c 2022-08-16 15:07:49 -05:00
Andrew Johnson
6e7a715380 Getting .DTYP from rectype with no devSup now returns '' 2022-08-16 13:33:11 -05:00
Andrew Johnson
b88b35d117 Enhancements to the capr.pl script 2022-08-16 11:58:35 -05:00
Andrew Johnson
0a20825c6e NTPTimeSync: Show when NTP sync failed, recovered 2022-08-15 19:12:05 -05:00
Michael Davidsaver
424d678abf linkTest_registerRecordDeviceDriver() fix return type 2022-07-29 07:45:23 -07:00
Andrew Johnson
007279cf29 Release notes updated 2022-07-28 13:25:14 -07:00
Andrew Johnson
752ca97f7e VxWorks: Stop VxWorks clock sync if EPICS_TS_FORCE_NTPTIME
Use ipcom_ipd_kill() to do it properly, announce when doing it.
Suspending the ipsntps task is dangerous, can hang the OS so
don't try to kill it if user already suspended the task.
Also drops checks for the "ipntpd" thread, not used.
2022-07-28 13:11:59 -07:00
Andrew Johnson
bf0b4d2f61 VxWorks: Re-run tz2timezone() whenever the year increases
In the event that it then goes backwards we won't run it again; that
should never happen, but if it did we should prefer stability!
2022-07-28 13:11:59 -07:00
Andrew Johnson
87d5c01853 Set useNTP if VxWorks sync task is suspended
Also report that state instead of "running".
2022-07-28 13:11:59 -07:00
Andrew Johnson
956af730a9 osiClockTime.c: Clarify message wording
Distinguish between IOC's clock sync thread and OS's one.
Show our sync interval even when not synchronized.
Only mention the clock sync thread where there can be one.
2022-07-28 13:11:59 -07:00
Andrew Johnson
32564b1a94 osiClockTime.c: Move some things around
Group the private variables, note which are mutex-protected.
Reset the sync interval to 1 second if sync is restarted.
Initialize the syncFromPriority variable.
2022-07-28 13:11:59 -07:00
Andrew Johnson
5b690d5467 VxWorks: Pass interest level into osdClockReport 2022-07-28 13:11:59 -07:00
Andrew Johnson
9efebb6d3d osiClock: Register ClockTime_Init with iocsh
ClockTime_Init and ClockTime_Shutdown are only on VxWorks & RTEMS.
Adjust help text to match.
ClockTime_Init can be re-run later to start or stop the sync thread.
2022-07-28 13:11:59 -07:00
Andrew Johnson
1df973b234 VxWorks: Provide osdClockReport() for OS clock sync tasks. 2022-07-28 13:11:59 -07:00
Andrew Johnson
c71ebd1221 VxWorks: Set timezone when using OS own time-sync tasks 2022-07-28 13:11:59 -07:00
Andrew Johnson
167807f0c4 Rename OS Clock provider on macOS, uses a different implementation. 2022-07-28 13:11:59 -07:00
Jure Varlec
e6b8ecd55e Add space to the message printed by errMessage() 2022-07-28 13:11:29 -07:00
Michael Davidsaver
9048aa3438 db: move db_field_log dtor out of union 2022-07-28 13:10:59 -07:00
Bruce Hill
5ba8080f6e Fix undef ts on first camonitor update of NORD
Moves db_post_events() calls for NORD to process() function
after it updates the timestamp.
2022-07-28 13:09:27 -07:00
Michael Davidsaver
a0a7a94944 mingw fix -lreadline
Override of OP_SYS_LDLIBS prevented LDLIBS_READLINE
from having an effect.

Recent readline doesn't need curses
2022-07-28 13:07:34 -07:00
Michael Davidsaver
42c7dbcd21 remove Makefile readline.h detection logic 2022-07-28 13:07:34 -07:00
Michael Davidsaver
4b8edd2b6f automatic COMMANDLINE_LIBRARY w/ newer compilers 2022-07-28 13:07:34 -07:00
Andrew Johnson
d82ab819ef Cap5 support for zero-length long strings 2022-07-13 13:24:54 -05:00
Andrew Johnson
5f02bad3fc Fix decimate filter for testing on VxWorks
Also adds checks to all filter tests to abort if they
can't continue because their filter wasn't registered.
2022-07-08 15:55:14 -05:00
Andrew Johnson
83a685867c Merged 'roehrig-7.0' into 7.0 2022-07-04 20:53:47 -05:00
Christian Roehrig
05311e0c94 Added Doxygen annotations to modules/libcom/src/iocsh/iocsh.h 2022-07-04 20:45:51 -05:00
Andrew Johnson
35f4d3f8dd Merged 'brendanchandler:annotations2' into 7.0 2022-07-04 20:34:24 -05:00
Brendan Chandler
9864f79d67 Update doxygen for ipAddrToAsciiAsynchronous 2022-07-04 20:28:43 -05:00
Brendan Chandler
91800787ed Doxygen support for ipAddrToAsciiAsynchronous.h 2022-07-04 20:28:43 -05:00
Andrew Johnson
05b27067cf Merged 'echandler-anl:doxygen_comments2' into 7.0 2022-07-04 20:23:24 -05:00
Elaine Chandler
ccdd2808d9 add doxygen comments for epicsAtomic.h 2022-07-04 20:19:45 -05:00
Andrew Johnson
00183fcd4b Merged 'brendanchandler:annotations' into 7.0 2022-07-04 19:58:30 -05:00
Brendan Chandler
1be06fc0e9 Fix doxygen annotations in epicsGuard and osiSock
Change addresses some review feedback kindly given by @minijackson
2022-07-04 19:38:15 -05:00
Brendan Chandler
7cdc44434c Doxygen annotation proofreading fixes in osiSock.h 2022-07-04 19:38:15 -05:00
Brendan Chandler
f3dfb36117 Update doxygen annotations on osiSock.h 2022-07-04 19:38:15 -05:00
Brendan Chandler
500e901e3d Change @param to \param in epicsGuard.h 2022-07-04 19:38:15 -05:00
Brendan Chandler
a3b09ef1b8 Add doxygen annotations for osiSock.h 2022-07-04 19:38:15 -05:00
Brendan Chandler
55d4801eb0 Fix a couple doxygen warnings
Warnings complained about undocumented parameters.
2022-07-04 19:37:57 -05:00
Brendan Chandler
af41b95b98 Fix a few formatting and doxygen conversion issues 2022-07-04 19:29:10 -05:00
Brendan Chandler
c6605b5d87 Update doxygen annotations in testMain.h
There were already some comments here, but they were missing a doxygen
\file declaration, so the annotations weren't shown in the doxygen
output.

Also added some formatting for the code example and definition of MAIN macro.
2022-07-04 19:29:10 -05:00
Brendan Chandler
9b9ed04ae2 Add doxygen annotations for epicsGuard.h 2022-07-04 19:29:09 -05:00
Andrew Johnson
50f9b12e7d Merged 'echandler-anl:doxygen_comments' into 7.0 2022-07-04 19:16:28 -05:00
Andrew Johnson
bfd2684e58 Minor fixes to Elaine's annotations 2022-07-04 16:47:44 -05:00
Elaine Chandler
95fcf690ad add doxygen comments for epicsStackTrace 2022-07-04 16:27:48 -05:00
Elaine Chandler
0fa3337404 add doxygen comments for epicsSpin.h 2022-07-04 16:27:48 -05:00
Elaine Chandler
e5b6ef9893 Fix doxygen comments to epicsString.h 2022-07-04 16:27:48 -05:00
Elaine Chandler
5b64eaac73 add doxygen comments for osiProcess.h 2022-07-04 16:27:48 -05:00
Elaine Chandler
30d4a583d0 add doxygen comments for logClient 2022-07-04 16:27:48 -05:00
Elaine Chandler
6249ef08f7 Added doxygen comments to epicsString.h 2022-07-04 16:27:48 -05:00
Andrew Johnson
b5105740e6 Fix warnings from Doxygen 2022-07-04 16:18:46 -05:00
Andrew Johnson
818f33e78f Update submodules 2022-07-04 16:04:56 -05:00
Andrew Johnson
571165df26 Stop Clang-12 warnings from Perl XS code 2022-07-04 15:55:18 -05:00
Michael Davidsaver
4df48c91f4 dbEvent: re-add compaction of duplicate "empty" events 2022-06-29 07:23:36 -07:00
Michael Davidsaver
32652414b3 update release notes 2022-06-20 08:20:40 -07:00
Michael Davidsaver
9c8aaa93cd Set RSRV_SERVER_PORT
Publish actual TCP port used.
2022-06-20 08:11:09 -07:00
Andrew Johnson
abe819b51d Release notes for dbdExpand.pl changes 2022-06-20 08:10:46 -07:00
Andrew Johnson
cf278b4159 Sort other DBD entries for output
This should solve all DBD-related reproduceable build issues.
2022-06-20 08:10:46 -07:00
Andrew Johnson
50594a8cc3 Release notes entry for dbExpand.pl -s 2022-06-20 08:10:46 -07:00
Andrew Johnson
ce420588db Have dbExpand.pl sort records by name, unless -s used 2022-06-20 08:10:46 -07:00
Andrew Johnson
4d3a27fdb0 Keep a separate list of record names 2022-06-20 08:10:46 -07:00
Jure Varlec
6176a81a76 Update docs for compress record's run-time parameters 2022-06-20 08:10:01 -07:00
Minijackson
a722bb9289 treewide: add usage help to various iocsh functions 2022-06-20 08:09:42 -07:00
Michael Davidsaver
19daf6136f ioc template avoid passing "0"
> dbLoadDatabase("../../dbd/_APPNAME_.dbd",0,0)

is being interpreted as

> dbLoadDatabase("../../dbd/_APPNAME_.dbd","0","0")

If "../../dbd/_APPNAME_.dbd" doesn't exist, this will
next attempt to open "0/../../dbd/_APPNAME_.dbd",
which added to my confusion...
2022-06-20 08:09:08 -07:00
Michael Davidsaver
0552f2bb72 aao: add OMSL and DOL 2022-06-20 08:08:50 -07:00
Andrew Johnson
9bb11e6e88 Fix VxWorks time sync initialization bug 2022-06-14 16:07:39 -05:00
Michael Davidsaver
2f8272d3a1 doc for: posix: use pthread_key_create() to cleanup epicsThreadOSD 2022-06-08 09:40:12 -07:00
Michael Davidsaver
7cf2a1daca epicsThreadTest: check that joined threads disappear 2022-06-08 09:40:12 -07:00
Michael Davidsaver
d019e9787a posix: use pthread_key_create() to cleanup epicsThreadOSD
Ensure that cleanup happens for all threads,
including implicitly created.
2022-06-08 09:40:12 -07:00
Freddie Akeroyd
4b884c15b1 SetThreadName: Add WINAPI (correctly) for 32bit builds 2022-05-24 14:40:46 +01:00
Freddie Akeroyd
0ace4e4a30 SetThreadName: Add WINAPI for 32bit builds 2022-05-24 14:21:12 +01:00
Freddie Akeroyd
3cf2d3737f Use SetThreadDescription(), if available, to set thread name 2022-05-24 13:24:42 +01:00
hanlet
5997018fb0 Made changes suggested by Michael:
- removed unused/misused $opc_X
- modified command line repo calls
- fixed ifndef block
2022-05-17 12:14:29 -05:00
hanlet
2afa4ea390 Cosmetic change. 2022-05-13 13:32:35 -07:00
hanlet
f0c86c5cb3 Added repository name
Changed git date from epoch to present commit date
2022-05-13 13:25:47 -07:00
hanlet
8e4ffd46a0 Changed descriptive text to identify new commit date information. 2022-05-13 11:38:32 -07:00
hanlet
f109371268 Added revision release time to ioc startup message. 2022-05-13 11:30:26 -07:00
hanlet
e566c52a78 Simplified to remove "use" cases and settling for string for versions of commit date/time. 2022-05-13 10:46:17 -07:00
hanlet
8d0bfcbc5b Modify genVersionHeader.pl to add commit time (in epoch).
Tested for git.
Not tested: darcs, mercurial, or svn
Skipping: bzr
2022-05-13 09:31:01 -07:00
Michael Davidsaver
3fadf4a26c add missing registerRecordDeviceDriver.pl dependency 2022-05-12 10:47:44 -07:00
Michael Davidsaver
9ebd841738 update doc in epicsStdio.h 2022-05-12 10:47:44 -07:00
Michael Davidsaver
94b0e2621f iocsh: more helpful help
For plain "help", move the hint text to the end.
For "help ..." make the command names bold.
2022-05-12 09:01:36 -07:00
Michael Davidsaver
a44ddd586e errlog: add ANSI_BOLD 2022-05-12 09:01:36 -07:00
Minijackson
6fbf95ab18 make Perl hash iteration reproducible
By default Perl doesn't iterate over hashes in a reproducible manner,
to avoid DDoS. Since we aren't providing untrusted inputs, it is fine to
disable this behaviour.

Among other things, this makes the .dbd and some .h generation reproducible.

More information here:

- https://reproducible-builds.org/docs/stable-outputs/
- https://perldoc.perl.org/perlrun#PERL_HASH_SEED
2022-05-11 11:44:00 -07:00
Michael Davidsaver
5485adacb9 make epicsNAN and epicsINF constants really constant 2022-05-11 11:44:00 -07:00
Florian Feldbauer
6ecc384116 fix failing STATIC_BUILD on linux-arm
On linux-arm STATIC_BUILD used the `-static` flag
which leads for some reason to the executables being
linked against `/lib/ld.so.1` which does not exists.

Setting `STATIC_LDFLAGS_YES= -Wl,-Bstatic` in CONFIG.linux-arm.linux-arm
fixed this issue for me.
2022-05-11 11:44:00 -07:00
Matt-E7R5
66537d01bd Patch for RTEMS-mvme2700 2022-05-11 11:44:00 -07:00
Ralph Lange
b6f69241e1 Merge 'evan@gh/add-simm-to-ao-records' into 7.0
(closes #144)
2022-05-11 10:56:37 -07:00
Ralph Lange
4fc549234c Merge branch '7.0' into add-simm-to-ao-records 2022-05-11 10:47:12 -07:00
Ralph Lange
0bcffb56bb Add mention to RELEASE_NOTES 2022-05-11 10:44:53 -07:00
Ralph Lange
60001c0571 Add SIMM=RAW for mbboDirect record 2022-05-10 16:33:28 -07:00
Ralph Lange
37b95bc242 Add SIMM=RAW for mbbo record 2022-05-10 16:33:28 -07:00
Ralph Lange
4e9bb9fe50 Add SIMM=RAW to bo record 2022-05-10 16:33:27 -07:00
Ralph Lange
371cdde6df Trivial fixes to simmRAW for ao 2022-05-10 16:33:27 -07:00
Andrew Johnson
cbae8d37b3 Improve wording of seqRecord doc 2022-04-26 21:07:27 -05:00
wtup
9eb88f27d9 Fixed direction of SHIFT to match implementation 2022-04-26 20:56:43 -05:00
Andrew Johnson
e329fa3296 CA Client: Protect against epicsTime::strftime() throwing
libCa shouldn't cause an application to abort with an uncaught
exception on a machine that has timezone problems just because
we can't convert the current time into a string.
2022-04-24 12:50:40 -05:00
Michael Davidsaver
492672c718 Revert "ci: GHA follow 'make' with 'make -q'"
Stupid make...

This reverts commit b4d7ebd648.
This reverts commit 0f0f9f49d6.
2022-04-23 10:19:00 -07:00
Michael Davidsaver
b4d7ebd648 cue.py workaround limitation
The first argument after "build" can't be an option.
cf. python argparse limitations of add_parser() + REMAINDER
2022-04-23 08:49:35 -07:00
Michael Davidsaver
0f0f9f49d6 ci: GHA follow 'make' with 'make -q'
Detect situations where 'make' was somehow incomplete,
or where an incorrect dependency leaves some step
perpetually out-of-date and repeated every time.
2022-04-19 10:22:54 -07:00
Andrew Johnson
6d3821adb8 Soft-links to capr.pl and makeBaseApp.pl scripts now work
The other Perl scripts that use FindBin for their lib path could
have the same changes applied, but these two scripts are the ones
normally run by hand so might get soft-linked by an installer.
Without this change these scripts don't actually work if run from
a soft-link instead of directly.
2022-04-18 20:46:48 -05:00
Michael Davidsaver
92e97af610 softMain: handle rRDD error 2022-04-16 13:23:58 -07:00
Michael Davidsaver
b0e2e8426f Quiet warning 2022-04-16 13:23:58 -07:00
Andrew Johnson
3e371da8ec RULES_EXPAND: Keep intermediate files
This prevents GNUmake from recreating expanded files
such as databaseVersion.h at every build.
2022-03-28 00:07:21 -05:00
Michael Davidsaver
91941af992 quiet warnings 2022-03-04 10:00:12 -08:00
Michael Davidsaver
d2644baf38 minor 2022-03-03 13:16:57 -08:00
Michael Davidsaver
62092d4399 test dbReadDatabaseFP() 2022-03-03 13:16:53 -08:00
Michael Davidsaver
6c5d56688d help out IDEs 2022-03-03 13:16:50 -08:00
Michael Davidsaver
a6779df21c dbReadDatabaseFP() always fclose() 2022-03-03 13:16:45 -08:00
Andrew Johnson
d8c5379453 Configure builds for lgtm.com 2022-02-15 13:26:43 -06:00
Andrew Johnson
7a9801a4cb Add vxWorks-e500v2 target (MVME2500, APS only) 2022-02-15 13:08:51 -06:00
Andrew Johnson
f33add020e Update Release notes 2022-02-15 11:15:04 -06:00
Andrew Johnson
3bebe6e873 Revert "configure: Don't hide any perl scripts being run"
This reverts commit 3e8f3a1ee9
which was wrong - recipes that start with '-' are still echoed,
they just don't fail the build if they don't succeed.

This fixes setting CHECK_RELEASE = WARN in configure/Makefile
2022-02-15 10:49:37 -06:00
Andrew Johnson
2fbaa7f926 Improve POD documentation of the TSE and TSEL fields 2022-02-08 15:29:05 -06:00
Andrew Johnson
e55e4d7646 Make DISP field DCT=Yes 2022-02-08 15:29:05 -06:00
Andrew Johnson
5efc0cbfce Echo message when running makeBpt 2022-02-08 15:29:05 -06:00
Andrew Johnson
3a182a9eea "Quote" exe program paths for Windows
Clean up old EPICS_DATABASE var's (pre-7.0?)
2022-02-08 15:29:05 -06:00
Michael Davidsaver
0e56e202fc ci: drop CentOS-8
The centos:8 docker image has disappeared.
2022-02-01 12:53:55 -08:00
Michael Davidsaver
d9fd73a850 yajl: doc 2022-01-28 11:23:16 -08:00
Andrew Johnson
d508962211 Breaktable.pm: Add missing declaration 2022-01-24 15:30:23 -06:00
Andrew Johnson
7cb80d5a17 Merge Dirk's fix_epicsInt8 branch into 7.0 2022-01-24 13:32:16 -06:00
Andrew Johnson
051e3f3bc3 Merge Michael's fork-warn branch into 7.0 2022-01-24 13:02:22 -06:00
Andrew Johnson
db216e63a7 Merge Dirk's hex_in_hw_links branch into 7.0 2022-01-24 12:57:53 -06:00
Andrew Johnson
7a3c9eaaa0 Merge Michael's linux-mcast-all branch into 7.0 2022-01-24 12:51:09 -06:00
Andrew Johnson
4bece4ad92 Merge Heinz & Andrew's rtems-osd-event branch into 7.0 2022-01-24 12:44:17 -06:00
Andrew Johnson
36f11fba95 Release Notes update for epicsEvent 2022-01-24 12:43:36 -06:00
Andrew Johnson
7017e54930 Allow more char's in breaktable names 2022-01-24 12:25:57 -06:00
Andrew Johnson
43b623d80e Markdown issue in RELEASE_NOTES 2022-01-13 17:14:00 -06:00
Andrew Johnson
132f9105d0 Fix filenames in CONFIG_SITE file comments 2022-01-13 17:13:25 -06:00
Andrew Johnson
1655d68ec4 Fix for NaN/overflow timeout in RTEMS-score osdEvent 2022-01-05 12:04:02 -06:00
Andrew Johnson
e4a81bb361 Document zero and NaN timeout values
Rename parameter timeOut => timeout everywhere
2022-01-04 17:16:59 -06:00
Andrew Johnson
d1094ee787 Fix timeout values in epicsEventWaitWithTimeout()
isnan(timeOut) => wait forever
0 < timeOut < 1/rate => 1 tick
rtems_interval is a typedef for uint32_t
2022-01-04 13:07:30 -06:00
Andrew Johnson
34baa485bc Fix timeout values in epicsEventWaitWithTimeout()
isnan(timeOut) => wait forever
0 < timeOut < 1/rate => 1 tick
2022-01-04 13:05:21 -06:00
c5012d9f73 Make sure epicsInt8 is signed on all architectures 2021-12-17 09:42:04 +01:00
Ralph Lange
7c168f20f4 Fix gdd string to double conversion
This is an alternative fix for the issue described in
https://github.com/epics-modules/pcas/issues/4 and
https://github.com/epics-extensions/ca-gateway/issues/37
that keeps the call to epicsScanDouble() before trying
sscanf() first with "%lf" (ignoring extra characters)
then with "%x" (to catch hex numbers).
(closes #216)
2021-12-08 17:07:11 +01:00
Andrew Johnson
1c3aa01846 Cleanup CONFIG_COMMON
Some checks failed
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / CentOS-8 (push) Failing after 1s
Base / CentOS-7 (push) Failing after 6s
Base / Fedora-33 (push) Failing after 2s
Base / Fedora-latest (push) Failing after 1s
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Rewrote some definitions for clarity
2021-11-25 18:37:22 -06:00
Andrew Johnson
191ff137f1 configure: Use GNU Make's abspath instead of fullPathname.pl
Add new INSTALL_ABSOLUTE variable, remove duplicates.
2021-11-25 13:27:35 -06:00
Andrew Johnson
156945c458 YAJL: Handle truncated Unicode surrogates better 2021-11-25 13:27:35 -06:00
Andrew Johnson
31fcb77412 macCore: Don't pass NULL or "" into getenv() 2021-11-22 15:56:30 -06:00
Andrew Johnson
631f514c7c Test vprintf() redirection, other tweaks 2021-11-22 15:52:25 -06:00
Andrew Johnson
6e496e80d1 Redirection support for vprintf() 2021-11-22 15:51:08 -06:00
Michael Davidsaver
de7ad13b3c Com: posix warn of use of epicsThread from child after fork() 2021-11-15 10:09:52 -08:00
Michael Davidsaver
2256c979b0 ca: silence warning 2021-11-13 11:47:15 -08:00
Michael Davidsaver
5e2a52401f Com: avoid implicit use of epicsStdio in posix epicsThread.c 2021-11-13 11:47:15 -08:00
Michael Davidsaver
7529577e3b Silence warning in mbbioDirectTest
GCC seems to lose track of possible output lengths
of the first sprintf() when computing possible lengths
of the second.

../mbbioDirectTest.c:44:26: warning: ‘.B’ directive writing 2 bytes into a region of size between 1 and 40 [-Wformat-overflow=]
   44 |         sprintf(field,"%s.B%X", rec, i);
2021-11-13 11:47:15 -08:00
6173baed1e mention hex numbers for HW links in release notes 2021-11-10 10:49:23 +01:00
71efed8c1b extend link test to hex numbers 2021-11-10 10:15:56 +01:00
9a09436ac8 allow hex (and octal) in hardware links
Conflicts:
	modules/database/src/ioc/dbStatic/dbStaticLib.c
2021-11-10 10:15:39 +01:00
Michael Davidsaver
1c96fd1cb4 ci: run tests for RTEMS 4.9 and 5 2021-11-09 09:33:25 -08:00
Michael Davidsaver
8d078a0c7d RTEMS: rtems_netconfig.c version test consistency
The comment above says "... no longer needed in RTEMS 4.11"
which to me says needed "< 4.11".
2021-11-09 09:32:13 -08:00
Michael Davidsaver
8a4051964f RTEMS: e1000 giant hack for QEMU w/ libbsd 2021-11-09 09:32:13 -08:00
Michael Davidsaver
5ef537684e RTEMS5: update libbsd logging
Show messages synchronously during boot,
then redirect through errlog before user app.

Disable syslog() during tests
2021-11-09 09:32:13 -08:00
Michael Davidsaver
c1dcd728d7 RTEMS5: redo dhcp handler and make NTP optional 2021-11-09 09:32:13 -08:00
Michael Davidsaver
78684e0e57 asyncSoftTest fix sync 2021-11-08 07:58:15 -08:00
Michael Davidsaver
f57acd2c10 add testdbCaWaitForConnect() 2021-11-08 07:58:15 -08:00
Michael Davidsaver
ba5ade1852 softTest fix sync 2021-11-05 08:31:17 -07:00
Michael Davidsaver
8a0fc0373b dbPutFieldLink() missing status on dbChannelOpen() error 2021-11-03 12:47:04 -07:00
Michael Davidsaver
4340e76445 drop unused dbCaGetUpdateCount() 2021-11-02 11:31:28 -07:00
Michael Davidsaver
ce910f52c3 drop usage of dbCaGetUpdateCount() 2021-11-02 11:31:26 -07:00
Michael Davidsaver
219ab33625 fix regressTest 2021-11-02 11:31:24 -07:00
Michael Davidsaver
e9e576f4bb add testdbCaWaitForUpdateCount() and fix dbCaSync()
Add testdbCaWaitForUpdateCount() to wait for CA link
data event counter.

dbCaSync() actually wait for  work queue to be empty
2021-11-02 11:31:19 -07:00
Michael Davidsaver
5bb1138b87 Revert "Another attempt to fix regressTest.c::testLinkSevr()"
This reverts commit 955dcfc7b5.
2021-11-02 10:53:21 -07:00
Andrew Johnson
955dcfc7b5 Another attempt to fix regressTest.c::testLinkSevr() 2021-10-28 13:21:03 -05:00
Andrew Johnson
07a371703f Cosmetic Release Notes change 2021-10-28 13:20:49 -05:00
Andrew Johnson
1950a8240c Fix issue reported by Matt Pearson 2021-10-26 16:46:35 -05:00
Michael Davidsaver
a662cae239 changelog 2021-10-18 10:21:28 -07:00
Michael Davidsaver
2b3c6f2e26 epicsSingleton cleanup
Inline all template methods to avoid dllimport/export issues
with some mingw.

Change dllimport/export to only include out of line
methods of SingletonUntyped.
2021-10-18 10:11:08 -07:00
Michael Davidsaver
b1d9c57101 db_field_log::mask overwrite with actual event mask.
db_create_event_log() initializes mask with pevent->select.
2021-10-18 08:45:25 -07:00
Michael Davidsaver
446e0d4af8 dbnd filter pass through DBE_ALARM|DBE_PROPERTY 2021-10-18 08:45:23 -07:00
Michael Davidsaver
2f51653a9e errlog: try to enable WIN10 terminal escape processing 2021-10-18 08:45:13 -07:00
Michael Davidsaver
b9899213d4 colorize errors and warnings
Use ERL_ERROR and ERL_WARNING

git grep -li 'errlogPrintf.*[" ]error' | xargs sed -i -E -e 's|(errlogPrintf.*[" ])(error)|\1" ERL_ERROR "|g'

git grep -li 'errlogPrintf.*[" ]warn' | xargs sed -i -E -e 's|(errlogPrintf.*[" ])(warn[a-zA-Z]*)|\1" ERL_WARNING "|g'
2021-10-18 08:45:13 -07:00
Michael Davidsaver
0c12b02d4f errlog strip ANSI escapes
Always strip for handlers, and conditionally
if stderr is not a TTY, or $TERM unset/empty.
2021-10-18 08:45:13 -07:00
Michael Davidsaver
ac12ccad38 errlog add ANSI escape macros 2021-10-18 08:45:13 -07:00
Michael Davidsaver
8fdaa13c97 errlog: eltc() re-add flush
Removal upsets dbCaLinkTest on RTEMS, which must not be
synchronizing correctly.  Re-add until this can be corrected.
2021-10-18 08:45:13 -07:00
Michael Davidsaver
29fa0621d7 Com: rewrite errlog
Switch to double buffering to allow errlogThread
to unlock while printing.
2021-10-18 08:45:13 -07:00
Andrew Johnson
6063de9a8b Added Heinz new osdEvent.c to RTEMS-posix 2021-10-12 12:37:57 -05:00
Michael Davidsaver
465920fcf1 ci: disable RTEMS test running 2021-10-12 10:24:22 -07:00
Michael Davidsaver
b9e9537376 regressTest: attempt to fix spurious failure 2021-10-12 10:22:31 -07:00
Andrew Johnson
fb46786ccb Update version numbers and submodules after release 2021-10-06 20:19:02 -05:00
Andrew Johnson
abfe30ef13 Set version numbers for release
Some checks failed
Base / CentOS-7 (push) Failing after 1s
Base / CentOS-8 (push) Failing after 2s
Base / Fedora-33 (push) Failing after 1s
Base / Fedora-latest (push) Failing after 2s
Base / Win2019 MSC-19, static (push) Has been cancelled
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
2021-10-06 20:11:17 -05:00
Andrew Johnson
9895ee8b53 Release notes 2021-10-06 20:06:22 -05:00
Andrew Johnson
78b7441383 Checkout submodules for release 2021-10-06 17:23:31 -05:00
Andrew Johnson
48d070d29d UNRELEASED => EPICS 7.0.6.1 for Release 2021-10-06 15:28:20 -05:00
Andrew Johnson
a5864e152b Adjust Doxygen annotation comments 2021-10-06 15:21:36 -05:00
Andrew Johnson
b6da758275 Merge the mbboDirect-bit-fields branch into 7.0
Fixes: lp: #1939568
2021-10-05 17:21:18 -05:00
Andrew Johnson
59ee7b32bc "Desired Output": change "Loc" to "Link" in prompt string 2021-10-05 00:19:50 -05:00
Andrew Johnson
3f43b0bb8a Record POD updates
Mostly fixing links and adding some field tables.
Some rewriting of descriptions.
2021-10-04 23:57:01 -05:00
Andrew Johnson
e867b0a095 mbboDirect: Document the behavior changes
Wording assumes this will go into the EPICS 7.0.6.1 release.
2021-10-04 23:36:01 -05:00
Andrew Johnson
dabcf893f7 mbboDirect: Fix initialization from VAL vs. B* 2021-10-03 00:53:35 -05:00
Andrew Johnson
bf2cdc9f61 mbboDirect: Remove debugging db_post_events() calls 2021-10-02 19:52:11 -05:00
Andrew Johnson
2ce583ffff Apply suggested changes to DEBUG fixes 2021-10-01 14:53:55 -05:00
Andrew Johnson
98aac49a8b Merge Torsten's FixCompilationErrorsForDEBUG branch 2021-10-01 14:44:38 -05:00
Andrew Johnson
66ff5a7bb6 Update pvAccess submodule 2021-09-25 22:55:14 -05:00
Andrew Johnson
23e55bf247 Makefile tweak 2021-09-25 22:52:57 -05:00
Andrew Johnson
687dad47da aSub POD: Note about accessing the NOT field 2021-09-25 22:45:37 -05:00
Andrew Johnson
7d2ca62a78 Misc doxygen fixes and updates 2021-09-25 22:34:05 -05:00
Andrew Johnson
3d09106b51 Merge 3.15 branch into 7.0 2021-09-17 11:44:04 -05:00
Andrew Johnson
5cddcea829 Change the epicsTimerTest delayVerify failure condition
This test verifies timer delays between 1.0 and 3.4 seconds.
A test failure now means the measured delay was more than
0.25 seconds different than the request, instead of being
5% of the request. This should now pass on GHA macOS.

On the 7.0 branch it should call testImpreciseTiming() and
use a smaller absolute delay threshold for better targets.
2021-09-17 11:16:00 -05:00
Andrew Johnson
9b69e63a69 Update GHA config, drop Ubuntu-16.04 builds 2021-09-17 10:06:10 -05:00
Andrew Johnson
422513990e Release notes for Win32 timer fix. 2021-09-16 14:54:31 -05:00
Andrew Johnson
3313860691 Win32 osdThread.c polishing
A little optimization of Freddie's code
Rename the new non-public routine
2021-09-16 14:45:25 -05:00
Andrew Johnson
2b8eb97b79 Merge Freddie's refactor_get_param_win32 branch 2021-09-16 13:28:42 -05:00
Andrew Johnson
9842bd1b20 Prefer to install %.html files from O.Common 2021-09-16 13:21:59 -05:00
Andrew Johnson
e7ea81c7a2 Reference doc tweaks to the dfanout record 2021-09-14 18:26:32 -05:00
Andrew Johnson
c528948f45 Adjust build rules for POD to HTML conversion 2021-09-14 18:25:30 -05:00
Freddie Akeroyd
00e9ecf7b5 Fix typo in osdThreadGetTimer 2021-09-11 22:19:40 +01:00
Freddie Akeroyd
65b34874bd Check for NULL in osdThreadGetTimer 2021-09-11 22:17:09 +01:00
Freddie Akeroyd
939d84f31a Refactor to use common epicsThreadGetParamWIN32() function 2021-09-11 22:10:10 +01:00
Andrew Johnson
fe4050b8c9 Workaround for RTEMS-mv2[17]00 parallel builds 2021-09-03 17:27:17 -05:00
Andrew Johnson
1fd7190cf5 Fix RTEMS-4 uC5282 build and atomic typos 2021-09-03 17:25:45 -05:00
Andrew Johnson
8e2f78caf5 dbStatic: Better error reports for bad JSON string chars 2021-09-03 14:16:37 -05:00
Andrew Johnson
33ffabaa93 Minimum Perl version is 5.10.1 2021-09-03 14:13:45 -05:00
Michael Davidsaver
9c1340d7d5 cleanup mbboDirect bit field handling
B0 -> BF shall always follow the corresponding bit in VAL.

Remove special handling for OMSL.
2021-09-01 12:15:35 -07:00
Torsten Bögershausen
420fb45fbc Fix several compilation errors for -DDEBUG
After Adding "-DDEBUG" to the compiler options some files don't
compile any more.
Fix the compilation errors.
2021-09-01 11:13:40 +02:00
Michael Davidsaver
7ce69155a9 test regressLinkSevr 2021-08-29 07:34:53 -07:00
Michael Davidsaver
f6e8a75026 Fix DB link to DBF_MENU as DBF_STRING 2021-08-29 07:32:36 -07:00
Michael Davidsaver
88079c9107 long CALC$ regressTest 2021-08-29 07:31:11 -07:00
Michael Davidsaver
82ec539e49 Fix long string handling for CALC$ 2021-08-29 07:30:20 -07:00
Michael Davidsaver
e34b6c5c0c Fix spelling in comments
Should be non-functional, except for some error message strings.
2021-08-29 07:27:50 -07:00
42d06d6a38 Fix bugs in dbRecordNameValidate() 2021-08-29 07:25:14 -07:00
Michael Davidsaver
21e7e4ddfb cleanup regressTest 2021-08-15 10:27:37 -07:00
Andrew Johnson
4efa937429 Merge Lewis' calcout-doc-fix branch into 7.0 2021-08-10 20:59:59 -05:00
Andrew Johnson
a0ab5aa4a3 Merge Kay's int64in_monitor branch into 7.0 2021-08-10 20:58:26 -05:00
Andrew Johnson
7c6d049698 Merge branch 'gcc-atomic-cleanup' into 7.0 2021-08-10 20:54:39 -05:00
Andrew Johnson
8175cc8e64 POD text updates to dbCommon and various record types 2021-08-10 20:35:19 -05:00
Andrew Johnson
72626cd5dd Add newlines to a couple iocsh usage strings 2021-08-10 20:31:16 -05:00
Andrew Johnson
8beb7bd2c8 Restore the -p flag to MKDIR which RTEMS host.cfg removes 2021-08-10 20:29:32 -05:00
Michael Davidsaver
51191e6155 Com: clear IP_MULTICAST_ALL on Linux
The default, non-compliant, behavior will pass all multicast packets
to any socket bound to 0.0.0.0 or the mcast address, regardless
of which groups, on which interfaces, that socket has joined.
2021-08-05 08:51:02 -07:00
Michael Davidsaver
cb8c7998b6 epicsTime: rework
Re-implement around epicsTimeStamp (C API)
with class epicsTime becoming a wrapper.

Prefer epicsInt64 arithmetic.

Remove opaque struct l_fp (NTP time conversion)
2021-08-05 08:30:53 -07:00
JJL772
7c991f3f2a Fix segfault in dbtpn when value parameter is nullptr
Running 'dbtpn Record' in iocsh would result in a segfault.
2021-08-05 08:30:53 -07:00
JJL772
32d76623f2 Fix potential memory leak on error
In osdThread.c for POSIX if pthread_create_key fails
In iocLogServer.c if fdmgr_init returns NULL
In dbBkpt.c if semaphore creation fails while adding a bp to a lockset
In devSiSoftCallback.c if linked record is not found
2021-08-05 08:30:23 -07:00
Andrew Johnson
540a5c87d9 Adjust wording of classification descriptions 2021-08-02 18:26:44 -05:00
Andrew Johnson
a667cc7aa4 Move GCC+Clang common headers to a new file 2021-08-02 18:26:02 -05:00
Michael Davidsaver
78d2f20fa8 Com: Adjust epicsAtomic conditionals for GCC
cf. https://bugs.launchpad.net/epics-base/+bug/1932118
2021-08-02 18:13:40 -05:00
Kay Kasemir
3091f7c56f int64in: Fix monitor delta test
Only the lower 32 bit used to be compared.
https://bugs.launchpad.net/epics-base/+bug/1938459
2021-07-29 14:38:16 -04:00
Andrew Johnson
ec87b2a867 recGbl: Update to using dbGetTimeStampTag() 2021-07-21 11:08:06 -05:00
Andrew Johnson
7a6aa3edd1 waveform: Update POD, describe BUSY field 2021-07-21 11:06:34 -05:00
Andrew Johnson
16c3202992 waveform: Add back lost PACT = TRUE
Fixes GitHub Issue #187
2021-07-21 11:05:41 -05:00
8e11406fc6 Fix calcout rec doc typo: s/If it met/If met/ 2021-07-21 09:53:11 -05:00
Michael Davidsaver
967846b950 tap files are PRECIOUS 2021-07-18 08:21:46 -07:00
Michael Davidsaver
e5aece682e ci: replace GHA deprecated ubuntu-16.04 with CentOS/Fedora builds
Maintain coverage of older GCC on Linux
2021-07-15 13:46:14 -07:00
Andrew Johnson
f801ca0501 Drop version number from README 2021-07-03 21:26:18 -05:00
Andrew Johnson
9363052956 Update submodules after release 2021-07-03 20:56:53 -05:00
Andrew Johnson
f5cb3cf8f6 Update version numbers after tagging 2021-07-03 20:56:32 -05:00
Andrew Johnson
5912445991 Set version numbers for release
Some checks failed
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-16 clang-9 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 beatnik (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 pc686 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 uC5282 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu (push) Has been cancelled
Base / Win2019 mingw (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Ub-16 gcc-4.8 (push) Has been cancelled
Base / Ub-16 gcc-4.9 (push) Has been cancelled
Base / Ub-20 gcc-8 (push) Has been cancelled
Base / Ub-20 gcc-9 (push) Has been cancelled
Base / Win2019 MSC-19, debug (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
2021-07-03 20:46:58 -05:00
Andrew Johnson
67bf1a72e7 Substitute version in @since UNRELEASED annotations 2021-07-03 20:14:04 -05:00
Andrew Johnson
ba3550c287 Update submodules for release 2021-07-02 16:28:22 -05:00
Andrew Johnson
c0cfeb249a Merge Dirk's vxWorks6.3-fix branch 2021-07-02 12:05:31 -05:00
Michael Davidsaver
710c50b5ed add initHookTest 2021-06-30 13:40:53 -07:00
Michael Davidsaver
8e7d3e9216 re-sync initHookName() with initHookState enum 2021-06-30 13:40:50 -07:00
Michael Davidsaver
e2d3b9a246 osiSockTest: ignore large messages on WIN32 2021-06-30 13:40:43 -07:00
Michael Davidsaver
5feb18b0b0 update PVD/PVA modules 2021-06-30 10:47:05 -07:00
Andrew Johnson
7ca25d3c88 Check module set EPICS_BASE in a RELEASE file 2021-06-29 21:59:57 -05:00
Andrew Johnson
dff72029f1 Fix typos in internal build variable names 2021-06-29 21:57:42 -05:00
Andrew Johnson
f2ac69604d Fix typos in Release Notes 2021-06-29 21:55:54 -05:00
Andrew Johnson
f92b4b456a Merge 3.15 branch changes into 7.0 2021-06-29 21:51:44 -05:00
Andrew Johnson
67fcd65656 Update versions after tagging 2021-06-27 12:20:41 -05:00
Andrew Johnson
3be67aca3c Releasing R3.15.9
Some checks failed
Base / Ub-20 gcc-8 (push) Has been cancelled
Base / Ub-16 gcc-4.9 (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-16 clang-9 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Ub-16 gcc-4.8 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
2021-06-27 12:18:45 -05:00
Andrew Johnson
ebf4a155d7 Added missing entries to Release Notes 2021-06-26 18:08:52 -05:00
Andrew Johnson
28531b0dbb Reworked the README.md file
Lots of updates; removed version number
2021-06-26 17:57:33 -05:00
Andrew Johnson
5c3ecf9054 Dump the Darwin README file, very dated 2021-06-26 17:55:11 -05:00
Andrew Johnson
c7e2acb1a6 Merge Freddie's fix_socket_include branch into 7.0 2021-06-25 10:10:00 -05:00
Andrew Johnson
51c1a33687 Merge changes from 3.15 into 7.0 2021-06-25 10:02:21 -05:00
Freddie Akeroyd
e8c5748f89 Use <osiSock.h> rather than <osdSock.h> 2021-06-25 11:37:07 +01:00
Freddie Akeroyd
4dad8ca503 Use <osiSock.h> rather than <osdSock.h>
Fix compile issue building PCAS module, which just includes
<caProto.h> resulting in LIBCOM_API being undefined
2021-06-25 11:27:20 +01:00
c36485ab2e fix missing declaration of 'close' function in vxWorks 6.3 and lower 2021-06-24 10:54:14 +02:00
Kathryn Baker
1cacd058cd Stdio doxygen annotations 2021-06-20 19:17:44 -05:00
Andrew Johnson
ce876d6f11 Adjust RTEMS-mvme2100 and -mvme2700 build config's
Untested.
These changes let them build, but `make -j` is still broken.
2021-06-20 13:13:31 -05:00
Andrew Johnson
cb5f68994f Squish various compiler warnings
* CPP's defined() is UB outside of a #if line
* Use (void)! cast to prevent recent GCCs & glibc from warning
  about ignoring the return status from chdir()
2021-06-20 12:47:38 -05:00
ac6eb5e212 Protect callbackRequest() from failed callbackInit()
Fixes lp: #1932120
2021-06-20 12:29:41 -05:00
b5265ed853 Fix vxWorks version of epicsAtomicCmpAndSwapIntT()
vxCas() returns TRUE or FALSE, not the original target value.

Fixes lp: #1932118
2021-06-20 12:22:15 -05:00
Andrew Johnson
983f77e119 Let build find convertRelease.pl before it's installed
There are several different cases that FIND_TOOL has to handle,
and all 3 file paths given are needed in different circumstances:

1. First build of Base after checkout/untar
2. During builds after the script has been installed
3. In a submodule during 'make distclean' or 'make cvsclean'

Fixes lp: #1932033
2021-06-17 13:34:00 -05:00
Michael Davidsaver
ca2ea14082 dbEvent: join worker 2021-06-16 08:15:18 -07:00
Michael Davidsaver
b35064d26c Revert "dbEvent simplify db_close_events() with join"
This reverts commit 37a76b433a.

# Conflicts:
#	modules/database/src/ioc/db/dbEvent.c
2021-06-16 08:15:18 -07:00
Michael Davidsaver
256babf961 quiet use "may be used uninitialized" warnings 2021-06-15 08:10:48 -07:00
Andrew Johnson
b471e8388f GHA: Don't worry if no artifacts to upload 2021-06-14 18:23:47 -05:00
Andrew Johnson
f825136f65 makeBaseApp.pl: Allow relative paths to $0 2021-06-14 18:22:23 -05:00
Andrew Johnson
3c329c1b48 Disable some RTEMS targets, tests on RTEMS-pc686-qemu 2021-06-10 10:15:08 -05:00
Andrew Johnson
6c7214ee06 Add tests for special link fields too 2021-06-09 18:09:18 -05:00
Andrew Johnson
b42a145824 Regression tests for RSET::special() return status
Adds tests to ensure that a record's special() routine can
return an error status that gets fed back to the client from
both before and after special() calls.

This was broken from 3.15 through 7.0.5 inclusive.
2021-06-09 18:09:18 -05:00
Evan Daykin
2f0a7c7342 Merge branch 'epics-base:7.0' into add-simm-to-ao-records 2021-06-09 10:19:01 -04:00
Andrew Johnson
c98e5085c3 Merge branch 'drop-obselete-archs' into 7.0 2021-06-05 02:17:08 -05:00
Andrew Johnson
5ccc11569b Oops, fix path 2021-06-05 02:16:43 -05:00
Andrew Johnson
dcee3b2c33 Document removals 2021-06-05 02:10:28 -05:00
Andrew Johnson
b5a3e4aea5 Drop RTEMS-gen68360, RTEMS-mcp750 and RTEMS-mvme167 2021-06-05 01:59:27 -05:00
Andrew Johnson
0f90793d17 Obsolete Extensions template files 2021-06-05 01:56:30 -05:00
Andrew Johnson
a17c30e51f Drop CPU-specific linux-[3456]86 cross-targets 2021-06-05 01:56:30 -05:00
Andrew Johnson
462916f9e4 Drop RTEMS-at91rm9200ek and RTEMS-psim targets 2021-06-05 01:56:14 -05:00
Andrew Johnson
6d96ea06d0 Remove linux-cris target files 2021-06-05 01:52:53 -05:00
Andrew Johnson
5e61f7e499 Remove aix-ppc files from extensions template 2021-06-05 01:52:53 -05:00
Andrew Johnson
ead24c4fd6 Drop macOS i386 ARCH_CLASS, add arm64 2021-06-05 01:52:53 -05:00
Andrew Johnson
f3da6e9464 Drop macOS PowerPC host-arch's 2021-06-05 01:52:52 -05:00
Andrew Johnson
8e468da4cc Rename RTEMS-kernel to RTEMS-score (OS_API) 2021-06-05 01:34:03 -05:00
Andrew Johnson
1b825da9ec Add missing dependency 2021-06-04 18:29:29 -05:00
Andrew Johnson
c6247329ab Fix warning when not using CLOEXEC 2021-06-04 18:29:01 -05:00
Andrew Johnson
c5c6facc3e Update Release Notes for RTEMS-5 port 2021-06-04 18:03:37 -05:00
Andrew Johnson
57fab5104f Fixed indentation in GHA config file 2021-06-04 16:36:23 -05:00
Andrew Johnson
c7eb41abbc Attempt to fix GHA config file 2021-06-04 16:31:54 -05:00
Andrew Johnson
ac0693f2f2 Merge 7.0 into rtems5 2021-06-04 16:11:10 -05:00
Andrew Johnson
e8512ceba0 Drop pragma message in rtems_init 2021-06-04 15:59:13 -05:00
Andrew Johnson
e4ce0ec255 Adjust Max FDs to match newlib 2021-06-04 15:58:29 -05:00
Andrew Johnson
e3e9d9bb37 Merge rtems5 branch into 7.0 2021-06-04 15:56:30 -05:00
Andrew Johnson
75caf83194 Fix old comments 2021-06-04 13:27:54 -05:00
Andrew Johnson
38c146d89d RTEMS-uC5282 BSP provides bspExtMemProbe() 2021-06-04 13:27:10 -05:00
Andrew Johnson
457febb3a6 Fix implicit declaration of memcpy() 2021-05-20 13:28:30 -05:00
b777233efb Support glob pattern for epicsEnvShow
Add epicsStrnGlobMatch with tests
2021-05-19 12:11:06 -07:00
Michael Davidsaver
08b741ed05 ca: fallback to repeater thread if unable to exec caRepeater
Silently fallback to in-process repeater thread on all targets.
Including on host targets when caRepeater executable is unavailable.
2021-05-19 11:07:53 -07:00
Michael Davidsaver
a9457fc02b osiSpawnDetachedProcess() prefix process name with '!' to silence warning 2021-05-19 10:55:38 -07:00
Michael Davidsaver
f8e720da28 posix: osiSpawnDetachedProcess() find out if exec() errors.
Presently, success just means fork()
2021-05-19 10:55:38 -07:00
555e671246 allow glob pattern in var command 2021-05-19 10:54:49 -07:00
Michael Davidsaver
5f1eb1dd9e Merge remote-tracking branch 'origin/3.15' into 7.0
* origin/3.15:
  ci: install versioned g++
  Fix issue with very large timeout passed to epicsEventWaitWithTimeout()
2021-05-19 09:46:16 -07:00
Michael Davidsaver
8adf03f74a update release notes 2021-05-19 09:44:38 -07:00
Ralph Lange
379a68b93c Fix simmTest failures on targets with imprecise timing 2021-05-19 09:03:27 -07:00
Michael Davidsaver
1b8a1ebd07 deprecate epicsThreadExitMain() 2021-05-19 09:02:55 -07:00
Michael Davidsaver
de3cdcef39 softIoc: spin to keep alive 2021-05-19 09:02:55 -07:00
Michael Davidsaver
315fb3df69 init scripts use FINAL_LOCATION 2021-05-19 09:02:21 -07:00
Michael Davidsaver
fa9fb0a3ca one FINAL_LOCATION 2021-05-19 09:02:21 -07:00
Michael Davidsaver
857527280b ci: install versioned g++ 2021-05-19 08:49:24 -07:00
Freddie Akeroyd
d1ddbad053 Fix issue with very large timeout passed to epicsEventWaitWithTimeout()
A very large timeout was getting converted to a 0 wait and causing
some unit tests to fail in strange and random ways. Not trapping
large timeouts was an oversight when converting to waitable timers
on WIN32
2021-05-19 08:46:11 -07:00
Andrew Johnson
2952d114f5 Merge Hugo's missing_epics_base branch into 7.0 2021-05-17 18:24:18 -05:00
Andrew Johnson
1db35d9edc Cosmetic changes to template configure/CONFIG files 2021-05-17 12:16:55 -05:00
Andrew Johnson
cc3e1039ce checkRelease(): expand EPICS_BASE checks 2021-05-17 12:13:53 -05:00
Andrew Johnson
e20502fb4c Remove EPICS_BASE check from releaseTops() 2021-05-17 12:12:19 -05:00
Andrew Johnson
9cca12936d Expand EPICS_BASE checks in templates 2021-05-17 12:11:00 -05:00
Michael Davidsaver
28f3239b32 set SONAME for cross builds 2021-05-12 19:30:43 -07:00
Andrew Johnson
6a9d92f8f4 Merge 3.15 branch into 7.0 2021-05-06 12:33:47 -05:00
Andrew Johnson
b55c019f10 Merged Freddie's waitable_timers branch into 3.15 2021-05-05 17:55:00 -05:00
Andrew Johnson
31584e52be Merged Ralph's win-Z7 branch into 3.15 2021-05-05 17:49:11 -05:00
Torsten Bögershausen
dc03d519fb Proper CRLF handling
Add proper CLRF-LF rules to .gitattributes.
Renormalize the bat files to LF in the repo and CRLF on disk.

Remove executable bit of files which shouldn't have it set
2021-05-05 08:34:05 -07:00
Andrew Johnson
2eb5af3167 Return dbPutSpecial(paddr, 1) status from dbPut()
The status from RSET::special(paddr, 1) has not been returned
to the put caller since 3.14, due to a bad up-merge.
2021-05-04 11:18:54 -05:00
Hugo Slepicka
f02884d996 Add error message for when EPICS_BASE is not set on templates.
Add error message and validation at convertRelease.pl for empty RELEASE files.
2021-04-29 17:11:36 -07:00
Andrew Johnson
71a1ff1292 Merge branch 'timeout-tests' into 7.0 2021-04-26 18:16:08 -05:00
Andrew Johnson
c07ebcee5c Added "Win2019 MSC-19, debug" build to GHA
... as suggested by Freddie.
2021-04-23 18:26:19 -05:00
Michael Davidsaver
b00130493f update .ci 2021-04-21 16:03:36 -07:00
Andrew Johnson
4c63cb79dd Disable netget test on CI systems 2021-04-21 13:13:56 -05:00
Andrew Johnson
67bbc0fa21 Increase default timeout, improve notes 2021-04-20 20:21:05 -05:00
Andrew Johnson
58a9767aa4 Release notes describing test timeouts 2021-04-20 20:21:05 -05:00
Andrew Johnson
54d40a398a Correct comments in makeTestfile, add "export" 2021-04-20 20:21:05 -05:00
Andrew Johnson
cbab8daae0 Turn off debug in netget.plt 2021-04-20 20:21:05 -05:00
Andrew Johnson
e3d04e9cd8 Make BAIL_OUT display what was thrown 2021-04-20 20:21:05 -05:00
Andrew Johnson
cde7d3d254 Kill CA & PVA clients properly if they time out
Uses Win32::Process or fork() to run caget/pvget.

The system_timeout() and qx_timeout() utilities added here
should be extracted into a separate EPICS::Timeouts module.
2021-04-20 20:21:05 -05:00
Andrew Johnson
e2a9678b15 netget: watchdog() now returns a result
Currently this can only be a scaler value.
On timeout, calls the fail function and returns its result instead.
2021-04-20 20:21:05 -05:00
Andrew Johnson
e2313d0c58 Generate comments on how to adjust the timeout 2021-04-20 20:21:05 -05:00
Andrew Johnson
e812323792 Replace Win32::Job with Win32::Process
GitHub Actions builders won't let us use Win32::Job
2021-04-20 20:21:05 -05:00
Andrew Johnson
396624fefc Timeouts for running unit test programs
The generated .t file now kills the test program if it hasn't
completed within a defined interval, 5 minutes by default.
Separate implementations for Windows and Unix hosts.
2021-04-20 20:21:05 -05:00
Andrew Johnson
f727d16b0d CI: Allow up to 5 minutes for make test-results 2021-04-20 17:39:25 -05:00
Andrew Johnson
348d1bba17 Update CI test configurations
- Limit test-results step to 1 min in case a test hangs without
  generating a tapfile, as `make test-results` may re-run it.
- Limit Appveyor tests to 20 mins.
- Always run `make test-results` on GHA.
2021-04-06 18:05:46 -05:00
Michael Davidsaver
0edf986c31 minor and doc 2021-04-05 10:35:30 -07:00
Michael Davidsaver
3f4432b7bd review cleanup 2021-04-05 10:31:25 -07:00
Michael Davidsaver
f69b938401 dbfl_type_rec goes away 2021-04-05 10:31:25 -07:00
Michael Davidsaver
bd3ecf1cbc Split out amsg/utag options through dbGet() 2021-04-05 10:31:25 -07:00
Michael Davidsaver
b94afaa045 UTAG uint64 2021-04-05 10:31:25 -07:00
Michael Davidsaver
1ceb26eeb8 add utag filter 2021-04-05 10:31:25 -07:00
Michael Davidsaver
633859d7ab pass amsg/utag through dbGet() options 2021-04-05 10:31:25 -07:00
Michael Davidsaver
aad3476c04 add dbDbLinkTest 2021-04-05 10:31:25 -07:00
Michael Davidsaver
12f1818b39 propagate utag w/ links (including TSEL)
add lset::getTimestampTag()
2021-04-05 10:31:25 -07:00
Michael Davidsaver
4ca765d813 dbCommon add UTAG 2021-04-05 10:31:25 -07:00
Michael Davidsaver
5143c71a43 add lset::getAlarmMsg() 2021-04-05 10:31:25 -07:00
Michael Davidsaver
a12684e7ad AMSG feature test 2021-04-05 10:31:25 -07:00
Michael Davidsaver
d19586fdfd use recGblSetSevrMsg() 2021-04-05 10:31:25 -07:00
Michael Davidsaver
892a361de7 add alarm message field 2021-04-05 10:31:25 -07:00
Michael Davidsaver
235f8ed2fb add db_field_log::mask
Allow filters to distingush DBE_PROPERTY
2021-04-05 10:31:25 -07:00
Michael Davidsaver
91b2b65c68 doc 2021-04-04 22:51:46 -07:00
Marcio Paduan Donadio
614961da17 iocsh: set PWD
Set the env variable PWD during libCom IOC shell function registration.
Change environment variable PWD when a user calls cd from the IOC shell
2021-04-04 12:26:07 -07:00
Kathryn Baker
dd09afc4e8 Addying Doxugen annotations for cvtFast.h and freeList.h 2021-04-04 11:21:44 -07:00
Michael Davidsaver
417821ddc0 fixups for DBCORE_API 2021-04-01 11:09:53 -07:00
Michael Davidsaver
0f428ea334 use DBCORE_API
git ls-files modules/database/src/ioc|egrep '\.[hc]p*$' | xargs sed -i \
 -e 's|epicsShareFunc|DBCORE_API|g' \
 -e 's|epicsShareClass|DBCORE_API|g' \
 -e 's|epicsShareExtern|DBCORE_API extern|g' \
 -e 's|epicsShareDef\s*||g' \
 -e 's|shareLib\.h|dbCoreAPI.h|g' \
 -e 's|epicsShareAPI|epicsStdCall|g' \
 -e '/#define\s*epicsExportSharedSymbols/d'
2021-04-01 10:57:19 -07:00
Michael Davidsaver
c829ca39d8 ci: enable overall test timeout 2021-04-01 10:20:47 -07:00
Michael Davidsaver
51cdfe9e8e ci: appveyor more recent mingw 2021-04-01 10:19:28 -07:00
Michael Davidsaver
6ed6dc11bb doc dbUnitTest.h 2021-04-01 10:19:14 -07:00
Andrew Johnson
0d2228b536 Recognize linux-ppc64 in EpicsHostArch.pl 2021-04-01 10:26:17 -05:00
Michael Davidsaver
3eeebb74cd Com: avoid intentional memory leak in epicsEnvSet
Switch default impl. to setenv/unsetenv
Switch WIN32 to use _putenv_s
On vxWorks putenv() is documented to make a copy.

log error, but never halt, if env (un)set not possible.

RTEMS <4.10 compat where unsetenv() returns void.
2021-03-29 10:55:30 -07:00
Michael Davidsaver
1bd041745b epicsEnvTest: ensure epicsEnvSet copies argument 2021-03-29 10:55:30 -07:00
Ralph Lange
fa069b0845 Revert config fixes for parallel builds with MSVC
This reverts commit 1454f42a27.
This reverts commit 4aee25e8e2.
2021-03-29 17:49:02 +02:00
Michael Davidsaver
e5aab6561c ci: remove travis debris 2021-03-26 11:48:57 -07:00
Ralph Lange
c78db512f2 Windows: use -Z7 instead of -Zi to generate debug symbols
"C7 compatible" or "old-style" debug information is kept local
in the translation unit (.obj file) and does not create issues
with parallel builds
2021-03-26 17:30:36 +01:00
Brendan Chandler
1c6b02b9be Merge remote-tracking branch 'origin/7.0' into rtems5 2021-03-25 18:41:15 -05:00
Andrew Johnson
f9ea6a5bff CI config and git export tweaks
Add paths-ignore filters for GHA PRs
Stop .tools/ and .gitattributes commits from triggering CI
Exclude CI files from git exports
2021-03-25 14:46:28 -05:00
Brendan Chandler
fc4379595e Update release note about RTEMS 5 support 2021-03-24 13:06:18 -05:00
Brendan Chandler
af2d4de942 Update release notes and documentation for RTEMS5 2021-03-19 13:17:07 -05:00
Michael Davidsaver
54e9d3f5d1 ci: github actions add mingw 2021-03-18 14:06:45 -07:00
Michael Davidsaver
7e01cdacac ci: GHA always upload tapfiles 2021-03-18 14:06:45 -07:00
Ziga Oven
746d21c71d Add usage messages 2021-03-18 14:06:45 -07:00
Brendan Chandler
3874c1bcfc Disable building mvme2100, mvme167, uC8252 for RTEMS5
Someone needs to take a look at these targets and get them to work
with RTEMS5, but for now, disable building them in the CI scripts.
2021-03-15 14:28:04 -05:00
Oksana Ivashkevych
7eb7988e55 Add usage to miscIocRegister.c and dbStaticIocRegister.c 2021-03-14 16:30:28 -07:00
Matthew Pearson
5daf4fc932 epicsStdlib.h: add doxygen comments. 2021-03-14 16:30:28 -07:00
Matthew Pearson
ef878808ce errlog.h: added doxygen comments. 2021-03-14 16:30:28 -07:00
Dominic Oram
1fcbdad5e9 Adds doxygen annotations to epicsType.h 2021-03-14 16:30:28 -07:00
Evan Daykin
edb9208b01 correct number of simm tests 2021-03-12 17:06:35 -05:00
Evan Daykin
4f0cc20e2b Feature: add SIMM=RAW to ao records 2021-03-12 16:31:10 -05:00
Freddie Akeroyd
29e9843056 Add release notes entry for waitable timers 2021-03-12 19:24:09 +00:00
Michael Davidsaver
ca3ef9c61e dbUnitTest use dbChannel
Allows testing of server side filters
2021-03-12 09:16:31 -08:00
Andrew Johnson
e10b1d7660 Merge 3.15 branch into 7.0
Includes support for 'make inc'
2021-03-12 00:04:32 -06:00
Andrew Johnson
0c4ab7b24a Merge my 'make-inc-fix' branch into 3.15 2021-03-11 20:45:37 -06:00
Andrew Johnson
d831c2b384 Merge 'FreddieAkeroyd-use_epicsStrtod' into 3.15 2021-03-11 20:18:57 -06:00
Andrew Johnson
34d06b6e36 Merge branch 'gabrielfedel-fix_msi' into 3.15 2021-03-11 20:12:07 -06:00
Andrew Johnson
b2f7f4e173 Minor fixes in configure/RULES files 2021-03-11 18:13:44 -06:00
Michael Davidsaver
f30e9533c4 epicsLoadTest use INSTALL_LOCATION 2021-03-11 09:30:28 -08:00
Freddie Akeroyd
3c7fb7990f Use <epicsStdlib.h> 2021-03-11 15:08:00 +00:00
Andrew Johnson
c359b49aed Fix the 3.15 'make inc' build target
Now generates and installs dbd, header and html files.
No compilation involved/required.
2021-03-10 22:05:39 -06:00
Freddie Akeroyd
c140a0a804 Add additional cleanup and error handling 2021-03-10 21:58:35 +00:00
Joao Paulo Martins
6c573b496a longout rec: fix behaviour when record is processed for the first time and OOPT is On Change 2021-03-10 18:50:42 +01:00
Gabriel Fedel
0bc2a3e999 Fix variable type and cast on msi.cpp
This way the attribution of i to cmdind is a valid value.
2021-03-10 14:37:14 +01:00
Freddie Akeroyd
8e7702c8a5 Use epicsStrtod, remove some warnings 2021-03-10 11:29:45 +00:00
Freddie Akeroyd
5f94ab6d9f Tidy up 2021-03-10 10:47:24 +00:00
Joao Paulo Martins
1d85bc7424 longout record: detect OUT link change using special function AFTER put, better documentation 2021-03-10 11:07:30 +01:00
Gabriel Fedel
6ac10d43b1 Fix type comparision on msi.cpp
This change fix the comparision of different signedess (int and long
unsigned int).
2021-03-10 09:45:01 +01:00
Andrew Johnson
436a5e7fa2 Fix markdown link in Release Notes
Found by Kathryn Baker
2021-03-10 01:14:56 -06:00
Andrew Johnson
09820d799e Fix POD-generated HTML anchor IDs 2021-03-10 01:14:56 -06:00
Freddie Akeroyd
c6af4a245d Use waitable timers 2021-03-10 01:17:47 +00:00
Andrew Johnson
9184983cf0 Merge branch Ticket80_use_os_strtod_if_above_vs_2015 2021-03-09 18:27:18 -06:00
Michael Davidsaver
979445c8fe ci: add gcc-9 build 2021-03-09 09:26:44 -08:00
Joao Paulo Martins
f4d94b9725 Longout OOPT field refactoring and updated documentation; Release notes additions 2021-03-09 16:31:54 +01:00
Joao Paulo Martins
4e7a18bfb4 Adding test routines for longout record with OOPT field 2021-03-09 16:31:54 +01:00
Joao Paulo Martins
c1ae5064b8 Added OOPT to longout record 2021-03-09 16:31:54 +01:00
Jack Harper
30172226f9 whoops, MSVC 1900 not 1800 2021-03-09 13:13:16 +00:00
Jack Harper
2ea0994507 tests passing 2021-03-09 13:04:57 +00:00
Andrew Johnson
f571c5950b Modify DBD processing scripts to output Doxygen comments 2021-03-08 21:39:39 -06:00
Andrew Johnson
6786b2e7c2 Modify the Doxyfile to match earlier settings 2021-03-08 21:25:24 -06:00
Michael Davidsaver
504191441d Merge remote-tracking branch 'github/pr/99' into 7.0
* github/pr/99:
  fix an out-dated comment in the array filter code
  add macro dbfl_pfield to db_field_log.h and use it in dbGet
  fix in dbGet: decide use of db_field_log based on whether it has copy or not
  add macro dbfl_has_copy to db_field_log.h and use it in dbAccess.c
  refactor db_field_log and filters to get rid of dbfl_type_rec
  make it clearer what the result of wrapArrayIndices will be
2021-03-07 21:17:21 -08:00
Andrew Johnson
3ba778c08b documentation/Makefile tweaks 2021-03-07 21:35:07 -06:00
Andrew Johnson
1fbbae73de Modify documentation/Doxyfile to parse include directory
Excludes the include/pv and include/pva directories,
which are processed separately in their own modules.
2021-03-07 20:27:45 -06:00
Andrew Johnson
4baf7912e1 Tidying up in documentation directory 2021-03-07 20:23:19 -06:00
Michael Davidsaver
01cc99ac87 ci: update toolchain and test more targets 2021-03-07 10:57:34 -08:00
Michael Davidsaver
c0886b3037 RTEMS: Drop dependency on bspExt
integrate the polling implementation of bspExt.
2021-03-07 09:42:42 -08:00
Andrew Johnson
31ade32004 Fixes for RTEMS-uC5282 with legacy stack 2021-03-04 23:15:31 -06:00
Brendan Chandler
c606048e57 rtems_config: Change config options based on BSP name
This replaces an implementation that used a header guard being defined
to indicate BSP specific options.  Hopefully this method is more
explicit when config options should be set for specific BSPs.
2021-03-04 14:11:42 -06:00
Brendan Chandler
f69ff5afde rtems_config: Fix typo in #if statement 2021-03-04 14:11:32 -06:00
Andrew Johnson
bbb4d86f78 Enable RTEMS testing in modules/database/test/std/link 2021-03-03 18:17:31 -06:00
Brendan Chandler
102e30eaa9 rtems_config: Guard using __RTEMS_MAJOR__ rather than net stack 2021-03-03 17:02:03 -06:00
Brendan Chandler
75063a69ec RTEMS ne2kpci: clean up when its included
This looks like a merge issue, where we included ne2kpci possibly
twice, based on CPU being i386 and BSP being pc686.  Just
checking CPU as i386 should be sufficient for all cases.
2021-03-03 15:58:37 -06:00
Brendan Chandler
f41276bef8 epicPosicMutexInit: avoid calling with 0 which is platform dependent
Different platforms (RTEMS5) can define different values for
PTHREAD_MUTEX_DEFAULT, so we shouldn't pass 0 assuming its
PTHREAD_MUTEX_DEFAULT.
2021-03-02 22:44:56 -08:00
Brendan Chandler
f34d744f5f Remove unused DHAVE_SOCKADDR_SA_LEN 2021-03-02 15:03:56 -06:00
Andrew Johnson
f9e3e86401 Support VxWorks 6.9.x before taskWait() was added
We don't know exactly which version this was added in,
but it is present in 6.9.4.1 so use that.

Fixes lp: #1913699
2021-03-02 11:54:17 -06:00
Brendan Chandler
8e50b3109a Allow RTEMS to use normal dlopen() symbols
RTEMS supports POSIX dlopen related symbols, so we should allow using them.
2021-03-02 09:23:27 -06:00
Michael Davidsaver
3c46542630 posix: epicsMutexOsdShowAll check for PI support 2021-03-02 06:47:43 -08:00
Andrew Johnson
f8eb0be7a4 Update submodules after release 2021-02-28 21:39:28 -06:00
Andrew Johnson
ff5df5fbf3 Update version numbers after tagging 2021-02-28 20:21:41 -06:00
Brendan Chandler
79242da515 epicPosicMutexInit: avoid calling with 0 which is platform dependent
Different platforms (RTEMS5) can define different values for
PTHREAD_MUTEX_DEFAULT, so we shouldn't pass 0 assuming its
PTHREAD_MUTEX_DEFAULT.
2021-02-28 20:07:33 -06:00
Andrew Johnson
7f142e03f5 Version number updates for 7.0.5 release
Some checks failed
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (push) Has been cancelled
Base / Ub-16 clang-9 (push) Has been cancelled
Base / Ub-20 clang-10 (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.10 (push) Has been cancelled
Base / Ub-20 gcc-9 + RT-4.9 (push) Has been cancelled
Base / Ub-20 gcc-9 C++11, static (push) Has been cancelled
Base / Ub-20 gcc-9 + MinGW, static (push) Has been cancelled
Base / Ub-16 gcc-4.8 (push) Has been cancelled
Base / Ub-16 gcc-4.9 (push) Has been cancelled
Base / Ub-20 gcc-8 (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
2021-02-28 20:06:40 -06:00
Andrew Johnson
bb7b754730 Documentation updates for release
Mostly version numbers, a few text and formatting changes.
2021-02-28 20:04:16 -06:00
Andrew Johnson
a9ff175cf0 Replace "UNRELEASED" in epicsString.h 2021-02-28 17:37:40 -06:00
Andrew Johnson
458c0af4e9 Checkout submodules at tagged versions for 7.0.5 2021-02-28 17:36:25 -06:00
Andrew Johnson
eacee1b548 Merge Krisztian Loki's issue_97 branch into 7.0 2021-02-28 15:40:11 -06:00
Andrew Johnson
6754404d0f Replace magic "2" with macro AAI_DEVINIT_PASS1 2021-02-28 15:02:27 -06:00
Andrew Johnson
6734918e6e Release notes and aai documentation updates 2021-02-27 22:19:48 -06:00
Andrew Johnson
1c566e2110 Modify aai to support pass-1 device initialization
The Soft Channel device support requests pass-1 initialization.
It no longer needs to initialize the INP link or allocate the
array buffer itself, these are taken care of elsewhere.

The record code uses PACT to remember that the device must be
initialized again in pass 1.
2021-02-27 22:08:50 -06:00
Andrew Johnson
7f878d3074 Merge fix-1908305 branch into 7.0 2021-02-27 17:20:30 -06:00
Andrew Johnson
12ab69402a Improve the message from a DBD field-count mismatch 2021-02-27 17:15:47 -06:00
Andrew Johnson
0926f7db0f Release Notes updates
Added notes for the Windows Monotonic fix, and Apple arm64 support.
Expanded and edited some other notes.
2021-02-27 17:15:35 -06:00
Andrew Johnson
08eaea64d2 Fix up comments & messages, add Release Notes 2021-02-27 16:48:55 -06:00
Andrew Johnson
bee00658ae Limit auto-declaration of record types to regRecDevDrv only
Allowing this while expanding DBD files for IOCs can insert other
device supports before of the Base "Soft Channel" ones, making the
other type the default. Adds a note that DBD file order matters.

Fixes lp: #1908305
2021-02-27 16:48:55 -06:00
Michael Davidsaver
e881cb15c4 registerAllRecordDeviceDrivers() handle function 2021-02-26 07:42:17 -08:00
Brendan Chandler
11fedecefc Only write out dhcpcd.conf if it doesn't exist.
rtems_init.c will write out a dhcpcd.conf if one doesn't already
exist, but if there's a filesystem including this file, don't write
over it, use whatever's there instead.
2021-02-25 15:50:58 -06:00
Brendan Chandler
17b0c69dd6 Merge branch 'rtems5-dev' into rtems5 2021-02-25 14:06:59 -06:00
Brendan Chandler
e2d37bc70d Merge branch '7.0' of https://github.com/epics-base/epics-base into rtems5 2021-02-25 14:06:41 -06:00
Brendan Chandler
45907d6553 RTEMS e500: use mkimage from RTEMS rathr than system one 2021-02-25 14:03:36 -06:00
Brendan Chandler
317828fd74 Merge remote-tracking branch 'origin/7.0' into rtems5-dev 2021-02-25 13:52:46 -06:00
Brendan Chandler
35ec367eac Remove unused variable 2021-02-25 11:24:02 -06:00
Brendan Chandler
c4944b5357 Enable initializing the filesystem in RTEMS5 2021-02-25 11:23:26 -06:00
Krisztián Löki
4a0f488657 Fixed db_post_events to not use bptr 2021-02-25 16:13:48 +01:00
Krisztián Löki
2340c6e6c1 Allow changing the BPTR field
This fixes github issue #97:
Reading into an aai record from a compress or histogram or subArray record
could cause a segfault if the aai record was initialized before the
linked one.
2021-02-25 14:54:07 +01:00
Brendan Chandler
2c29dd0c7e Fix merge error in osiSockTest.c 2021-02-22 17:32:57 -06:00
Brendan Chandler
9a8e56d83e Merge branch 'rtems5-dev' of github.com:brendanchandler/epics-base into rtems5-dev 2021-02-22 17:23:36 -06:00
Brendan Chandler
cd6e642eee makeTestfile: revert to e1000
rt18139 was not working with DHCP when running osiSockTest.

e1000 exhibits the annoying ~60s delay when rtems initializes, but at least
the tests get a network connection for now.
2021-02-22 17:21:29 -06:00
Brendan Chandler
25b9655f60 RTEMS DHCP: Use safer versions of string functions
Use strtok_r rather than strtok

Use strlen() rather than harcoded string size.  GCC should optimize
this to the hardcoded string size, so the result should be the same
but maybe prevents future mistakes.

replace strncpy() with snprintf() to avoid issues with NULL terminated
strings.
2021-02-22 17:19:28 -06:00
Brendan Chandler
f5eb5033f2 osiSockTest: use strerror rather than strerror_r
Windows vsc19 and mingw on ubuntu were failing with this symbol.
2021-02-22 17:03:25 -06:00
Brendan Chandler
633055aa56 Merge branch 'rtems5' into rtems5-dev 2021-02-22 16:27:56 -06:00
Brendan Chandler
a1d073955f makeTestfile: revert to e1000
rt18139 was not working with DHCP when running osiSockTest.

e1000 exhibits the annoying ~60s delay when rtems initializes, but at least
the tests get a network connection for now.
2021-02-22 16:21:07 -06:00
Brendan Chandler
dc1bf9106e osiSockTest: Give a clearer error message if sendto() fails 2021-02-22 16:20:01 -06:00
Brendan Chandler
74fa27d316 Add commented code that starts an RTEMS shell, useful for debugging
In the future, it would be nice to add an ioc shell command to launch
into an RTEMS shell, but for now, it can be helpful when debugging to
enable this section for poking around in an RTEMS shell check network
configuration and stuff like that.
2021-02-22 16:18:00 -06:00
Brendan Chandler
3bdfb9ec45 Increase DHCP timeouts
RTEMS dhcp will wait indefinitely for a response.

rtems_init.c will wait on DHCP for 10 minutes, before timing out and
starting main().  Note that rtems should still be waiting in the
background and a dhcp connection could still come up after this timeout.
2021-02-22 16:11:50 -06:00
Brendan Chandler
a934570cce rtems dhcp: remove strncmp on environment vars in favor of strcmp 2021-02-22 16:08:18 -06:00
Michael Davidsaver
5593103c11 posix: epicsMutexShowAll() print if PI mutex are used
Confirms that pthread_mutex_t are actually being created
with PTHREAD_PRIO_INHERIT, ie. if both libc and kernel
support is present.
2021-02-21 20:01:45 -08:00
5a8b6e4111 posix: PI for epicsMutex, epicsEvent etc.
Enable priority-inheritance for primitives based on pthread_mutex_t.

Based on work by Till Straumann <till.straumann@psi.ch>
2021-02-21 20:01:45 -08:00
Michael Davidsaver
c4348dc6e0 ci: fix gcc 4.8 builds 2021-02-21 11:16:20 -08:00
Andrew Johnson
9d0597fc15 Fix MS compiler issue that I introduced into Freddie's code
Plus a little more code simplification.
2021-02-21 12:04:07 -06:00
Andrew Johnson
93208af61c Merged Freddie Akeroyd's fix_win32_monotonic_time branch 2021-02-20 17:36:21 -06:00
Andrew Johnson
9c23247c04 Windows: Move cxx warning flag to the right CONFIG file 2021-02-20 17:02:09 -06:00
Michael Davidsaver
552b2d1766 dbConstAddLink bounds check dbrType
cf. 6c914d19c3
2021-02-19 15:53:32 -08:00
Andrew Johnson
1755a46bfe Merge Han's darwin-aarch64 branch into 7.0 2021-02-19 17:36:45 -06:00
Brendan Chandler
6965f86298 Change telnetd configuration to use defaults
Currently, this configuration doesn't seem to be used yet, but
regardless we'll update the settings to use RTEMS defaults.
2021-02-16 15:51:25 -06:00
Brendan Chandler
af88e9f6c6 Clean up a couple warnings in RTEMS code 2021-02-16 15:51:25 -06:00
Brendan Chandler
a309912c8b RTEMS DHCP: Use safer versions of string functions
Use strtok_r rather than strtok

Use strlen() rather than harcoded string size.  GCC should optimize
this to the hardcoded string size, so the result should be the same
but maybe prevents future mistakes.

replace strncpy() with snprintf() to avoid issues with NULL terminated
strings.
2021-02-16 15:51:06 -06:00
Brendan Chandler
b0dfb76871 Change telnetd configuration to use defaults
Currently, this configuration doesn't seem to be used yet, but
regardless we'll update the settings to use RTEMS defaults.
2021-02-16 15:12:28 -06:00
Brendan Chandler
125fc08993 Clean up a couple warnings in RTEMS code 2021-02-16 15:12:06 -06:00
Brendan Chandler
e38a8b15d4 squash me 2021-02-16 15:11:40 -06:00
Brendan Chandler
c628db82ac RTEMS DHCP: Use safer versions of string functions
Use strtok_r rather than strtok

Use strlen() rather than harcoded string size.  GCC should optimize
this to the hardcoded string size, so the result should be the same
but maybe prevents future mistakes.

replace strncpy() with snprintf() to avoid issues with NULL terminated
strings.
2021-02-16 12:51:11 -06:00
Brendan Chandler
4755d6c7f0 Enable tests for RTEMS5 2021-02-12 09:11:42 -06:00
Brendan Chandler
3fd9ffc995 Include osdTime using compiler include path
Previously it was using a relative directory name, #included in the .c file.
2021-02-09 15:05:31 -06:00
Brendan Chandler
a8262573f5 Don't use or include mlock() on RTEMS 2021-02-09 14:28:11 -06:00
Brendan Chandler
e4b17bdab5 Remove local def of VERSION_INIT in favor of one from epicsVersion.h 2021-02-09 14:27:24 -06:00
Brendan Chandler
ea40041b45 Remove FHI specific information from NTP and bootp variable init 2021-02-09 14:26:26 -06:00
Brendan Chandler
6bf26782a0 Fix license comment in epicsNtp.c and .h 2021-02-09 14:25:55 -06:00
Andrew Johnson
36d0fbd7be Another c89 compat fix 2021-02-08 13:34:01 -06:00
Michael Davidsaver
30e1431fb4 c89 compat 2021-02-08 09:43:51 -08:00
Michael Davidsaver
3f209efa3c release notes 2021-02-08 09:23:27 -08:00
Michael Davidsaver
2c1c35268e db: Suggest DBF_MENU values on parser error 2021-02-08 09:22:27 -08:00
Michael Davidsaver
745c3f552e Com: add epicsStrSimilarity() 2021-02-08 09:22:27 -08:00
Michael Davidsaver
27918cb7a1 improve error message from dbPutString() for DBF_MENU/DEVICE 2021-02-08 09:22:27 -08:00
Michael Davidsaver
8723d4d9cb include database S_* in error string table 2021-02-08 09:22:27 -08:00
Michael Ritzert
410921b5ef Use getifaddrs instead of SIOCGIFCONF.
The old code is preserved in osdNetIfConf.c, which is used by the default
platform directory.

Platforms that support getifaddrs use the new code from osdNetIfAddrs.c.
2021-02-06 08:27:21 -08:00
Jeong Han Lee
d3e96c4c2b fixed a typo in CONFIG.Common.darwin-aarch64 2021-02-05 17:02:54 -08:00
Brendan Chandler
c523fe7a3e Restore CROSS_COMPILER_TARGET_ARCHS initialization in CONFIG_SITE 2021-02-05 15:25:56 -06:00
Brendan Chandler
ce264306b8 Fix merge issues with src/tools/makeTestfile.pl
When I switched from merge to rebase of RTEMS5 changes, I think this
file didn't get merge correctly.  These changes bring the file back to
match what was originally merged, and I believe correct.
2021-02-05 15:10:22 -06:00
Brendan Chandler
188f46f74b Remove prototype definition of select() from osdSock.h 2021-02-05 14:26:02 -06:00
Brendan Chandler
518ac1d7c1 Remove define of bzero to use memset
As far as I can tell, we don't use bzero().
2021-02-05 14:01:12 -06:00
Brendan Chandler
0adaa7fcf1 re-remove osdMessageQueue.c from RTEMS-kernel 2021-02-05 13:40:42 -06:00
Brendan Chandler
d21c6d5545 Merge branch '7.0' into rtems5 2021-02-05 12:39:22 -06:00
Michael Davidsaver
43bd5ee1c2 Com: always skip SOCK_CLOEXEC for RTEMS and vxWorks 2021-02-05 10:32:47 -08:00
Brendan Chandler
5c792687a6 Merge branch '7.0' into rtems5 2021-02-05 12:21:20 -06:00
Brendan Chandler
347d24a2a8 Switch to rtl8139 network interface for RTEMS tests 2021-02-05 11:42:42 -06:00
Brendan Chandler
cd0e6a4f9a Make sure the definition of IPPORT_USERRESERVED is defined
caProto.h was using IPPORT_USERRESERVED but not including itself,
meaning there was an order dependency of header inclusion when using
this header.  Now there shouldn't be.

Also, RTEMS wasn't defining IPPORT_USERRESERVED, so that definition
has been added.
2021-02-05 10:42:02 -06:00
Brendan Chandler
8d7c98aac4 Make RTEMS-pc386-qemu use RTEMS-pc386 rather than pc686 2021-02-04 12:21:41 -06:00
Jeong Han Lee
34a0b387b0 add dawrin-aarch64 (arm64) Host Arch 2021-02-02 17:26:12 -08:00
Brendan Chandler
54c91f1458 Fix compile errors after rebasing changes for RTEMS5 2021-02-02 16:44:01 -06:00
Andrew Johnson
78d685688c Add VALID_BUILDS support for "Command" 2021-02-02 16:06:42 -06:00
Brendan Chandler
9cac0b6410 Make pvData and pvAccess submodules use epics-base
Previously they used mdavidsaver's branch in order to pick up some
commits that hadn't made it into mainline yet.
2021-01-29 12:36:33 -06:00
Brendan Chandler
a5604ccbf0 Reintroduce API_CPPFLAGS argument to fix Windows builds 2021-01-29 12:36:32 -06:00
Brendan Chandler
e2927417c3 Remove tab from ci-scripts-build.yml 2021-01-29 12:36:32 -06:00
Brendan Chandler
277e9050a8 Fixes for CI mechanics
- Removed .travis.yml since we're no longer using travis.
- Named the rtems pc686 target in github actions
- Cleaned up CONFIG_SITE.Common.RTEMS
2021-01-29 12:36:32 -06:00
Brendan Chandler
fe3e2c60a5 remove missing rtems_bsd_set_vprintf_handler 2021-01-29 12:36:32 -06:00
Brendan Chandler
e4885d2446 Remove redundant CPU_FLAGS use.
This variable is included in the generic OP_SYS_LDFLAGS and doesn't
need to also be set in OP_SYS_LDFLAGS_kernel.
2021-01-29 12:36:32 -06:00
Heinz Junkes
08b7dd1208 Add dhcp option cmdline (129) 2021-01-29 12:36:32 -06:00
Heinz Junkes
25a072540f Cosmetics and some typos 2021-01-29 12:36:32 -06:00
Heinz Junkes
399c63ec5c Add posix cpp flags to RTEMS config 2021-01-29 12:36:32 -06:00
Heinz Junkes
341ca91229 Add LEGACY_STACK_SUPPORT and telnet client 2021-01-29 12:36:32 -06:00
Heinz Junkes
97e6f0a53d Link pvData module to mdavidsaver 2021-01-29 12:36:32 -06:00
Heinz Junkes
54f2d8887f changed pvAccess url, save adaption to old network stack 2021-01-29 12:36:31 -06:00
Heinz Junkes
4127f6efec MQ name creation changed 2021-01-29 12:36:31 -06:00
Heinz Junkes
97ce6aecc7 cleanup netconfig 2021-01-29 12:36:31 -06:00
Heinz Junkes
a718357211 Fixed stupid typo in CONFIG.Common.RTEMS 2021-01-29 12:36:31 -06:00
Heinz Junkes
9f387b9675 Prepared RTEMS 4.10 posix with network 2021-01-29 12:36:31 -06:00
Heinz Junkes
8ef4d29c48 Enable Epics for RTEMS5 (posix) 2021-01-29 12:36:31 -06:00
Michael Davidsaver
1b6b32e9ca restore $(API_CPPFLAGS) 2021-01-29 12:36:31 -06:00
Andrew Johnson
761ebff6d7 Simplify RTEMS OP_SYS_CFLAGS settings 2021-01-29 12:36:31 -06:00
Andrew Johnson
f685b0edb4 Set RTEMS_TARGET for Travis builds 2021-01-29 12:36:31 -06:00
Andrew Johnson
14140acd78 Enable RTEMS testing in modules/database/test/std/link 2021-01-29 12:36:31 -06:00
Andrew Johnson
9c01c55f08 Clean up CONFIG.Common.RTEMS 2021-01-29 12:36:30 -06:00
Andrew Johnson
ec94351a5e Add RTEMS-pc686-qemu for use on RTEMS 5.x
RTEMS 5.x moved the PC BSP to 686. This commit makes the EPICS
target match; RTEMS-pc386 and the -qemu variant can only be built
when RTEMS_VERSION != 5, whereas RTEMS-pc686 and its -qemu version
will only build when RTEMS_VERSION == 5 (there are checks with
descriptive errors included).

makeTestFile.pl was also reformatted and modified to use exec to
run tests on non-Windows hosts as required by the Perl test harness.
2021-01-29 12:36:26 -06:00
Michael Davidsaver
cf3173b6f4 posix: use SOCK_CLOEXEC and accept4()
If available, ensure O_CLOEXEC is set atomically.
Continue to F_SETFD as well (paranoia).

Available at least on Linux, freebsd, and RTEMS 5 w/ libbsd
2021-01-29 08:45:44 -08:00
Andrew Johnson
708cecfadc Move HAVE_SOCKADDR_SA_LEN=1 for darwin targets 2021-01-27 15:37:24 -06:00
Andrew Johnson
b2c4f0d015 Explain the RTEMS config variables 2021-01-27 15:37:24 -06:00
Andrew Johnson
8b766f767f Set GNU_TARGET automatically
The individual CONFIG.Common.RTEMS-$(T_A) files don't really need
to set the new GNU_TARGET variable themselves, this addition allows
the unmodified RTEMS-uC5282 target build fine (on 4.10.1 at least).
2021-01-27 15:37:24 -06:00
Andrew Johnson
629f958427 Install toolchain data into cfg/ directory 2021-01-27 15:37:24 -06:00
Michael Davidsaver
bb860ae001 rtems5: correct ifreq_size() 2021-01-27 15:37:24 -06:00
Michael Davidsaver
75548c95d1 rtems5: fix linking of dependent modules, need -lCom after -lrtemsCom 2021-01-27 15:37:24 -06:00
Michael Davidsaver
8a2f336f8f re-drop RTEMS osdMessageQueue 2021-01-27 15:37:23 -06:00
Michael Davidsaver
4d69b7621d RTEMS: fix NIC for testing w/ RTEMS5
Add two NICs, ne2k used by RTEMS 4.x
and e1000 used by RTEMS 5.1.
Each ignores the NIC it doesn't understand.
2021-01-27 15:37:23 -06:00
Michael Davidsaver
2b28d97063 RTEMS5: redirect to serial via runtime 2021-01-27 15:37:23 -06:00
Michael Davidsaver
5a5345d44a WIP: fix missing bits needed by osiNTPTime.c 2021-01-27 15:37:23 -06:00
Michael Davidsaver
10aff42da6 epicsNtp: avoid deprecated/non-standard bzero() 2021-01-27 15:37:23 -06:00
Michael Davidsaver
8366770d72 ci: RTEMS update 2021-01-27 15:36:21 -06:00
Michael Davidsaver
e2e606d53f RTEMS: auto-detect OS_API 2021-01-27 15:36:21 -06:00
Heinz Junkes
bba7d8c8f8 Enable Epics for RTEMS5 (posix) 2021-01-27 15:36:10 -06:00
Michael Davidsaver
077b41e6c1 Extract compiler pre-defined macros as Make variables 2021-01-27 15:34:02 -06:00
Michael Davidsaver
c95cbe4a0f ci: re-add .appveyor.yml
Re-introduce default config file for use with repositories
other than the main ones.
2021-01-27 09:19:58 -08:00
Michael Davidsaver
1e471832e9 consolidate osiFileName.h
Don't really need 10 files for this
2021-01-27 09:19:13 -08:00
Ralph Lange
40d9a21c0c Merge 3.15 into 7.0 - build system fixes
- improve silencing the build
- assemblies fix for Windows
2021-01-26 17:44:24 +01:00
Ralph Lange
dd9f38d711 Build: Fix spurious failures with SNIPPETS in Windows
Under some combinations of shell / Make version / Windows version,
Windows make was giving up searching for a target "../"
2021-01-26 17:14:00 +01:00
Andrew Johnson
7050bded31 Update MSVC paths in Windows startup files 2021-01-22 12:32:33 -06:00
Michael Davidsaver
c19605232a epicsAtomicDefault.h typo 2021-01-18 08:23:54 -08:00
Ben Franksen
236bb2c671 fix an out-dated comment in the array filter code 2021-01-15 15:13:47 +01:00
Ben Franksen
372e937717 add macro dbfl_pfield to db_field_log.h and use it in dbGet 2021-01-14 17:45:25 +01:00
Ben Franksen
56f05d722d fix in dbGet: decide use of db_field_log based on whether it has copy or not 2021-01-14 17:40:37 +01:00
Ben Franksen
85822f3051 add macro dbfl_has_copy to db_field_log.h and use it in dbAccess.c
It encapsulates the slightly tricky logic to decide whether a pointer
to a db_field_log has ownership of the data or not.
2021-01-12 17:49:10 +01:00
Ben Franksen
27fe3e4468 refactor db_field_log and filters to get rid of dbfl_type_rec
This refactor simplifies and streamlines the code associated with server
side filters. Apart from immediate benefits (clearer code, less duplication)
it is also hoped that this will make it easier to add write filters.

The data pointer dbfl_ref.field can now either point to a copy owned by a
filter, or it can point to the original data owned by a record. In the
latter case, the dbfl_ref.dtor is NULL.

The dbExtractArray* functions are unified to the single function
dbExtractArray and stripped of conversion functionality. This is redundant
because we always call dbGet after applying filters, which takes care of
conversion. Accordingly, dbChannelMakeArrayCopy is now obsolete and its
single use (in the ts filter) replaced with dbExtractArray. Instead, we add
the helper function dbChannelGetArrayInfo to wrap the common boilerplate
around calls to the get_array_info method, used in both arr.c and ts.c.
2021-01-12 17:49:10 +01:00
Ben Franksen
4ab9808180 make it clearer what the result of wrapArrayIndices will be 2021-01-12 15:56:32 +01:00
Andrew Johnson
4e81eaa7e8 Update pvAccess module (caProvider) 2021-01-05 21:42:59 -06:00
Andrew Johnson
99852c6504 Merge JSON5 support into 7.0 2021-01-05 21:39:15 -06:00
Michael Ritzert
a9e3fa74aa FTBFS on FreeBSD 12 2021-01-05 08:56:57 -08:00
Andrew Johnson
d997690aa5 Build: Fix tests for the 'make -s' flag
'make -j2' or more adds an 's' to MFLAGS in "--jobserver-fds".
This is the correct way to do the check.
2020-12-30 13:08:48 -06:00
Andrew Johnson
326ef00bc9 Merge 3.15 into 7.0 - GHA tapfiles Artifact 2020-12-29 15:42:44 -06:00
Andrew Johnson
a043599e18 GHA: Save .tap files as an artifact 2020-12-28 18:04:06 -06:00
Andrew Johnson
02be10069e Make the CI commit-ignore patterns match 2020-12-28 17:13:45 -06:00
Andrew Johnson
4f14e9e674 Merge up Appveyor changes from 3.15 into 7.0 2020-12-28 16:22:15 -06:00
Andrew Johnson
ff4317d05a Make .appveyor.yml into a branch-specific filename
The name should match the Appveyor account that builds the branch;
From a suggestion by Michael.
2020-12-28 15:59:12 -06:00
Andrew Johnson
63919e199c Fix menuPriority filename in RecordReference index 2020-12-28 13:40:35 -06:00
Andrew Johnson
f775e0b8f6 Merge 3.15 branch into 7.0
Adjust updated test result displays for submodules
2020-12-23 16:18:21 -06:00
Andrew Johnson
518bab9675 Clean up .appveyor.yml
Whitelist the tagged versions too
Exclude MinGW debug builds since (unlike the VS builds) they use
the same system libraries as the non-debug builds.
We aren't building vs2008 any more anyway.
2020-12-23 11:56:32 -06:00
Andrew Johnson
a8036d7f34 posix/osdThread: Use "Once" versions properly
Functions used before epicsThreadInit() returns must call the
checkStatusOnceQuit() version to avoid recursion from errlogInit()
2020-12-23 11:53:05 -06:00
Andrew Johnson
436ce4526b Appveyor: Update CMP from mingw => gcc 2020-12-21 15:49:52 -06:00
Michael Davidsaver
b49f06916e gcc -Werror-implicit-function-declaration
Treat implicit declarations as an error in GCC builds.
2020-12-21 07:38:24 -08:00
Andrew Johnson
9ba0081a82 Change the Appveyor steps to call the new cue.py script 2020-12-18 15:35:18 -06:00
Andrew Johnson
c60056d4d6 Reconfigure and tidy up the testFailure stuff
Many variables renamed.
Generated files are now named .log for .gitignore
Actions are now defined in CONFIG_BASE variables.
2020-12-18 15:32:46 -06:00
Andrew Johnson
68c056f2f8 Fix makeTestfile.pl to report test failures properly
If a test program reports test failures, the Perl wrapper
must return the same error status. On Windows where we use
system() instead of exec() that needs some value fiddling.
2020-12-18 10:20:31 -06:00
Andrew Johnson
48a6d2f781 GH-Actions: Undo my workflow name change
Changing it also modified the names of all previous builds.
2020-12-17 20:59:56 -06:00
Andrew Johnson
79bb9e000b GH-Actions: Tweaks 2020-12-17 20:39:08 -06:00
Andrew Johnson
c404eb3f83 GH-Actions: Add short names for each job 2020-12-17 20:38:06 -06:00
Andrew Johnson
7beb32e209 Extend testFailures.pl to list the failed test programs
Creates a file .taps-failed in each O.<arch> directory,
appending the name of each tapfile that has failures to it.
The testFailures script now reads the .taps-failed files
from each directory listed in .tests-failed and nicely
displays the failing tests listed in each.
2020-12-17 18:34:24 -06:00
Andrew Johnson
a365de2419 Fix return value of epicsUnitTest::testDone()
Wasn't properly returning a non-zero exit status
when HARNESS_ACTIVE was set.
2020-12-17 18:21:07 -06:00
Andrew Johnson
035ffdf045 Additions to .gitignore 2020-12-08 10:11:55 -06:00
Andrew Johnson
5f0d52cd5c errSymLib Fix from Ivo Hanak
Fixes lp: #1907077
2020-12-08 10:10:03 -06:00
Ralph Lange
2035fc641a PCAS: fix scope of tsDLList when used in other classes
Use ::tsDLList to avoid resolving to privately inherited
name (which was breaking builds on newer clang compilers)
2020-12-07 10:07:23 +01:00
Ralph Lange
d25c9a74ad ci: travis-ci -> github actions 2020-12-06 15:12:28 +01:00
Michael Davidsaver
e20151439b ci: use ci-core-dumper 2020-12-03 08:33:57 -08:00
Michael Davidsaver
4e055610b7 epicsUnitTest: SetErrorMode() 2020-12-03 08:33:57 -08:00
Andrew Johnson
db027d4a7f makeTestfile SetErrorMode() 2020-12-02 11:43:39 -08:00
Michael Davidsaver
17ee7dd6c7 update PVA modules 2020-12-02 10:44:21 -08:00
Michael Davidsaver
dc99d63df8 C89 compat
Present for Dirk
2020-11-20 17:25:27 -08:00
Michael Davidsaver
53897d4a82 ci: need apt-get update 2020-11-20 17:23:43 -08:00
Michael Davidsaver
d24a297304 osiSockTest: fix timeout 2020-11-19 13:07:05 -08:00
Michael Davidsaver
761edcae15 travis-ci -> github actions 2020-11-18 11:11:37 -08:00
Michael Davidsaver
b890d584bc softIoc: avoid extra iocInit() 2020-11-18 11:11:37 -08:00
Michael Davidsaver
db2f7d8b92 use auto_ptr or unique_ptr 2020-11-18 10:54:44 -08:00
Michael Davidsaver
d83e3b5de1 osiSockTest: probe for !EPERM 2020-11-18 10:54:44 -08:00
Michael Davidsaver
cbac1c54f5 test/ioc/db: xRecord handle alarms 2020-11-18 10:54:44 -08:00
Michael Davidsaver
2cfbf5c1c9 fix release notes 2020-11-18 10:54:10 -08:00
Michael Davidsaver
d108a1ff11 Merge remote-tracking branch 'lp-zimoch/dbChannelForDBLinks' into 7.0
* lp-zimoch/dbChannelForDBLinks: (43 commits)
  add tests for empty array filter results
  Fix linkFilterTest, move Release Notes to the right place
  do not handle empty arrays (undefined behavior)
  Revert "new error code for empty arrays"
  test code beautification
  make db_init_event_freelists private
  remove unnecessary check
  remove needless pointer access
  new error code for empty arrays
  clean up code structure
  Release notes updated
  set number of planned link filter tests
  removed unnecessary recGblSetSevr call
  re-order link filter tests to alternate between success and failure
  unused variable removed
  Revert "fix crash in PINI: use local db_field_log"
  initialize free lists when starting dbChannel
  db link filter tests added
  bugfix: dbGet should not crash because of empty array requests
  fix crash in PINI: use local db_field_log
  ...

# Conflicts:
#	documentation/RELEASE_NOTES.md
2020-11-18 10:53:50 -08:00
Michael Davidsaver
0a65707383 Merge remote-tracking branch 'githubbhill/timestamp-before-outlink' into 7.0
* githubbhill/timestamp-before-outlink:
  Update RELEASE_NOTES for timestamp-before-outlink
  Patch record processing routines to update timestamp before processing outlinks
2020-11-18 10:48:57 -08:00
9048e998fb add tests for empty array filter results 2020-11-17 15:22:40 +01:00
Andrew Johnson
7632c355ee dbpr: Catch buffer overflow from long link strings.
Fixes lp: #1776141

Currently this just truncates when we hit the end of the buffer,
a better solution is warranted.
2020-11-16 14:25:51 -05:00
Andrew Johnson
4730e14cc7 Document the PINI, POST and PRIO menus 2020-11-13 18:17:47 -06:00
Ralph Lange
c969f05f51 AppVeyor: explicitly set default runner image (VS2015) 2020-11-03 12:04:57 +01:00
Ralph Lange
8fd36d8eef AppVeyor: whitelist 7.0 branch
The AppVeyor epics-base-7 project is supposed to pull the .appveyor.yml from this branch to only build commits and pull requests from/for 7.0.
2020-11-03 10:02:34 +01:00
Ralph Lange
3947b9a061 Appveyor: whitelist 3.15 branch
- DO NOT UPMERGE TO 7.0

The AppVeyor epics-base-3 project is supposed to pull the .appveyor.yml from this branch to only build commits from 3.15.
2020-11-03 09:41:45 +01:00
Andrew Johnson
cf56a0e08e Fix linkFilterTest, move Release Notes to the right place 2020-10-30 17:43:03 -05:00
6b5abf76c8 do not handle empty arrays (undefined behavior) 2020-10-30 17:07:09 -05:00
3b3261c877 Revert "new error code for empty arrays"
This reverts commit d51b5513fda5ca7c6058990396d315cfff81cbfe.

Conflicts:
	modules/database/src/ioc/db/dbAccess.c
	modules/database/src/ioc/db/dbDbLink.c
2020-10-30 17:07:09 -05:00
30d8febb0b test code beautification 2020-10-30 17:07:09 -05:00
4ad98d5b4f make db_init_event_freelists private 2020-10-30 17:07:09 -05:00
14b9ac3277 remove unnecessary check 2020-10-30 17:07:09 -05:00
275c4c7cf4 remove needless pointer access 2020-10-30 17:07:09 -05:00
5d808b7c02 new error code for empty arrays 2020-10-30 17:07:09 -05:00
afdf34b791 clean up code structure 2020-10-30 17:07:09 -05:00
ea05bab26a Release notes updated 2020-10-30 17:07:09 -05:00
edb8f1a5df set number of planned link filter tests 2020-10-30 17:07:09 -05:00
8f5be5f0ad removed unnecessary recGblSetSevr call 2020-10-30 17:07:09 -05:00
bc34526bcb re-order link filter tests to alternate between success and failure 2020-10-30 17:07:09 -05:00
0ee36388cb unused variable removed 2020-10-30 17:07:09 -05:00
c51c83b1d5 Revert "fix crash in PINI: use local db_field_log"
This reverts commit a590151accb1d187562c515a48e013244dd98a45.

Conflicts:
	modules/database/src/ioc/db/dbDbLink.c
2020-10-30 17:07:09 -05:00
d0ef45acc3 initialize free lists when starting dbChannel 2020-10-30 17:07:09 -05:00
7ab56a68d1 db link filter tests added 2020-10-30 17:07:09 -05:00
39c8d5619a bugfix: dbGet should not crash because of empty array requests 2020-10-30 17:07:09 -05:00
e0dfb6cff8 fix crash in PINI: use local db_field_log 2020-10-30 17:07:09 -05:00
3627c38a57 don't crash when filter results in 0 elements 2020-10-30 17:07:09 -05:00
17a8dbc2d7 apply filters in dbDbGetValue 2020-10-30 17:07:09 -05:00
b1f445925d use dbChannel in link instead of DBADDR 2020-10-30 17:07:09 -05:00
Andrew Johnson
297f04bddc Make dbgf display something for an empty array
Also significantly expands on Dirk's Release Notes entries.
2020-10-30 13:37:50 -05:00
Andrew Johnson
a7bf59079f Merge Dirk Zimoch's fix_zero_size_arrays branch 2020-10-29 17:07:35 -05:00
Andrew Johnson
baced535e3 Add -v (verbose) flag to softIoc
Only display the startup steps taken if -v was given.
Show each step *before* running it, so error messages follow it.
2020-10-28 23:55:24 -05:00
Andrew Johnson
be7c6a0a0a Build: Do clean before uninstall actions (if requested) 2020-10-28 23:26:25 -05:00
Andrew Johnson
14476391c0 Warn about NULL dbevEventUserFreeList 2020-10-28 23:25:02 -05:00
Andrew Johnson
223b292c33 Merge fix-wrong-order-phas fixes from 3.15 branch 2020-10-22 10:31:52 -05:00
Andrew Johnson
68121ec907 Merged Dirk's fix_one_element_input_link_arrays branch 2020-10-22 10:14:10 -05:00
Martin Konrad
228ad79b7a Simplify addToList() function 2020-10-13 18:38:17 -04:00
Martin Konrad
bbc0a56d2b Fix wrong PHAS order
Records with lower PHAS value than any previously loaded records
were inserted at the end of the list rather than at the beginning.
This fixes lp: #1899697. Also fixes a proto-bug in that the second
argument to the previously used ellAdd() call assumed that
offsetof(scan_element, node)==0.

Thanks to Bruno Martins for providing this patch.
2020-10-13 18:34:39 -04:00
Andrew Johnson
9726b9efc9 aSubRecord: Fix OVLA..OVLU POD field list 2020-10-12 15:34:43 -05:00
Bruce Hill
f44f4ac7ad Update RELEASE_NOTES for timestamp-before-outlink 2020-10-07 06:47:44 -07:00
Bruce Hill
f1e83b22f2 Patch record processing routines to update timestamp before processing outlinks 2020-10-07 06:47:44 -07:00
Freddie Akeroyd
cdc627a15c Use native Windows type for perfCounterOffset 2020-10-04 01:20:44 +01:00
Freddie Akeroyd
8a90688880 Make returned value relative to IOC boot time to improve accuracy 2020-10-04 00:20:11 +01:00
Freddie Akeroyd
bbdd9392fe Call cantProceed() if performance counter is unavailable 2020-09-27 00:42:20 +01:00
Freddie Akeroyd
fe35e6e703 Remove use of GetTickCount() - only use performance counter 2020-09-25 20:59:20 +01:00
Gabriel Fedel
3e891a12ff Fix asub documentation: alarm happens when retunr status is < 0 2020-09-23 09:36:36 +02:00
Freddie Akeroyd
f8a6735691 Print warning if using GetTickCount() 2020-09-19 00:53:05 +01:00
Freddie Akeroyd
dc579b78db * Fix and enable usage of QueryPerformanceCounter()
* Use GetTickCount64() as fallback on Windows Vista and above
2020-09-19 00:07:06 +01:00
Andrew Johnson
22ee229aca Add support for linux-aarch64 native builds 2020-09-16 00:45:19 -05:00
Andrew Johnson
1ae3bd6c70 Add warnings to CONFIG_SITE files that can't override gnuCommon
Move the clang and '-g' suggestions to the right places
2020-09-08 16:57:48 -05:00
Ralph Lange
cbba08b1ef Merge pull request #88 from HiteshDhola/patch-1
Update README.md
2020-08-26 10:17:42 +02:00
Hitesh Dhola
53044571fb Update README.md
Pointing out few err in the release version. As this is the first document anyone would Read. 

-Corrected released version. Removed old references.
PS : I also use this file to restore my "base" folder with older original version when new EPICS version is released. This way I can keep all of my compiled version isolated.
2020-08-26 12:47:19 +05:30
Ralph Lange
f8df3473ab Redo d3d40689 that was lost in upmerging 2020-08-25 16:06:39 +02:00
Ralph Lange
e8bee54531 Redo 97b29129/0fbfc741 that was lost in upmerging 2020-08-25 16:04:04 +02:00
Michael Davidsaver
0cae0db98b compat IPPORT_USERRESERVED
musl libc doesn't define IPPORT_USERRESERVED
2020-08-22 07:51:33 -07:00
Michael Davidsaver
df6981ceae doc 2020-08-22 07:51:33 -07:00
Michael Davidsaver
11984633dc conditional test of registerAllRecordDeviceDrivers() 2020-08-22 07:50:40 -07:00
Michael Davidsaver
051ba20fe1 fix registerAllRecordDeviceDrivers() prints 2020-08-22 07:50:40 -07:00
Michael Davidsaver
d6cf29e942 add HAS_registerAllRecordDeviceDrivers 2020-08-22 07:50:40 -07:00
Michael Davidsaver
bdd41cca13 move test of registerAllRecordDeviceDrivers() 2020-08-22 07:50:40 -07:00
Michael Davidsaver
e40970bd5e rename dynamic_registerRecordDeviceDriver -> registerAllRecordDeviceDrivers 2020-08-22 07:50:40 -07:00
Michael Davidsaver
9e3d5d52ab iocshRegisterVariable() avoid spurious redefinition warning
Compare the contents, not the container.
2020-08-22 07:50:40 -07:00
Michael Davidsaver
2c389a90d1 test dynamic_registerRecordDeviceDriver() 2020-08-22 07:50:40 -07:00
Michael Davidsaver
8d98387245 add dynamic_registerRecordDeviceDriver()
Use epicsFindSymbol() to build a dynamic and idempotent equivalent
to the code generated by registerRecordDeviceDriver.pl

Also add runRegistrarOnce() to prevent registrars
from running multiple times, except from unittest code.
2020-08-22 07:50:40 -07:00
Andrew Johnson
b36e5262c7 const init a char array from a string value 2020-08-21 17:59:46 -05:00
Andrew Johnson
79d7ac9315 Support undefine in RELEASE files 2020-08-21 16:30:06 -05:00
Andrew Johnson
03c4fe8a8d Merge Record ref updates from 3.15 into 7.0 2020-08-21 15:47:53 -05:00
Andrew Johnson
ad3728d00d Edits to the Record Ref index page 2020-08-21 15:43:48 -05:00
Michael Davidsaver
c465354c67 Set next development version 2020-08-14 13:25:40 -07:00
Michael Davidsaver
4e84f36faf Update version numbers for release 2020-08-14 12:56:39 -07:00
Matic Pogacnik
5b37663bcb Check if input string to aToIPAddr is null 2020-08-14 10:04:56 -07:00
Andrew Johnson
a808e3c790 Document ARM architecture adjustments 2020-08-12 17:39:07 -05:00
Andrew Johnson
0743aabaad Remove linux-arm_eb and linux-arm_el targets 2020-08-12 13:46:35 -05:00
Andrew Johnson
0035ca1846 Add cross-builds for linux-aarch64 2020-08-12 13:46:35 -05:00
Andrew Johnson
d7434eadc3 printf record: Document ll format modifier 2020-08-12 13:25:58 -05:00
Andrew Johnson
5f5cc85e28 Release Notes for json5 changes 2020-08-09 00:35:52 -05:00
Andrew Johnson
7cc246afc1 Modify database tests to use JSON5
(except for the tests that check parsing).
Remove escaped double-quotes in map keys where possible.
Replace escaped double-quotes with single quotes.
2020-08-09 00:33:07 -05:00
Andrew Johnson
75b89b40bf Support single-quoted strings in dbStatic JSON5 values
Teach lexer to recognize them.
Strip leading & trailing quotes from string values.
Add some tests.
2020-08-09 00:33:07 -05:00
Andrew Johnson
b34d3c83fc Add support for hex escapes to the dbStatic lexer
Only translate escaped chars that are inside a jsonSTRING value.
2020-08-09 00:33:07 -05:00
Andrew Johnson
c1152f94fd epicsString: Remove support for Octal character escapes \nnn
These changes to the functions epicsStrnRawFromEscaped() and
epicsStrnEscapedFromRaw() were prompted by the addition of JSON5
support to the dbStatic parser.

 * \0 now represents a zero byte
 * Unprintable characters are now escaped in hex

Tests for the octal escapes have been removed.
2020-08-09 00:33:07 -05:00
Andrew Johnson
8c9e42d15e Fixed the response of epicsStrnRawFromEscaped() to numeric overflows
\x only takes 2 hex digits now, and the octal parser ignores a 3rd
digit if it would take the value over 0xff:
    "\400"  => ' ' then '0'
    "\x088" => '\b' then '8'

With additional tests.
2020-08-09 00:33:07 -05:00
Andrew Johnson
0c800d4428 JSON5 in dbStatic: Update bare-word JSON keys
Our bare-word character set is wider than JSON5's. Quote any
keys containing the extra characters so YAJL can parse them,
but don't quote keys unnecessarily.

Tests for this behavior are in dbStaticTest.db

Adjust the other tests that read links parsed by the dbStatic
parser that used bareword keys, which are no longer quoted.
2020-08-09 00:33:07 -05:00
Andrew Johnson
0fca5fc8a9 JSON5 in dbStatic: Lexer support for NaN and Infinity
The JSON5 spec requires exact capitalization of these strings.
Other numeric parsers such as strtod() are usually more lenient.
2020-08-09 00:33:07 -05:00
Andrew Johnson
fe177e40fd JSON5 in dbStatic: Add lexer support for hex integers
dbLex.l accepts hex notation in JSON numbers.
Tested in dbStaticTest.db as before.
2020-08-09 00:33:07 -05:00
Andrew Johnson
fa4af8b27d JSON5 in dbStatic: Modify lexer's number support
dbLex.l acceps a leading or trailing decimal point with float/double
values and an explicit leading + on all numbers.
Tested in dbStaticTest.db but only passing tests.
2020-08-09 00:33:07 -05:00
Andrew Johnson
980711589a database/test: Give xRecord fields of all numeric types
Extend dbStaticTest to check dbVerify() with all types.
2020-08-09 00:33:07 -05:00
Andrew Johnson
b2ef47573c Drop TODOs from regression tests, hex now works in array values 2020-08-09 00:33:07 -05:00
Andrew Johnson
b0d78921fd Final changes to YAJL for use in Base
* Bump the YAJL version number
* Define a HAS_JSON5 macro
* Set yajl_allow_json5 by default, fixing yajl_test and API comments
2020-08-09 00:33:07 -05:00
Andrew Johnson
c00f638f7e yajl: Add yajl_gen_reset() routine
For some reason this never got added with the rest of the generator.
2020-08-09 00:33:07 -05:00
Andrew Johnson
975e9ec553 Doxygen text and markup fixes and updates 2020-08-09 00:33:07 -05:00
Andrew Johnson
de2de5e2fd yajl: Clean up the formatting of some C macros 2020-08-09 00:33:07 -05:00
Andrew Johnson
a8e0de043c Support for 'single-quoted strings'
Also adds missing character flag VIC for 'r'.
The a5_spec_example test was copied from the JSON5 spec.
2020-08-09 00:33:07 -05:00
Andrew Johnson
549d6f67e3 YAJL support for JSON5 \xXX hex escapes in strings, with tests
Teach the lexer/parser to recognize and decode them in JSON5 mode.
Teach the encoder to use them in JSON5 mode.
Add another error message for bad hex digits.
Test cases to show they work, and that the bad-digit check fires.
2020-08-09 00:33:07 -05:00
Andrew Johnson
55f4e55383 Support for JSON5 character escapes in strings
Any character other than the digits 1-9 may be preceded by a
reverse solidus '\', and unless the combination has an explicitly
defined expansion the character is included without the solidus.
JSON5 adds \', \0 and \v to the set of defined escapes, and an
escaped newline is omitted from a string.

In the test case Perl uses \13 instead of \v in the output
but it is the correct character (13 octal = 11 decimal = '\v').
2020-08-09 00:33:07 -05:00
Andrew Johnson
e2256d0663 Accept unquoted identifiers as map keys
Adds another lexer entry point for lexing map keys only,
adjust parser to use this instead of the general lexer.
Also defines another lexer token for internal use only.
2020-08-09 00:33:07 -05:00
Andrew Johnson
88e0ced03e JSON5 support for generating unquoted map keys
Added a new routine to yajl_encode.c that validates bare identifiers.
Use this in yajl_gen_string() to avoid quoting keys we don't have to.
2020-08-09 00:33:07 -05:00
Andrew Johnson
baaf50c6d2 Add yajl_gen_json5 option and generator support for special numbers
When this flag is set, the yajl_gen_double() routine can output
the values NaN, -Infinity and +Infinity.
2020-08-09 00:33:07 -05:00
Andrew Johnson
97b8df6912 Added JSON5 support for parsing special numbers
NaN and both Infinities, with tests.
Special handling was added to yajl_test since different OSs don't
always generate the same output for special numbers (nan/NaN/...).
2020-08-09 00:33:07 -05:00
Andrew Johnson
98a358437f Add JSON5 support for hexadecimal integers
With tests for YAJL.

Note yajl_parse_integer still can't handle LLONG_MIN in base 10 or 16.
2020-08-09 00:33:07 -05:00
Andrew Johnson
00ac15cec5 Turning on JSON5 also enables comments
Includes the simple test case.
2020-08-09 00:33:07 -05:00
Andrew Johnson
456e774d85 JSON5: Modified lexer for some number support
If configured for JSON5 the lexer now allows a leading or trailing
decimal point on doubles, and an explicit leading + sign on integers
or double numbers.

Includes test cases.
2020-08-09 00:33:07 -05:00
Andrew Johnson
91c5b2fee2 Trailing commas now require a json5 parser
Modifies the yajl test case to add the -5 option
2020-08-09 00:33:06 -05:00
Andrew Johnson
ae604b2a55 Start of JSON5 support
Added yajl_allow_json5 config flag, pass it around.
Added -5 option to yajl_test and yajlTestConverter.pl
2020-08-09 00:33:06 -05:00
Andrew Johnson
d381a936b5 Fix for yajl#188 potential UB
Apparently it is UB to use an enum in va_start()
2020-08-09 00:33:06 -05:00
Andrew Johnson
e542a22631 Fix Darwin version of epicsMonotonicResolution() 2020-08-04 16:22:03 -05:00
Andrew Johnson
97edcfc289 simmTest.c: Allow the clock to not always tick
On some systems the wall clock may tick slowly, so we must allow
the time to not change at all between checks.
Show the time differences.
2020-08-03 18:03:05 -05:00
Andrew Johnson
951b6acbbc Fix Cygwin TCP_NODELAY issue from Paul Chu & Freddie 2020-08-03 12:25:31 -05:00
Andrew Johnson
3c99391d93 Added SPDX License ID to all EPICS-original source files
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".

Makefiles and the build system were deliberately excluded.
2020-08-03 11:53:01 -05:00
Andrew Johnson
957f386d77 Removed EPICS license header and (c) from yacc/antelope sources
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
60aaa16e1d Removed EPICS license header and (c) from flex sources
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
82b3856535 Release notes updated 2020-08-03 11:38:12 -05:00
Andrew Johnson
3506d11558 Speed up osdTimeGetCurrent() on recent macOS
Fixes https://github.com/epics-base/epics-base/issues/83
2020-08-03 11:37:19 -05:00
Michael Davidsaver
29bdca3b84 forgot commit-gh.sh 2020-07-27 14:38:15 -07:00
Michael Davidsaver
a6cdb4c5b6 Set next development version 2020-07-26 14:45:02 -07:00
Michael Davidsaver
aee99a5987 Update version numbers for release 2020-07-26 14:39:02 -07:00
Michael Davidsaver
809a1553bf update release notes 2020-07-26 14:15:10 -07:00
Michael Davidsaver
8029a72fec add doxygen+gh-pages 2020-07-26 13:48:01 -07:00
Michael Davidsaver
bcbaffc158 update submodules 2020-07-26 13:48:01 -07:00
Andrew Johnson
10d472202d Fix some ca/perl builds
Use the pre-expanded Perl configuration variables.
Conda builds of Perl need these (and a fix to the Perl
config files, see https://github.com/conda/conda/issues/8425
for details).
2020-07-21 15:17:37 -05:00
Andrew Johnson
f99bb637b9 ca: Minor cleanups in capr.pl 2020-07-20 18:22:37 -05:00
Andrew Johnson
c55a95fc98 ca: Support DBF_INT64 and DBF_UINT64 in capr.pl 2020-07-20 18:21:46 -05:00
Andrew Johnson
7d9746003b ca: Fix capr.pl to handle missing fields properly
When using an EPICS 7 softIoc.dbd file with a PV from an older version
of Base which didn't have all the fields, our attempts to read those
fields will time out, but the internal logic was buggy. Don't try to
print the values of timed out fields at all. The user will still see a
warning about connection timeouts at the top.
2020-07-20 18:20:45 -05:00
d1491e0860 Use JSON arrays in dbpf 2020-07-17 15:03:53 +02:00
7709239636 make sure put_array_info exists before using it 2020-07-17 09:26:55 +02:00
a9731b90f6 Don't freeze the shell when we are out of memory 2020-07-17 09:12:54 +02:00
Ralph Lange
7d2e352f6a Merge changes from 3.15 branch into 7.0
- merged 3.15 branch up to bf7a1605

# Conflicts:
#	modules/database/src/ioc/db/dbChannel.c
2020-07-15 11:46:45 +02:00
4368697f58 Updated RELEASE_NOTES.md 2020-07-13 14:53:20 +02:00
12cfd418d6 fix dbPut to set target to INVALID/LINK alarm when writing empty arrays into scalars 2020-07-06 15:22:54 +02:00
Andrew Johnson
5c03f8ba79 Simplify epicsMessageQueueTest using joinable threads
Fixes issues with thread shutdown
2020-07-02 16:17:04 -05:00
Andrew Johnson
1eeac6da2f Switch RTEMS to the default osdMessageQueue 2020-07-02 16:14:08 -05:00
Michael Davidsaver
d4781bca28 Merge branch 'recnames' into 7.0
* recnames:
  validate alias names as well
  yet more record name validation
  Further record name validation
  popFirstTemp() may return NULL
  fix crash on bad record name
  Extend record name validation
2020-06-30 19:54:43 -07:00
Michael Davidsaver
32ff3b2ed9 update ci-scripts 3.0 2020-06-29 20:08:13 -07:00
Michael Davidsaver
25681eca4c ci: set EPICS_TEST_IMPRECISE_TIMING 2020-06-29 20:07:06 -07:00
Michael Davidsaver
dcee015f71 validate alias names as well 2020-06-29 14:44:04 -07:00
e5a48f152a RELEASE_NOTES updated 2020-06-29 23:00:30 +02:00
0a1fb25e6b fix dbCaGetLink to fail when reading scalars from empty arrays 2020-06-29 22:23:21 +02:00
Michael Davidsaver
fddd65ccb1 yet more record name validation 2020-06-29 11:33:21 -07:00
473790124b bugfix: ai SoftDevice should return error status when get fails 2020-06-29 14:54:39 +02:00
0353ede517 don't use epicsOldString 2020-06-27 16:05:54 +02:00
Michael Davidsaver
7f9fefc2a4 Further record name validation 2020-06-26 13:22:11 -07:00
Ralph Lange
bf7a1605c6 Name generated junitfiles '<testname>-results.xml'
- following an idea by Freddie Akeroyd,
  to allow better distinction from other xml files
2020-06-23 13:47:33 +02:00
Ralph Lange
0fbfc74182 Fix missing deletion in 97b29129 from 'fix/misc'
- fixes 97b29129 that was replacing two assert() statements
  without removing the original (offending) lines
2020-06-23 11:23:57 +02:00
Michael Davidsaver
b34aa594c8 popFirstTemp() may return NULL
This indicates an earlier error, which should already
been printed.
2020-06-22 12:09:26 -07:00
Michael Davidsaver
3124d972bf fix crash on bad record name 2020-06-22 12:09:26 -07:00
Michael Davidsaver
49889d8549 Extend record name validation
Begin enforcing earlier check (and tab).
Add new warning for record names beginning
with numeric or '{'.
2020-06-22 12:09:26 -07:00
73b86d4921 prevent buffer overflow in dbpf 2020-06-22 13:23:26 +02:00
dec4fc30d9 bugfix in dbpf 2020-06-22 11:30:59 +02:00
Michael Davidsaver
a4bdee82c3 travis fixup networking 2020-06-20 23:11:12 -07:00
Michael Davidsaver
4160610885 libCom: test osdSockAddrReuse
Ensure that epicsSocketEnableAddressReuseDuringTimeWaitState()
and epicsSocketEnableAddressUseForDatagramFanout()
have the desired effects.
2020-06-20 12:01:40 -07:00
Michael Davidsaver
19146a597b WIN32: fix epicsSocketEnableAddressReuseDuringTimeWaitState() 2020-06-19 20:17:14 -07:00
Michael Davidsaver
4eb8ea33ea make-tar add -v and -d arguments
Add -d developer mode to permit export of
branches and raw revisions.

Switch to bash for builtin getopts
2020-06-19 20:17:14 -07:00
Michael Davidsaver
1e425159ed travis mixup STATIC=YES
Ensure that trusty isn't only tested with STATIC=YES,
and others only STATIC=NO.
2020-06-19 20:17:14 -07:00
Andrew Johnson
9259e40483 Perl scripts: leading tabs => spaces, rm trailing spaces 2020-06-17 16:00:31 -05:00
Andrew Johnson
b8f0fd4cdb Make BKPT field an epicsUInt8 for consistency
It was the last 'char' field in dbCommon and the Base record types.
2020-06-12 17:11:34 -05:00
Ralph Lange
b248023eb2 Merge Ralph's 'fix/misc' branch into 3.15
(closes #77)
2020-06-10 18:39:22 +02:00
e68e38ad95 update RELEASE_NOTES.md about empty arrays 2020-06-10 17:48:09 +02:00
Ralph Lange
92374b2be2 libcom/osi: fix potential leak in vxWorks/osdThread.c
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
579fc9d0c7 libcom/osi: fix potential leak in default/osdThreadHooks.c
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
cd47bbf99b libcom/osi: fix debug printf() in default/osdNetIntf.c
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
d3d40689c8 libcom/osi: fix dangerous usage of strncat (WIN32)
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
d5eb055bb7 libcom/flex: fix sscanf() argument types
(code smell found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
97b29129af libcom/test: don't modify operand in assert() statement
(code smell found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
801710b8c7 db: fix possible null pointer dereference
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
30f5c3b301 db: fix incomplete initialization in dbChannelOpen()
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
3176651c71 fix dbGet to fail when reading scalars from empty arrays 2020-06-09 16:14:49 +02:00
Ralph Lange
69d4c238e7 ca/tools: free() all allocated buffers
(found by sonar/cppcheck)
2020-06-09 15:52:14 +02:00
Ralph Lange
7d1ff1411f ca/tools: fix type errors in option parsing
(found by sonar/cppcheck)
2020-06-09 15:51:35 +02:00
Ralph Lange
f0e143b907 ca/client: fix possible null pointer dereference
(found by sonar/cppcheck)
2020-06-09 15:48:33 +02:00
a42197f0d6 allow to write empty arrays with caput 2020-06-09 10:57:05 +02:00
f8035d8d5e support arrays in dbpf 2020-06-09 10:56:58 +02:00
e4dcd3cefd fix aSub record to support reading empty arrays 2020-06-09 10:56:52 +02:00
c4c13d8ce0 fix subArray soft device support to support reading empty arrays 2020-06-09 10:56:45 +02:00
19c50d4c3d fix aai and waveform soft device support to support reading empty arrays 2020-06-09 10:56:34 +02:00
8cc20393f1 fix dbr size of empty arrays. Fixes caget returning non 0 in first element 2020-06-09 10:56:24 +02:00
cc616371b1 allow constant links with numeric 1 element arrays like [42] 2020-06-08 15:05:22 +02:00
Andrew Johnson
545550dd9a convertRelease: Restore $Bin to @INC
This is needed when convertRelease.pl gets run before the
EPICS::Path and EPICS::Release modules are installed, and
after 'make uninstall' has deleted the lib/perl directory.
2020-06-05 12:51:54 -05:00
Andrew Johnson
eb060e7fcd RULES_MODULES: Fix runtests with no submodules 2020-06-05 10:23:07 -05:00
Michael Davidsaver
786c4c2ca2 Revert "dbRecordtypeFieldItem() avoid excess strcmp()"
This reverts commit 48eb4ff4ac.
2020-06-02 11:26:07 -07:00
Michael Davidsaver
48eb4ff4ac dbRecordtypeFieldItem() avoid excess strcmp()
only one is going to match.
2020-06-02 07:55:22 -07:00
Michael Davidsaver
6c914d19c3 db: validate dbrType 2020-06-02 07:55:22 -07:00
Michael Davidsaver
d6f8e9038c getLinkValue() use dbInitEntryFromAddr()
Called from dbGet().  Optimize hash table lookup
and bsearch of array to O(0) assignment.
2020-06-02 07:55:22 -07:00
Michael Davidsaver
5917990908 dbPutGetTest test plain array field 2020-06-02 07:55:22 -07:00
Michael Davidsaver
eeb198db15 change arrRecord cvt_dbaddr() to behave like waveformRecord et al. 2020-06-02 07:55:22 -07:00
Andrew Johnson
1fec685eed Merge new stuff after the 7.0.4 release work 2020-05-28 21:23:44 -05:00
Andrew Johnson
0bfe0eda0c Update the things to skip in make-tar.sh 2020-05-28 21:18:28 -05:00
Michael Davidsaver
6188d3fdaf update doc comments 2020-05-28 16:26:56 -07:00
Andrew Johnson
cd07888149 Set next development versions 2020-05-28 18:25:32 -05:00
Andrew Johnson
745d2755f9 Update version numbers for release
With both libcom and database having minor version bumps I
concluded that this couldn't be 7.0.3.2 and should really
be numbered 7.0.4
2020-05-28 18:12:51 -05:00
Michael Davidsaver
688bc3247c missing include 2020-05-28 16:07:50 -07:00
Andrew Johnson
f0d814d5c7 Final Release Notes update, added bug links 2020-05-28 17:55:27 -05:00
Andrew Johnson
005580556c Add and document the macro IOCSHFUNCDEF_HAS_USAGE 2020-05-28 17:33:18 -05:00
Andrew Johnson
591e1f22dd Update submodules to tagged versions for 7.0.3.2 2020-05-28 16:34:28 -05:00
Andrew Johnson
75a3442669 Move RTEMS test-skip to just the failing test 2020-05-27 01:50:23 -05:00
Andrew Johnson
c3cb72a2ca Rename .tests-failed to match a .gitignore pattern
This is simpler than trying to add that file to the
.gitignore files in all of the submodules.
2020-05-27 01:46:14 -05:00
Andrew Johnson
d41b3979fb Collect submodule test failures into the parent
Instead of displaying the failures from each submodule at the end
of testing that submodule, RULES_TOP suppresses the output when
it detects a parent module, and RULES_MODULES adds the children's
failure lists into the parent's list so they all get shown at the
end of the tests/results.
2020-05-27 01:43:40 -05:00
Andrew Johnson
a6f85ffd1a Decorate the output from epicsProve.pl
Adds the CWD at the top, plus top & bottom separators
2020-05-27 00:13:56 -05:00
Andrew Johnson
c56311424c Add TOUCH command 2020-05-27 00:11:59 -05:00
Andrew Johnson
7ba12f600c Perl: Close and delete output files when dying 2020-05-26 22:09:24 -05:00
Andrew Johnson
808cf80579 Fix Makefiles to use RULES_DIRS instead of _TOP 2020-05-26 22:09:24 -05:00
Andrew Johnson
dd1b65f32c Many edits to record reference docs
Add documentation for aSub from wiki.
Fix incorrect document structures.
Remove inclusion of menu.dbd files.
Fix links to common doc's, remove some links to nowhere.
Adjust podToHtml.pl and the rule that calls it.
2020-05-26 21:49:35 -05:00
Michael Davidsaver
1f4e812223 update ci-scripts 2020-05-26 10:24:39 -07:00
Ralph Lange
ee39b05839 travis-ci: remove declarative DIST settings
Travis started showing the distribution setting on the web UI
2020-05-26 11:08:43 +02:00
Ralph Lange
9ff6c4bb36 Update .ci to ci-scripts bb9b591 (bugfix) 2020-05-26 11:04:32 +02:00
Andrew Johnson
ab281f0f53 Excuse RTEMS for failing tests... 2020-05-25 21:05:18 -05:00
Andrew Johnson
f89ef1f12f Re-enable RTEMS tests in Travis builds 2020-05-25 20:45:14 -05:00
Andrew Johnson
290f2d7e7d Skip appveyor builds when only .travis.yml changes 2020-05-25 20:42:35 -05:00
Andrew Johnson
88d34c2d38 Merge changes from 3.15 branch into 7.0 2020-05-24 23:17:33 -05:00
Andrew Johnson
b2fb83179a Remove duplicate MBA template files 2020-05-24 21:37:11 -05:00
Michael Davidsaver
04dd52c79a update release notes 2020-05-24 11:05:46 -07:00
Michael Davidsaver
2f2c023a51 update submodules 2020-05-22 10:18:48 -07:00
hir12111
0f88c67473 Add a getter function for field_type 2020-05-21 12:06:56 -07:00
Michael Davidsaver
4eeb205374 Remove ANSI-C OS prototypes from flexdef.h
Use osiUnistd.h instead.
Add io.h to osiUnistd.h on Windows

# Conflicts:
#	modules/libcom/src/flex/flexdef.h
#	modules/libcom/src/osi/os/WIN32/osiUnistd.h
2020-05-21 11:49:27 -07:00
Michael Davidsaver
4c192e7bba Merge remote-tracking branch 'githubrl/doc-sim-mode' into 7.0
* githubrl/doc-sim-mode:
  doc: update simulation parameters sections in dbds
  doc: add description of improved simulation mode

# Conflicts:
#	modules/database/src/std/rec/mbboRecord.dbd.pod
2020-05-21 11:42:24 -07:00
Ralph Lange
96f9f355c9 doc: update simulation parameters sections in dbds
- refer to appropriate sections in dbCommonInput/dbCommonOutput
2020-05-21 13:41:11 +02:00
36a8b51d8e CleanupWhitespace
removed spaces at end of line

replaced tabs with spaces
2020-05-20 14:48:09 -07:00
Michael Davidsaver
055223dbe4 fix epicsTempFile in antelope+e_flex 2020-05-20 14:48:09 -07:00
Michael Davidsaver
799e72b1e3 libCom: actually use libComAPI.h in libCom 2020-05-20 14:47:51 -07:00
Michael Davidsaver
b2750bbe93 Merge remote-tracking branch 'github/7.0' into 7.0
* github/7.0:
  Unify doxygen keywords to use '\' not '@'
  Applied all doxy-libcom changes to latest headers

# Conflicts:
#	modules/libcom/src/yajl/yajl_common.h
2020-05-20 13:33:36 -07:00
Ralph Lange
b0cd3518e4 doc: add description of improved simulation mode
- improve sections in dbCommonInput/dbCommonOutput
2020-05-20 19:48:22 +02:00
Andrew Johnson
4b848ef344 Merge the doxy-libcom branch into 7.0 2020-05-19 18:12:29 -05:00
Andrew Johnson
9142eca878 Unify doxygen keywords to use '\' not '@' 2020-05-19 18:04:26 -05:00
Andrew Johnson
e923790c41 Update versions after tagging 2020-05-15 13:55:29 -05:00
Andrew Johnson
c7e42fab3c Set version number to 3.15.8, clear snapshot 2020-05-15 12:00:23 -05:00
Andrew Johnson
2f28ce94f4 Release Notes changes for 3.15.8 2020-05-15 11:36:45 -05:00
Andrew Johnson
732f8b19be Merge branch 'defaultMessageQueue' into 3.15 2020-05-14 10:41:52 -05:00
Andrew Johnson
b03e2f376b eMQTest: Start each test with a new (empty) queue
If fastReceiver() took more than 0.01 seconds to exit,
sleepySender() might have pushed a second message onto
the queue after setting recvExit, so there would be an
extra message in the queue for the next test, which I
was seeing on Appveyor. That's my current theory...
2020-05-13 16:11:31 -05:00
Andrew Johnson
59c68807b6 Heinz Junkes' fix for lp: #1812084 Build failure on RTEMS
I reduced some of the code duplication from his original.
2020-05-13 15:26:34 -05:00
Andrew Johnson
a09b1c8569 Applied all doxy-libcom changes to latest headers 2020-05-13 00:34:33 -05:00
Andrew Johnson
2e7ed02a60 Allow/expect MinGW to fail epicsStackTraceTest #5 2020-05-07 13:13:26 -05:00
Andrew Johnson
089954aaab MessageQueue Tests: Extend Mark's sleep tests 2020-05-07 13:12:12 -05:00
Andrew Johnson
34e0b2f305 osdMessageQueue: Undo change to -ve timeout handling
The internal mySend() and myReceive() routines do expect a timeout
of -1 to mean wait forever, see the epicsMessageQueueSend() and
epicsMessageQueueReceive() API routines.
2020-05-04 11:56:14 -05:00
Andrew Johnson
ceb13797a6 Cosmetic 2020-05-01 00:13:02 -05:00
Andrew Johnson
084557bd3e osdMessageQueue: Don't wake our sender until we're ready for it
Move the code that wakes up the next sending task to after we've
added our threadNode to the receiveQueue. He still has to wait for
us to release the Mutex though, so this might make no difference.
This commit also changes when we decrement the number of waiting
senders so it always happens immediately after a threadNode gets
taken off the sendQueue by the code that removed it.
2020-05-01 00:12:32 -05:00
Andrew Johnson
aeed7cfbdd osdMessageQueue: This is the mirror of Heinz Junkes' earlier fix
When sending a message, if the queue is full so we have to wait, we
create a threadNode with an eventNode in it and stick it on the
sendQueue, then wait for a receiver to signal that event, waking us.
If we awoke due to a timeout but a receiver was actually waking us
up anyway (i.e. eventSent was set), we shouldn't give up.
2020-04-30 23:55:30 -05:00
Andrew Johnson
183c3b2a3e osdMessageQueue: Clear eventNode before returning it
Introduced freeEventNode() which ensures eventNodes don't have a
signalled event in them before returning the node to the freeList.
Callers pass the status from epicsEventWaitWithTimeout() to indicate
whether it was signalled or not. If it timed out we must trigger it
and Wait to clear the event state.
2020-04-30 23:38:51 -05:00
Andrew Johnson
cf2fef2405 osdMessageQueue: Return sooner on -ve timeout
It appears that previously a negative timeout actually implemented a
'wait forever', but the VxWorks and RTEMS implementations both check
for (timeout <= 0) and return immediately if nothing can be done
without waiting.
2020-04-30 23:27:43 -05:00
Andrew Johnson
298c8706ec osdMessageQueue: Rename freeEventNode() -> destroyEventNode() 2020-04-30 22:59:58 -05:00
Michael Davidsaver
a9934792a0 Merge remote-tracking branch 'lp-anj7/expanded-rules' into 7.0
* lp-anj7/expanded-rules:
  Generate module version files with new RULES_EXPAND facilities
  Extend RULES_EXPAND to add more features
  More generator doc updates
  Document <library>_API = <stem> for Makefiles
  Convert epicsShareAPI to epicsStdCall in modules/ca
  Update generator script
  Modify rules to allow multiple API.h libraries to be built
  Convert modules/ca to use LIBCA_API instead of epicsShare
  Try out a representative sample of APIs from multiple libraries
  Add build rules to generate and install *API.h header files
  Add script to generate *API.h headers
2020-04-30 11:34:34 -07:00
Michael Davidsaver
bc595e3a70 Merge remote-tracking branch 'lp-anj7/typed-dsets' into 7.0
* lp-anj7/typed-dsets:
  Bump database version to 3.18.0, use in SHRLIB_VERSION
  Adjust example code in devSup.h
  Set USE_TYPED_DSET centrally now everything uses it
  Update the wording of the Release Notes entry
  - Record updates:   . histogramRecord   . eventRecord   . aaiRecord   . aaoRecord
  - Record updates:   . aoRecord   . biRecord   . boRecord   . mbbiRecord   . mbbiDirectRecord   . mbboRecord   . mbboDirectRecord   . longinRecord   . longoutRecord   . stringoutRecord   . stringinRecord   . waveformRecord   . calcoutRecord   . subArrayRecord
  initial typed-dset changes for ao record
  Add Release Notes entry about dsets
  Export and use aidset, set USE_TYPED_DSET
  Remove duplicated include line
  Add HAS_<record>dset macros to allow detection
  Export and use int64outdset, set USE_TYPED_DSET
  Export and use int64indset, set USE_TYPED_DSET
  Modify lsodset, set USE_TYPED_DSET
  Modify lsidset, set USE_TYPED_DSET
  Modify printfdset, set USE_TYPED_DSET
2020-04-30 11:26:08 -07:00
Michael Davidsaver
5149627242 Merge commit '17efb0b82c4a3b07f8072d3f574d12d01e2435ec' into 7.0
* commit '17efb0b82c4a3b07f8072d3f574d12d01e2435ec':
  WIN32: osdFindSymbol.c use PSAPI_VERSION
  WIN32: epicsFindSymbol() clear error on success
  epicsLoadTest: avoid stdcall name mangling on WIN32
  epicsLoadTest: test expected failure
  WIN32: epicsFindSymbol() fix use of EnumProcessModules()
  fix epicsLoadError()
  WIN32: GetLastError() returns DWORD
  WIN32: osdFindSymbol() use psapi
  WIN32: epicsLoadError() strip trailing newlines
  add epicsLoadTest
  WIN32 fix epicsFindSymbol()
  WIN32 fix epicsFindSymbol() error propagation
  OSX fix osdFindSymbol
2020-04-29 16:44:59 -07:00
Michael Davidsaver
5d5e552a7e de-init hooks 2020-04-29 16:40:16 -07:00
Martin Konrad
fd5edce919 Warn if deprecated state record is used 2020-04-29 16:39:30 -07:00
Hinko Kocevar
8709fbb63f add missing newline 2020-04-29 16:35:34 -07:00
Andrew Johnson
18a632b0e9 Merge 3.15 branch into 7.0 after ci-scripts added 2020-04-27 12:27:50 -05:00
Ralph Lange
6d625f36e3 Merge ralph@gh/use-ci-scripts-7.0 into 7.0 2020-04-27 12:13:18 +02:00
Ralph Lange
49de2ec498 Merge ralph@gh:use-ci-scripts-3.15 into 3.15 2020-04-27 12:10:24 +02:00
Ralph Lange
e0015ef5f3 Update .ci submodule to v2.3.3
- fix appveyor issue when building base
- fix RTEMS cross build for Base 3.15
- run tests using parallel make
2020-04-27 12:03:34 +02:00
Ralph Lange
0aa6e9603b Update .ci submodule to v2.3.3
- fix appveyor issue when building base
- fix RTEMS cross build for Base 3.15
- run tests using parallel make
2020-04-27 11:59:57 +02:00
Ralph Lange
65e7a3e3ef ci: remove old integration in .ci-local 2020-04-25 14:18:30 +02:00
Ralph Lange
958af54895 appveyor: update .appveyor.yml for ci-scripts 2020-04-25 14:18:30 +02:00
Ralph Lange
44ed397517 travis-ci: update .travis.yml for ci-scripts 2020-04-25 14:16:10 +02:00
Michael Davidsaver
ce4fb6085f iocsh: add usage messages 2020-04-24 20:28:00 -07:00
Michael Davidsaver
cd32a7cb1e epicsEventTest: quiet WIN32 noise
timeout for WaitForSingleObject() is known to be
shorter than expected.
2020-04-24 15:38:04 -07:00
Michael Davidsaver
f1cbe93b6c Revert "replace most internal getCurrent() -> getMonotonic()"
This reverts commit 4f2228fb1d
except for some test code.
2020-04-24 15:37:48 -07:00
Andrew Johnson
314e09d8ca Build system release notes 2020-04-24 16:44:49 -05:00
Ralph Lange
076175386f ci: remove old integration in .ci-local 2020-04-24 19:27:05 +02:00
Ralph Lange
f40d379485 appveyor: update .appveyor.yml for ci-scripts 2020-04-24 19:27:05 +02:00
Ralph Lange
445cbb8221 travis-ci: update .travis.yml for ci-scripts
- use more EXTRAs on MacOS for make args
2020-04-24 19:27:05 +02:00
Ralph Lange
a9c8d8d5d3 Add ci-scripts v2.3.2 (submodule in .ci) 2020-04-24 15:11:32 +02:00
Michael Davidsaver
17efb0b82c WIN32: osdFindSymbol.c use PSAPI_VERSION
Prefer the more specific PSAPI_VERSION to NTDDI_VERSION.
2020-04-23 15:25:31 -07:00
Ralph Lange
54efe4b7cd Add ci-scripts v2.3.2 (submodule in .ci) 2020-04-23 17:58:05 +02:00
Ralph Lange
1ff64f72a9 ci: move ci -> .ci-local
also rename appveyor.yml -> .appveyor.yml
2020-04-23 16:00:53 +02:00
Ralph Lange
199979a44c ci: move .ci -> .ci-local 2020-04-22 12:01:24 +02:00
Ralph Lange
f10d0d95b0 Apply perl rules for .tap and .xml only to perl tests
Don't apply the %.tap: %.t and %.xml: %.tap rules to tap and junit
result files from other test frameworks.
(They would overwrite the other frameworks' own rules.)
2020-04-21 11:45:50 +02:00
Andrew Johnson
dfbda1394d Revert the runtests:: change but in an extensible way
Use only %.t files in new TESTSCRIPTS.t var for Perl tests.
TAPFILES and JUNITFILES can be appended to by other rules.
The runtests and test-results rules have no direct recipes.
Added run-tap-tests and tap-results rules, simlified recipe.
Make %.tap:%.t and %.xml:%.tap into static pattern rules.
2020-04-21 01:39:59 -05:00
Andrew Johnson
d05d8807ec Stop generating the testspec file
It was created before modern continuous integration systems
came along; Diamond were supposed to run the tests for us,
but they didn't last for very long.
2020-04-21 01:17:48 -05:00
Andrew Johnson
582a9dbef5 Replace pre-make rule with before-actions rules
For all standard build ACTIONS, a rule before-<action> is
run just before running that action in the subdirectories
given by the DIRS variable. Only works in Makefiles that
include RULES_DIRS or RULES_TOP.
2020-04-21 01:14:03 -05:00
Andrew Johnson
b655662131 Appveyor: Move 'make test-results' to the on_finish stage 2020-04-20 11:33:37 -05:00
Andrew Johnson
be061e1084 Tidy up testFailures script slighlty 2020-04-20 11:31:45 -05:00
Michael Davidsaver
379ea6e586 WIN32: epicsFindSymbol() clear error on success 2020-04-19 10:32:12 -07:00
Michael Davidsaver
c6670e756e epicsLoadTest: avoid stdcall name mangling on WIN32 2020-04-19 10:32:12 -07:00
Michael Davidsaver
0d8fb0a895 epicsLoadTest: test expected failure 2020-04-18 08:21:23 -07:00
Michael Davidsaver
9edb9c2050 WIN32: epicsFindSymbol() fix use of EnumProcessModules() 2020-04-18 08:18:03 -07:00
Michael Davidsaver
aa7c2a647c fix epicsLoadError()
FORMAT_MESSAGE_IGNORE_INSERTS as no va_list is provided.

Handle possibility of n=0 if unable to lookup error.
2020-04-18 07:35:21 -07:00
Michael Davidsaver
6e41f2911b WIN32: GetLastError() returns DWORD 2020-04-18 07:33:57 -07:00
Andrew Johnson
91c18c32d4 Have Appveyor make 'tapfiles test-results' instead of 'runtests' 2020-04-18 00:36:35 -05:00
Andrew Johnson
3790ce4452 Have 'make test-results' fail nicely if any tests did
Lists the directories with failed tests at the end of the build.
It is no longer necessary to use 'make -k' to see the results
of all tests after one or more failures as only the top-level
test-results recipe will generate a build error.
2020-04-18 00:18:11 -05:00
Andrew Johnson
566ab038d2 Make test-results not fail so it shows all results
For some reason 'make -k test-results' isn't always doing
the -k (continue-on-error) on Windows.
2020-04-17 16:51:48 -05:00
Andrew Johnson
648589e6ab podToHtml: Add bootstrap search path for EPICS::PodHtml 2020-04-17 16:42:18 -05:00
Andrew Johnson
841effe9ee epicsMessageQueueTest: Shorten the 1R4S tests 2020-04-16 17:14:58 -05:00
Andrew Johnson
a9727fd5cb Ben Franksen's fix for lp: #1868486 2020-04-16 17:12:25 -05:00
Andrew Johnson
fde0485d6b Added Mark Rivers' tests for the message queue timeout bug 2020-04-16 17:10:53 -05:00
Michael Davidsaver
db2cd68ce3 WIN32: osdFindSymbol() use psapi 2020-04-16 07:53:06 -07:00
Michael Davidsaver
1492baace9 WIN32: epicsLoadError() strip trailing newlines 2020-04-16 07:45:40 -07:00
Ralph Lange
cbf917e833 Improve automated testing rules to allow other test frameworks
- make runtests a double-colon rule, so that other test frameworks
  can add their own recipes independently
- only define runtests:: $TESTSCRIPTS rule when there are TESTSCRIPTS
  (to avoid having it run every time when no TESTSCRIPTS are defined)
- $(strip $TAPFILES) inside ifneq to fix trouble when TAPFILES=' '
2020-04-16 12:04:16 +02:00
Andrew Johnson
85d1982890 Merge changes from 3.15 branch into 7.0 2020-04-15 21:39:54 -05:00
Andrew Johnson
45cf2ea5ce Modify the POD to HTML conversion code to work on older Perls 2020-04-14 16:41:20 -05:00
Andrew Johnson
a95635a018 Merge Freddie's bit_operations branch into 3.15 2020-04-14 15:28:22 -05:00
Andrew Johnson
9df39475cd Merge Martin Konrad's fix-log-issues branch into 3.15 2020-04-14 11:41:23 -05:00
Andrew Johnson
bdf01e7a67 Merge Martin Konrad's Appveyor-worker-image branch into 3.15 2020-04-14 11:28:53 -05:00
Andrew Johnson
0dd5f863ef Add some release notes 2020-04-13 17:57:33 -05:00
Andrew Johnson
38339b6ccf Initialize main thread as OkToBlock 2020-04-13 17:56:09 -05:00
Martin Konrad
2aecf3142a Explicitly specify worker image 2020-04-13 16:45:21 -04:00
Michael Davidsaver
ad44c7a501 update PVA 2020-04-08 17:23:03 -07:00
Ralph Lange
1687757752 catools: make camonitor handle type changes
taken from a patch provided by Dirk Zimoch (in 2014)
2020-04-06 10:58:40 +02:00
Andrew Johnson
1533a4f13f Updates to record POD documentation. 2020-04-03 00:33:51 -05:00
Andrew Johnson
a1aeb23314 Modify POD to HTML tools to better support links
Introduce derived classes to process links the way we need them.
Unify the generation of an ID from a section heading.
2020-04-03 00:29:22 -05:00
Andrew Johnson
933e276e1a Rolf Keitel's POD documentation for dbCommon (from the Wiki)
I split his two "Fields Common to ..." sections back into separate docs,
added links between them all, and made the appropriate build changes.
Also added these and the aai/aao records to the documentation index.
2020-04-02 15:47:10 -05:00
Freddie Akeroyd
7f02f8a386 Exclude VS2012 from -FS option
(cherry picked from 7.0 / commit 4aee25e8 and e29a53f0)
2020-03-28 15:55:35 +01:00
Rold Keitel
cb3fb18f40 POD docs: add aai & aai, update others 2020-03-26 17:41:12 -05:00
Rold Keitel
062c75a078 Prepare for POD documentation of the aa[io]Records 2020-03-26 16:35:58 -05:00
Andrew Johnson
1d6fcd46d6 Adjust RELEASE file variable name recognition
I was asked to support the use of hyphens `-` in names.
2020-03-26 16:31:10 -05:00
Andrew Johnson
5040af322d Fixes in link type documentation 2020-03-26 15:55:27 -05:00
Michael Davidsaver
6f44f64afb add epicsLoadTest 2020-03-24 08:38:41 -07:00
Michael Davidsaver
24df056bcb WIN32 fix epicsFindSymbol()
Passing zero as to GetProcAddress is undocumented,
but seems to be equivalent to passing GetModuleHandle(NULL)
which searches only the address space of the executable file.

Emulate the effect of dlsym(0, ...) by searching all
loaded modules.  Probably not so efficient...
2020-03-24 08:38:36 -07:00
Michael Davidsaver
d3b2298bcb WIN32 fix epicsFindSymbol() error propagation
And use thread local to hold error code/message.
2020-03-24 08:38:33 -07:00
Michael Davidsaver
872009336e OSX fix osdFindSymbol
RTLD_DEFAULT isn't zero on OSX
2020-03-24 08:38:29 -07:00
Michael Davidsaver
a8b2bc5c3b asCa.c normalize indentation
whitespace only
2020-03-23 18:24:44 -07:00
Michael Davidsaver
bac8851132 Revert "asCaStop() join worker thread"
This reverts commit afc31f2f06.

# Conflicts:
#	modules/database/src/ioc/as/asCa.c
2020-03-23 18:22:16 -07:00
Michael Davidsaver
46fa31020e Com: (WIN32) fix handling of thread joinable flag and refcnt
Analogous changes for windows

cf. 02a24a144d
2020-03-23 09:57:14 -07:00
Andrew Johnson
b2160bd618 Merge Martin Konrad's replace-usleep branch into 3.15 2020-03-20 13:40:35 -05:00
Andrew Johnson
5b7f896312 Merge Dirk's emptyArrayCrashFix branch into 3.15 2020-03-20 13:28:34 -05:00
Andrew Johnson
5009f288ae Generate module version files with new RULES_EXPAND facilities
Also removes the separate *VersionNum.h@ templates
2020-03-20 12:03:14 -05:00
Andrew Johnson
5f1b3a5419 Extend RULES_EXPAND to add more features
* Use EXPAND_COMMON for architecture-independent templates,
  generated in the O.Common directory instead of O.$(T_A).
* Add EXPAND_ME to name Makefile variables to be added without
  having to provide a value (permits spaces in value too).
* Comments in RULES_EXPAND describe how to use these rules.
2020-03-20 11:45:20 -05:00
Andrew Johnson
25bb966cbc Use the dbChannel*() accessor macros in the array filter code
instead of exposing the dbChannel innards unnecessarily.
2020-03-14 16:19:26 -05:00
Andrew Johnson
0f35d0c3f9 Improve epicsEventTest delay checks 2020-03-12 13:59:41 -05:00
Andrew Johnson
b4625a0c1f Fix osiSockTest on VxWorks 2020-03-12 13:49:55 -05:00
Andrew Johnson
d38ede55c5 More generator doc updates 2020-03-11 22:37:02 -05:00
Andrew Johnson
809fb88fa2 Document <library>_API = <stem> for Makefiles 2020-03-11 21:19:11 -05:00
Andrew Johnson
33c3b1c89a Convert epicsShareAPI to epicsStdCall in modules/ca 2020-03-10 23:42:42 -05:00
Andrew Johnson
017d561b8d Update generator script
Rename xxxSTD_API to epicsStdCall, don't redefine.
Ensure name stem is a legal C identifier.
Update the Pod text
2020-03-10 23:41:15 -05:00
Andrew Johnson
eb817ba056 Modify rules to allow multiple API.h libraries to be built 2020-03-10 23:35:03 -05:00
Andrew Johnson
18402f0354 Convert modules/ca to use LIBCA_API instead of epicsShare
Also unified the header exclusion guard names,
removed a couple of files that are no longer used,
dropped the '3.13.7' from the Copyright header.
2020-03-09 23:53:22 -05:00
Michael Davidsaver
02a24a144d Com: fix handling of thread joinable flag and refcnt
The second increment of refcnt must occur before pthread_create
or a subtle possibility of a double free() occurs if the thread
runs immediately and self-joins before the second inc.

Also use atomic ops for joinable flag to ensure that
concurrent joins will error properly.
2020-03-08 22:27:06 -07:00
Andrew Johnson
0cf38bfb29 Try out a representative sample of APIs from multiple libraries 2020-03-07 01:32:36 -06:00
Andrew Johnson
9e7fc1915b Add build rules to generate and install *API.h header files 2020-03-07 01:05:05 -06:00
Andrew Johnson
eaee851a2d Add script to generate *API.h headers 2020-03-07 01:05:05 -06:00
Andrew Johnson
a9034bb586 Fix clock_gettime issue on newer MinGW builds
Fixes lp: #1853168
2020-03-07 00:40:13 -06:00
Andrew Johnson
e13b01208b Bump database version to 3.18.0, use in SHRLIB_VERSION 2020-03-06 23:28:57 -06:00
Andrew Johnson
048689d6db Adjust example code in devSup.h 2020-03-06 23:20:55 -06:00
Andrew Johnson
23cac3c1a8 Set USE_TYPED_DSET centrally now everything uses it 2020-03-06 22:49:58 -06:00
Andrew Johnson
8b9c313941 Update the wording of the Release Notes entry 2020-03-06 22:36:02 -06:00
Andrew Johnson
3871f89dcd Appveyor should 'make -s test-results' as the last thing 2020-03-05 13:23:07 -06:00
Andrew Johnson
227a749105 Properly convert epicsTempFile to old-style C 2020-03-04 21:49:17 -06:00
Martin Konrad
f9820577c1 Replace usleep call by nanosleep
Also improve behavior in case signals are delivered to the sleeping
thread. This fixes a potential security weakness reported by codacy
(interaction of usleep with SIGALRM and other timer functions such
as sleep(), alarm(), setitimer(), and nanosleep() is unspecified).
2020-03-04 11:19:02 -05:00
Andrew Johnson
fdacb6b92e MSVC <= 11.0 doesn't like 'const int' in C code 2020-03-03 00:53:16 -06:00
Andrew Johnson
5361888997 Have antelope.c include epicsTempFile.c directly 2020-02-29 14:46:13 -06:00
Andrew Johnson
cc4d888ae8 Convert epicsTempFile.cpp to .c 2020-02-29 14:42:54 -06:00
Michael Davidsaver
e6914f3b80 osdSockUnsentCount.c check for existance of SIO_TCP_INFO 2020-02-20 15:37:18 -05:00
Andrew Johnson
41f1b0ffb5 Fix histogram record allocation bug
Found by Peter Heesterman: Potential use of NULL pcallback pointer.

Nothing looks at the return value from wdogInit(), so don't bother.
2020-02-19 15:09:13 -06:00
Andrew Johnson
d82d3d3679 Combine the iocVirgin and iocStopped states into iocVoid 2020-02-18 18:05:46 -06:00
e48cdb48ac dbGet should not crash when source is an empty array 2020-02-18 17:45:12 +01:00
Freddie Akeroyd
3944b32e04 Add back in optimisation disable 2020-02-17 13:30:15 +00:00
Freddie Akeroyd
a0667a122b Excluded x64 tests now need to be excluded on x86 too 2020-02-17 13:29:38 +00:00
Freddie Akeroyd
f2b4c412d3 Fix doc typo 2020-02-17 12:49:45 +00:00
Freddie Akeroyd
8250339e0d Update record pod documentation 2020-02-17 12:46:11 +00:00
Freddie Akeroyd
803593560d Remove redundant left logical shift 2020-02-17 12:22:20 +00:00
Freddie Akeroyd
bfae080af4 Merge branch '3.15' of git+ssh://git.launchpad.net/epics-base into bit_operations 2020-02-17 11:45:25 +00:00
Michael Davidsaver
6ae3f56560 Merge remote-tracking branch 'lp-konrad/fix-crash-dbloadrecords-after-iocinit' into 3.15
* lp-konrad/fix-crash-dbloadrecords-after-iocinit:
  Fix mingw cross-build
  Use accessor in iocInit
  Fix segfault when calling dbLoadRecords after iocInit
2020-02-14 17:18:01 +00:00
Bryan Robert Tester
4844fbbd82 moved listen into rsrv_grab_tcp to allow retry if failed
Fixes race condition with multiple IOCs starting simultaneously.
2020-02-14 17:10:04 +00:00
Gabriel Fedel
983937a52f Fix event record device support with constant INP
This fix apply to event record device with constant INP.
Now when the event record is proccessed the associated records with the
same SCAN setup get triggered correctly, it is not more necessary to set
VAL on event record.

Fixes lp: #1829770
2020-02-14 17:08:36 +00:00
Gabriel Fedel
90c0f5c48d Fix seq to work correctly on "Specified" mode
On Specified mode is expected that when seq is processed the value from
DOL0 (fixed or links) is set on LNK0, if SELN = 0 (and OFFS = 0).
2020-02-14 15:09:11 +00:00
Gabriel Fedel
d82529058a Add a test to record seq in "Specified" mode 2020-02-14 15:09:11 +00:00
Michael Davidsaver
8668cc1267 testTodoEnd() needs to lock
when NULLing
2020-02-14 13:28:44 +00:00
Michael Davidsaver
3465c0c8b0 simmTest imprecise 2020-02-14 13:25:43 +00:00
Michael Davidsaver
b5be8b2eaf update PVA 2020-02-14 11:58:17 +00:00
hanlet
97bf9171c6 Added Multicast to caRepeater
Modifications to allow for CA multicast listening by adding multicast address
from EPICS_CA_BEACON_ADDR_LIST (or EPICS_CA_ADDR_LIST if beacon list is empty).
Original modifications from Jim Smedinghoff, with further changes by Pierrick Hanlet.
2020-02-14 11:42:17 +00:00
gabadinho
c54237e34a - Record updates:
. histogramRecord
  . eventRecord
  . aaiRecord
  . aaoRecord

- Device support updates:
  . devHistogramSoft (histogramRecord)
  . devEventSoft (eventRecord)
  . devAaiSoft (aaiRecord)
  . devAaoSoft (aaoRecord)

- Fixes in already-migrated records
  . lsiRecord: replaced 'struct lsidset' with typedef(ed) 'lsidset'
  . int64inRecord (similar as above)
  . int64outRecord (similar as above)
  . calcRecord: minor fix in init_record() prototype declaration

- Note: the comments about return values in dset structs were outright copied from .c to .pod/.dbd files without confirmation if they are indeed correct!
2020-02-14 11:07:11 +01:00
Michael Davidsaver
bf533ac195 win32 epicsSocketEnableAddressUseForDatagramFanout call spec
apparently epicsShareAPI is required on both declaration and definition.
2020-02-14 09:00:49 +00:00
Michael Davidsaver
6dba2ec1d7 caRepeater /dev/null 2020-02-14 09:00:22 +00:00
Michael Davidsaver
819b0de65b epicsTimerTest testImpreciseTiming() 2020-02-14 09:00:17 +00:00
Freddie Akeroyd
6867f97346 Fix bit operations failures on VS2019 32bit
Working with Dirk Zimoch @dirk.zimoch, fixed various issues
with bit operations on VS2019 32bit. These seem to relate to
handling bit 31 of a 32 bit number.

As EPICS << is an arithmetic bit shift, following Java we
have added <<< and >>> operators for logical shifts

Though it is on a different architecture, this looks like
a similar issue to LP: #1838792
2020-02-14 01:16:09 +00:00
gabadinho
754eb73334 - Record updates:
. aoRecord
  . biRecord
  . boRecord
  . mbbiRecord
  . mbbiDirectRecord
  . mbboRecord
  . mbboDirectRecord
  . longinRecord
  . longoutRecord
  . stringoutRecord
  . stringinRecord
  . waveformRecord
  . calcoutRecord
  . subArrayRecord

- Device support updates:
  . devAoSoft, devAoSoftCallback, devAoSoftRaw (aoRecord)
  . devBiSoft, devBiSoftCallback, devBiSoftRaw, devBiDbState (biRecord)
  . devBoSoft, devBoSoftCallback, devBoSoftRaw, devBoDbState, devGeneralTime (boRecord)
  . devMbbiSoft, devMbbiSoftCallback, devMbbiSoftRaw (mbbiRecord)
  . devMbboSoft, devMbboSoftCallback, devMbboSoftRaw (mbboRecord)
  . devMbbiDirectSoft, devMbbiDirectSoftCallback, devMbbiDirectSoftRaw (mbbiDirectRecord)
  . devMbboDirectSoft, devMbboDirectSoftCallback, devMbboDirectSoftRaw (mbboDirectRecord)
  . devGeneralTime, devLiSoft, devLiSoftCallback (longinRecord)
  . devLoSoft, devLoSoftCallback (longoutRecord)
  . devSoSoft, devSoSoftCallback, devStdio (stringoutRecord)
  . devSiSoft, devSiSoftCallback, devEnviron, devGeneralTime, devTimestamp (stringinRecord)
  . devWfSoft (waveformRecord)
  . devCalcoutSoft, devCalcoutSoftCallback (recordCalcout)
  . devSASoft (subArrayRecord)
2020-02-13 17:40:22 +01:00
Karl Vestin
8075b3c316 Added a null check in epicsWin32ThreadEntry to prevent dereferencing a null pointer in case fetchWin32ThreadGlobal fails.
LP: #1863118
2020-02-13 16:16:56 +00:00
Andrew Johnson
1d9e9ff4f7 Add new POD output files to RecordReference index 2020-02-13 09:06:48 -06:00
Andrew Johnson
eb8ca22704 Add new POD documentation, from Rolf Keitel
Documents the lsi, lso and printf record types.
2020-02-13 09:06:14 -06:00
Gabriel Fedel
6feb1c788d Add extern C for all c headers
This allow that these files could be imported to c++ correctly
2020-02-13 14:21:54 +00:00
Aaron
6e0706a312 Set argBuff->sval to NULL if arg is NULL 2020-02-13 13:22:26 +00:00
Aaron
45bbe274e9 Error case for NULL arg causing segfault in iocshPersistentString 2020-02-13 13:22:19 +00:00
Karl Vestin
2bcaa5448c Added null check in modules/ca/src/client/udpiiu.cpp to prevent possible dereferencing of null pointer. Flagged as error by Codacy static code analysis.
Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42103575495/issues/source?bid=16430872&fileBranchId=16430872#l950
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862916

LP: #1862916
2020-02-13 13:22:04 +00:00
Karl Vestin
66f2a509db Added initialization of alarm severity on probe. This value is not used, but should be initialized regardless. This was flagged as an error by the Codacy static code analysis.
Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42103575016/issues/source?bid=16430872&fileBranchId=16430872#l604
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862918

LP: #1862918
2020-02-13 13:22:00 +00:00
Karl Vestin
538f532184 Added a free statement to release memory allocated for postbuf if the memory allocation for inbuf fails. Resolves an error level issue generated by the Codacy static code analysis.
Codacy link: https://app.codacy.com/gh/epics-base/epics-base/file/42098735308/issues/source?bid=16430872&fileBranchId=16430872#l201
Launchpad bug: https://bugs.launchpad.net/epics-base/+bug/1862917

LP: #1862917
2020-02-13 13:21:58 +00:00
Andrew Johnson
bfd289e85f Add converted histogram POD 2020-02-13 05:11:36 -06:00
Andrew Johnson
a5bae49dab Rename lsi, lso and printf *Record.dbd to .dbd.pod 2020-02-13 04:58:06 -06:00
Andrew Johnson
7a612f9524 Update to stringout POD from Rolf Keitel
Fix spelling of OMSL.
Document the stdio device support.
2020-02-12 09:25:54 -06:00
gabadinho
55ec813908 initial typed-dset changes for ao record 2020-02-12 15:32:13 +01:00
Andrew Johnson
0db8f8ca1b Rename histogramRecord.dbd to .dbd.pod 2020-02-12 07:45:04 -06:00
Michael Davidsaver
e6810a4224 processTarget() remove unnecessary NULL test
psrc and pdst will always be non-NULL
2020-02-12 11:16:33 +00:00
Michael Davidsaver
7b6e48f4e0 casw shouldn't use monotonic 2020-02-12 11:16:29 +00:00
Michael Davidsaver
f0bf61b4cb rsrv: improve monitor/get error message 2020-02-12 11:16:26 +00:00
Michael Davidsaver
db6e7c7a22 use one osdSockAddrReuse impl for all targets
drop win32 specialization of osdSockAddrReuse
2020-02-12 10:52:51 +00:00
Michael Davidsaver
5064931aa6 try both to set both SO_REUSEPORT and SO_REUSEADDR
It seems that on Linux, SO_REUSEPORT shares with SO_REUSEPORT
and SO_REUSEADDR with SO_REUSEADDR, but not each other.

Setting both allows full sharing
2020-02-12 10:52:15 +00:00
Andrew Johnson
dbd6f7e807 Adding tests for epicsThreadClass API
Two tests are disabled which hang the parent in the epicsThread destuctor
2020-01-23 14:26:33 -06:00
Michael Davidsaver
d0c4cc0cec Darwin/iOS use posix osdSockAddrReuse.cpp
Redundant now that the posix version prefers SO_REUSEPORT
if defined.
2020-01-12 11:49:48 -08:00
Michael Davidsaver
65ef6e9d59 posix epicsSocketEnableAddressUseForDatagramFanout() prefer SO_REUSEPORT
prefer SO_REUSEPORT on targets which define it.

Linux defines both, and seems to treat
SO_REUSEPORT and SO_REUSEADDR as equivalent.
BSD derivatives need SO_REUSEPORT.
2020-01-12 11:49:26 -08:00
Michael Davidsaver
8dc131dc4c osiSockTest test epicsSocketEnableAddressUseForDatagramFanout() 2020-01-12 11:48:20 -08:00
Andrew Johnson
54cd7e7ba1 MinGW: Replace -Wno-format with -D__USE_MINGW_ANSI_STDIO 2020-01-08 17:21:04 -06:00
Andrew Johnson
cbe6173417 Updates to the subArrayRecord reference page 2020-01-08 17:19:25 -06:00
Michael Davidsaver
468f965dc2 dbLoadTemplate.h missing extern "C" 2020-01-05 17:52:43 -08:00
Andrew Johnson
8f358f4dd8 VxWorks::osdThread: Rename createFunction => epicsThreadEntry
and make it visible (non-static) so it appears in back-traces.
2020-01-02 16:41:55 -06:00
Andrew Johnson
05e0381b19 Fix VxWorks epicsThreadMustJoin() problems
taskWait() actually returns OK on timeout, so drop the timeout warning
(the other implementations don't have one).
The taskWait() may return ERROR with S_objLib_OBJ_ID_ERROR if the target
thread has higher priority; this indicates a successful join, because
we already did a rendezvous using joinSem.
Delete joinSem *after* calling taskSpareFieldSet(), in case it matters.
2020-01-02 16:39:10 -06:00
Andrew Johnson
06728e0e0b Run epicsThreadTest::testJoining with different priorities
A problem in the VxWorks epicsThreadMustJoin() only occurs when
the joining thread runs at a higher priority than its supervisor.
2020-01-02 16:22:35 -06:00
Andrew Johnson
3b20e71da5 EPICS::IOC.pm Save parms, more debug annotations 2020-01-01 15:03:40 -06:00
Andrew Johnson
81df1b2892 Rearrange EPICS::IOC->close() to be more robust 2020-01-01 00:14:08 -06:00
Andrew Johnson
aad8a96b0d Increase timeout for caget to 15 seconds 2020-01-01 00:08:06 -06:00
Andrew Johnson
83d2941405 netget: Run caget and pvget using EPICS::IOC instead of back-ticks
This lets us collect and echo their stderr streams, and if they
hang up without responding we can kill them directly instead of
just giving up and bailing out.

Left debug output turned on for now.
2019-12-31 22:28:43 -06:00
Andrew Johnson
b62ab817c6 Replace EPICS::IOC->kill() with exit() and close() methods 2019-12-31 22:21:03 -06:00
Andrew Johnson
70ea8d5476 Make EPICS::IOC->_geterrors() return on EOF from IOC's stderr 2019-12-31 22:15:22 -06:00
Andrew Johnson
5dc7995477 Enable IOC debug output in netget.plt 2019-12-27 17:36:37 -06:00
Michael Davidsaver
cb0d8d1297 update PVA 2019-12-19 19:31:21 -08:00
Andrew Johnson
71278477bc Update submodules 2019-12-19 00:08:18 -06:00
Andrew Johnson
e7715ba7b4 Merge 3.15 branch into 7.0 2019-12-18 23:58:02 -06:00
Michael Davidsaver
f64f84744e more fun with isinf() and friends.
GNU libstdc++ prior to GCC 6.1.0, the overlay math.h always
includes math.h from glibc, which defines isinf() and friends.

GCC 6.1.0 includes a change (6c8ced3f4f867b72a623fe2f23efa204c5786a28)
so that the overlay math.h never includes the glibc math.h
when compiling c++.
The overlay math.h sometimes includes "using std::isinf"
Determined by inspecting libc math.h when building gcc.
2019-12-18 20:30:23 -08:00
Michael Davidsaver
d97a12f095 travis-ci test trusty w/ c++11 2019-12-18 20:30:23 -08:00
Andrew Johnson
475963453c Merge Martin Konrad's retire-epicsexcept branch into 3.15 2019-12-17 23:48:45 -06:00
Andrew Johnson
f5a442c0de Merge Martin Konrad's fix-typos branch 2019-12-17 23:46:07 -06:00
Martin Konrad
df519ce1a2 Fix typos in calcoutRecord.dbd.pod 2019-12-17 15:53:41 -05:00
Michael Davidsaver
189060c14f Merge branch '3.15' into 7.0
* 3.15:
  minor epicsTimerTest
  epicsTimerTest loosen test threshold
  debug epicsTimerTest
  posix/epicsMath.h
  Revert "libcom: fix colliding isnan/isinf between C99 and C++0x for gcc-4"
  Revert "libcom: properly declare isnan() in C++ code"
  travis-ci /etc/hosts workaround
  redo travis-ci with matrix
  epicsSockResolveTest add detail
  libcom: properly declare isnan() in C++ code
  libcom: fix colliding isnan/isinf between C99 and C++0x for gcc-4
  libcom: import some C99 math (isnan etc.) into global namespace

# Conflicts:
#	.travis.yml
#	ci/travis-prepare.sh
2019-12-16 15:39:48 -08:00
Michael Davidsaver
feb938fae2 minor epicsTimerTest
(cherry picked from commit 7acd7c6145)
2019-12-16 13:16:31 -08:00
Michael Davidsaver
e068191684 epicsTimerTest loosen test threshold
(cherry picked from commit f955199805)
2019-12-16 13:16:30 -08:00
Michael Davidsaver
33f2d8c4aa debug epicsTimerTest
(cherry picked from commit 2af0c10470)
2019-12-16 13:16:29 -08:00
Michael Davidsaver
60a092fa50 posix/epicsMath.h
Include "<cmath>" for c++11 and pull in
non-namespace versions of isnan() and friends.
2019-12-16 11:40:13 -08:00
Michael Davidsaver
24f08460bb Revert "libcom: fix colliding isnan/isinf between C99 and C++0x for gcc-4"
This reverts commit 09ec3af337.
2019-12-16 11:40:13 -08:00
Michael Davidsaver
247fea0fa9 Revert "libcom: properly declare isnan() in C++ code"
This reverts commit 2e89a60c2d.
2019-12-16 11:40:13 -08:00
Michael Davidsaver
8a9637568e travis-ci /etc/hosts workaround 2019-12-16 11:40:13 -08:00
Michael Davidsaver
87229fdef0 redo travis-ci with matrix
add mix of Ubuntu versions
2019-12-16 11:40:13 -08:00
Michael Davidsaver
b0418e5274 epicsSockResolveTest add detail 2019-12-16 11:40:13 -08:00
Ralph Lange
2e89a60c2d libcom: properly declare isnan() in C++ code 2019-12-11 14:51:16 +01:00
Ralph Lange
09ec3af337 libcom: fix colliding isnan/isinf between C99 and C++0x for gcc-4
This fix can be removed once support for gcc-4 is dropped in 2038
2019-12-06 10:52:38 +01:00
Ralph Lange
70e9d46d75 libcom: import some C99 math (isnan etc.) into global namespace 2019-12-05 16:44:59 +01:00
Andrew Johnson
4c99a94453 Add Release Notes entry about dsets 2019-11-30 01:01:33 -06:00
Andrew Johnson
5407a25775 Export and use aidset, set USE_TYPED_DSET
I did ai so I can use it as an example in the Release Notes.
2019-11-30 00:20:16 -06:00
Andrew Johnson
6eaef18347 Remove duplicated include line 2019-11-28 00:56:00 -06:00
Andrew Johnson
f6d8a1ab6c Sort DIRECTORY_TARGETs to de-duplicate, avoids make warning 2019-11-26 14:31:29 -06:00
Michael Davidsaver
3450c9d442 softIoc use correct path sep 2019-11-24 19:39:45 -08:00
Michael Davidsaver
a7cb9524c2 softIoc re-add -D 2019-11-24 19:39:44 -08:00
Michael Davidsaver
90ef40e62b iocshFindVariable() safety 2019-11-24 19:39:44 -08:00
Michael Davidsaver
1290ab7c6c dbInitEntry() w/o matching dbFinishEntry() 2019-11-24 19:39:42 -08:00
Andrew Johnson
45c7039a45 Add HAS_<record>dset macros to allow detection
External device support that must also build against earlier
Base versions can use these to determine whether they need so
declare their own dset structures for each record type.
2019-11-23 22:23:47 -06:00
Andrew Johnson
b1b51cc70e Export and use int64outdset, set USE_TYPED_DSET 2019-11-23 15:32:51 -06:00
Andrew Johnson
7e1d165092 Export and use int64indset, set USE_TYPED_DSET 2019-11-23 15:32:51 -06:00
Andrew Johnson
7893445a2e Modify lsodset, set USE_TYPED_DSET 2019-11-23 15:32:51 -06:00
Andrew Johnson
465ab44606 Modify lsidset, set USE_TYPED_DSET 2019-11-23 15:32:51 -06:00
Andrew Johnson
23450fcfc8 Modify printfdset, set USE_TYPED_DSET 2019-11-23 15:32:51 -06:00
Andrew Johnson
37ed77006c Fix release headers in Release Notes 2019-11-21 12:47:02 -06:00
Andrew Johnson
578608b1c7 Merge changes from 3.15 branch into 7.0 2019-11-21 12:45:31 -06:00
Andrew Johnson
1d18aa3e6c Disable printf() format warnings on MinGW, they're broken 2019-11-21 12:20:56 -06:00
Andrew Johnson
a85967caea Cross-builds of 64-bit MinGW should inherit from 32-bit
Don't duplicate, this file missed an important change as a result.
2019-11-21 12:20:13 -06:00
Michael Davidsaver
3c0d4ccf49 remove another __DATE__ 2019-11-16 10:26:23 -08:00
Martin Konrad
218459f454 Remove epicsThrows() macro
Exception specifications are deprecated: http://isocpp.github.io/
CppCoreGuidelines/CppCoreGuidelines.html#e30-dont-use-exception-
specifications . They will be removed from the C++ standard with
C++20. Modern compilers are warning about them since years. Thus
it's unlikely that anyone is still using the epicsThrows() macro.
Even if that's the case the fix is trivial: Simply remove the macro.
2019-11-15 21:15:50 -08:00
Martin Konrad
13234afc40 Simplify definition of compiler-specific macros
Remove conditionals for older compiler versions that aren't
supported by EPICS Base anymore.
2019-11-15 21:14:27 -08:00
Michael Davidsaver
156b137af0 avoid 'struct dset'
doesn't work if -DUSE_TYPED_DSET
2019-11-15 21:11:27 -08:00
Michael Davidsaver
fab9c52858 missing includes
Need definition of FILE
2019-11-15 21:11:27 -08:00
Michael Davidsaver
019c20476a test include public Com and db headers
Ensure that headers which are meant to be included
actually can be.
2019-11-15 21:11:27 -08:00
Andrew Johnson
f3d63da77b Remove two long-unused environment parameters 2019-11-15 13:16:35 -06:00
Martin Konrad
a50b850ebd Fix mingw cross-build 2019-11-15 09:33:15 -05:00
Martin Konrad
6767bcd31e Use accessor in iocInit
This is simpler than using init hooks.
2019-11-14 13:57:45 -05:00
Martin Konrad
81550ac4d3 Fix segfault when calling dbLoadRecords after iocInit
This fixes lp:1829919.
2019-11-14 10:11:16 -05:00
d2d8674cb9 use EPICS_PRIVATE_API macro and fix bug with darwin/ios 2019-11-13 14:02:25 -05:00
6f193242e0 renamed epicsSocketCountUnsentBytes to epicsSocketUnsentCount and moved it to osi/os/ 2019-11-13 14:02:23 -05:00
39e8ccdef4 fix bug from commit f85454. Apparently epicsExportSharedSymbols is needed even though epicsExport.h is included 2019-11-13 13:49:28 -05:00
eb8992a750 epicsSocketCountUnsentBytes returns -1 on failure 2019-11-13 13:49:27 -05:00
62fb49f93b bugfix: memmove'ed to much 2019-11-13 13:49:27 -05:00
a5c9db8c8e epicsSockCountUnsentBytes renamed to epicsSocketCountUnsentBytes 2019-11-13 13:49:26 -05:00
04e752c83a moved logClientSendMessage and made it static 2019-11-13 13:49:26 -05:00
a16ce877e7 fix wrong function name in comment 2019-11-13 13:49:26 -05:00
15f28f1183 sending 0 bytes helps to detect broken connections on some systems (but is undefined behavior on Linux, fails on vxWorks and is a documented no-op on Windows) 2019-11-13 13:49:25 -05:00
9c18ce007a cannot print sockets with %d in Windows, they are not small ints but maybe pointers. 2019-11-13 13:49:25 -05:00
765af2efea ask logClient socket how many bytes are still in the send queue and don't discard them in case the connection turns out broken. 2019-11-13 13:49:24 -05:00
059c385286 use dynamic debug flag for logClient 2019-11-13 13:49:24 -05:00
feb1f9b0df increase error message buffer size for long (Windows) error messges 2019-11-13 13:49:23 -05:00
9d9840ad1e improve logClientShow to show unsent bytes on level 2 (and fix level 1) 2019-11-13 13:49:23 -05:00
af73e4cf65 removed unneeded include 2019-11-13 13:49:23 -05:00
ad861a0617 no need to delay startup only because log server is currently not available 2019-11-13 13:49:22 -05:00
1b88e834d6 send pending log messages directly after connecting 2019-11-13 13:49:22 -05:00
e000ea4913 avoid needless memmove calls 2019-11-13 13:49:21 -05:00
06f1a8ec23 elimitate duplicate code in logClient 2019-11-13 13:49:21 -05:00
cf2658be53 do not discard unsent messages when log server has closed connection, instead try to send them after reconnect 2019-11-13 13:49:20 -05:00
74a403090b speed up logRestart thread termination at exit 2019-11-13 13:49:20 -05:00
dc123a0a37 don't send errlog on all logClients 2019-11-13 13:49:20 -05:00
Michael Davidsaver
a4e5b9c528 minor 2019-11-13 10:19:16 -08:00
Michael Davidsaver
b43aafae70 VCS version instead of __DATE__
Use reproducable VCS version instead of date.
Of course, this falls back to a date if not
version controlled.
2019-11-13 10:18:12 -08:00
Michael Davidsaver
905ca4b7ac quiet some warnings 2019-11-13 10:17:43 -08:00
Michael Davidsaver
7acd7c6145 minor epicsTimerTest 2019-11-12 19:07:30 -08:00
Michael Davidsaver
05c93e954f makeRPath.py nicer error on mis-configuation 2019-11-12 19:07:30 -08:00
Michael Davidsaver
bef9a08f6d asLib minor 2019-11-12 19:07:30 -08:00
Michael Davidsaver
3e7ad9a86f rtems_init cleanup
Remove unnecessary (as of RTEMS 4.9) prototypes
Remove unused *Fatal
constify string contant
2019-11-12 19:07:30 -08:00
Michael Davidsaver
76b9461ee8 logClient windows needs SOCK_E* 2019-11-12 19:07:30 -08:00
Andrew Johnson
7eee262486 Shorten/simplify uninstall recipes 2019-11-12 16:16:02 -06:00
Andrew Johnson
a10379327c Replace broken cleandirs recipe 2019-11-12 16:14:39 -06:00
Martin Konrad
b37bfe3ed0 Retire unused epicsExcept.h
Due to a syntax error this header has been unusable since 2001
(since 34ea7db15b), and no one
noticed. Let's remove it.
2019-11-12 12:12:47 -05:00
Andrew Johnson
41d86ecd7a Add a document containing Record Reference links 2019-11-11 11:30:46 -06:00
Andrew Johnson
961dd2bc5d Don't check empty (overridden) RELEASE definitions
Bug reported by Dirk Zimoch
2019-11-11 11:29:03 -06:00
Andrew Johnson
6d8bf7c8ef Update checklist for next release 2019-11-01 14:36:34 -05:00
Andrew Johnson
98e5367126 Update submodules after release 2019-11-01 14:11:51 -05:00
Andrew Johnson
8734863f69 Incr version and set snapshot/development flags 2019-11-01 14:11:29 -05:00
Andrew Johnson
34834dfe97 Clear development flags for 7.0.3.1 2019-11-01 14:08:44 -05:00
Andrew Johnson
bc370e41b5 Release Check-list detail updates 2019-11-01 14:07:45 -05:00
Andrew Johnson
eb6911f474 Fine-tune Release Notes formatting 2019-11-01 13:32:05 -05:00
Andrew Johnson
3c52cbb12a Update submodules to release-tagged versions 2019-11-01 13:00:21 -05:00
Andrew Johnson
61ce4df6c8 Update version numbers in documentation for 7.0.3.1 2019-10-31 16:18:24 -05:00
Andrew Johnson
4d882976df Merge 3.15 branch into 7.0 2019-10-31 16:16:52 -05:00
Andrew Johnson
db4ad455d2 Update version numbers for 3.15.8-DEV (3.15.7.1-DEV) 2019-10-31 15:23:11 -05:00
Andrew Johnson
74a90d141b Update version numbers
Also contains some reformatting in README.md
2019-10-31 13:00:24 -05:00
Michael Davidsaver
c1479522e3 update PVA module docs 2019-10-31 10:56:33 -07:00
Michael Davidsaver
c10f1788d6 update release notes 2019-10-29 17:49:30 -07:00
Andrew Johnson
0d785502eb Fixes to the dfanout record documentation
This commit is actually to test an updated Jenkins configuration
for mirroring commits from Launchpad to GitHub, using a webhook
instead of polling LP for updates every 5 minutes.
2019-10-29 17:49:33 -05:00
Andrew Johnson
220a27bdec Merge Dirk's dynamicVxWorksVmeFunctionBinding branch into 7.0 2019-10-28 15:11:54 -05:00
Andrew Johnson
171b3301a7 Fix ..// => ../ in Makefile-relative source paths 2019-10-28 15:00:15 -05:00
Andrew Johnson
e178fa85b6 Merge 7.0 back into 7.0
Insert tab B back into slot A ...
2019-10-28 13:30:58 -05:00
Andrew Johnson
bed3c81375 Fix some Markdown issues in RELEASE_NOTES.md 2019-10-28 13:01:22 -05:00
Michael Davidsaver
5e6226e595 osdSockUnsentCount.c check for existance of SIO_TCP_INFO 2019-10-28 10:06:05 -07:00
Andrew Johnson
3e7e26d8d7 Merge 3.15 branch into 7.0 2019-10-28 01:03:12 -05:00
Andrew Johnson
ed9d7550f2 Configure linux targets to detect GNU Readline automatically 2019-10-25 00:20:50 -05:00
Ben Franksen
87c68663f3 Document OMSL=closed_loop doesn't work with constant DOL
Fixes lp: #1844537
2019-10-24 12:52:35 -05:00
Michael Davidsaver
fc04d12578 Merge remote-tracking branch 'zimoch/iocLogClientFixesTry2' into 7.0
* zimoch/iocLogClientFixesTry2: (22 commits)
  use EPICS_PRIVATE_API macro and fix bug with darwin/ios
  renamed epicsSocketCountUnsentBytes to epicsSocketUnsentCount and moved it to osi/os/
  fix bug from commit f85454. Apparently epicsExportSharedSymbols is needed even though epicsExport.h is included
  epicsSocketCountUnsentBytes returns -1 on failure
  bugfix: memmove'ed to much
  epicsSockCountUnsentBytes renamed to epicsSocketCountUnsentBytes
  moved logClientSendMessage and made it static
  fix wrong function name in comment
  sending 0 bytes helps to detect broken connections on some systems (but is undefined behavior on Linux, fails on vxWorks and is a documented no-op on Windows)
  cannot print sockets with %d in Windows, they are not small ints but maybe pointers.
  ask logClient socket how many bytes are still in the send queue and don't discard them in case the connection turns out broken.
  use dynamic debug flag for logClient
  increase error message buffer size for long (Windows) error messges
  improve logClientShow to show unsent bytes on level 2 (and fix level 1)
  removed unneeded include
  no need to delay startup only because log server is currently not available
  send pending log messages directly after connecting
  avoid needless memmove calls
  elimitate duplicate code in logClient
  do not discard unsent messages when log server has closed connection, instead try to send them after reconnect
  ...
2019-10-24 10:22:07 -07:00
Andrew Johnson
3881328f2f Merge branch 'vxworks-tz-support' into 3.15 2019-10-22 15:32:46 -05:00
Andrew Johnson
9722e707fd Merge decimate filter branch 2019-10-21 22:56:05 -05:00
Andrew Johnson
897586cb06 Perl DBD modules: Add 'use strict', fix issues. 2019-10-21 22:39:04 -05:00
Andrew Johnson
588fa4f3b2 Trivial formatting changes in configure/ 2019-10-21 22:39:04 -05:00
Andrew Johnson
7bbe528df2 Fix a couple of benign mistakes in RULES files 2019-10-21 22:39:04 -05:00
Andrew Johnson
10e9db3710 Fix dbdToHtml.pl for old versions of Pod::Simple::XHTML 2019-10-21 17:54:06 -05:00
Michael Davidsaver
f3204d8afa provide default for PATH_MAX 2019-10-20 18:35:55 -07:00
Andrew Johnson
ec31feea05 Word-wrap release notes to 80 columns 2019-10-20 16:55:10 -05:00
Andrew Johnson
d0ff3c7672 Release notes describing Record POD changes 2019-10-20 16:55:10 -05:00
Andrew Johnson
178d5779a2 Cleanup of POD documentation, unifying some things
Incomplete, still lots to do in these files.
2019-10-20 16:52:10 -05:00
Andrew Johnson
00334c981c Perl-generated HTML is UTF-8; mark it so 2019-10-20 16:52:10 -05:00
Andrew Johnson
5b5fd8004c Add converted mbbo POD 2019-10-20 16:52:10 -05:00
Andrew Johnson
c7db681e25 rename .dbd to .dpd.pod for mbbo 2019-10-20 16:52:10 -05:00
Joao Paulo Martins
3ff62f4ddb Add converted mbbiDirect POD 2019-10-20 16:52:09 -05:00
Joao Paulo Martins
b34859fb86 rename .dbd to .dpd.pod for mbbiDirect 2019-10-20 16:52:09 -05:00
Michael Davidsaver
370b38e4c9 update PVA modules 2019-10-17 20:12:10 -07:00
Michael Davidsaver
a34a84f19f libcom: win32 poison TLS value 2019-10-17 20:12:10 -07:00
Michael Davidsaver
73481cebcb appveyor reorder and prune
Newer MSVC are more interesting, build them first.
Skip 64-bit for older, and 32-bit for newer, MSVC versions.
2019-10-17 20:11:30 -07:00
Freddie Akeroyd
edc66418ac WIN32: Add symbol lookup 2019-10-17 20:10:23 -07:00
Freddie Akeroyd
c8006f2934 WIN32: Add stack trace printing on assert/error 2019-10-17 20:09:37 -07:00
Michael Davidsaver
32aeabfc61 msvc unittests disable dialog on error or assert() failure
Showing a dialog is really unhelpful in headless CI environments.

_CrtSetReportMode also set _CRT_WARN
Not clear what the default is.
2019-10-17 20:09:27 -07:00
Michael Ritzert
6903562915 RSRV: fix large buffer resize
Take into account that realloc may already have moved
the data to a new buffer.
2019-10-17 20:09:27 -07:00
Andrew Johnson
953dd2b7f9 Document use of epicsProve.pl
Also replaced UTF-8 smart-quotes and m-dashes with ASCII/Markdown
2019-10-17 17:17:05 -05:00
Andrew Johnson
3128fdb930 Add and use epicsProve.pl script
Some Windows Perl installations don't have a working prove.bat
so 'make test-results' doesn't work properly on them.
2019-10-17 16:14:59 -05:00
Andrew Johnson
47f295fecb Clean up permissive POD links 2019-10-10 15:02:06 -04:00
Andrew Johnson
4816a3c04b Merge Saeed's permissive POD conversion branch 2019-10-10 14:54:21 -04:00
Andrew Johnson
e0950643bb Clean up state POD links 2019-10-10 14:53:10 -04:00
Andrew Johnson
252983efca Merge Saeed's state POD conversion branch 2019-10-10 14:48:12 -04:00
Andrew Johnson
7ca26c515a Clean up stringin POD links 2019-10-10 14:46:18 -04:00
Andrew Johnson
a961ca2fe5 Merge Saeed's stringin POD conversion branch 2019-10-10 14:40:23 -04:00
Andrew Johnson
a2fe07aa76 Merge Joao's mbboDirect POD conversion branch 2019-10-10 14:33:45 -04:00
Andrew Johnson
a69803f278 Merge Joao's mbbi POD conversion branch 2019-10-10 14:22:16 -04:00
Saeed Haghtalab
ee38b99e0f Adding POD to stringout record
Also to menuYesNo, menuOmsl, menuIvoa menus
2019-10-10 12:43:32 -04:00
Andrew Johnson
0a01c38698 File renames .dbd to .dbd.pod for stringout 2019-10-10 12:12:41 -04:00
Andrew Johnson
9efefad955 Fix markdown formatting issue 2019-10-10 00:57:45 -04:00
Andrew Johnson
0c62fc8d84 Merge Niamh Dougan's release-notes conversion 2019-10-10 00:21:43 -04:00
Niamh Dougan
292dfe8e16 Convert RELEASE_NOTES from html to .md
Reformat relocations table, escape words with underscores
inside `back-ticks`.
2019-10-10 00:16:17 -04:00
Niamh Dougan
1c93726ee6 renamed RELEASE_NOTES.html -> RELEASE_NOTES.md 2019-10-09 22:40:30 -04:00
Michael Davidsaver
d814d67a35 update release notes 2019-10-06 20:16:10 -07:00
Michael Davidsaver
e257e30cc9 Merge remote-tracking branch 'lp-Com/use-monotonic' into 7.0
* lp-Com/use-monotonic:
  VxWorks: Measure CPU time-base frequency if necessary
  replace most internal getCurrent() -> getMonotonic()
  dbScan periodic scan use monotonic time
  monotonic adapt to regular time APIs
2019-10-06 20:10:20 -07:00
Michael Davidsaver
c131d6852d Merge remote-tracking branch 'lp-Com/iocsherr' into 7.0
* lp-Com/iocsherr:
  doc
  deprecate iocshFindCommand()
  iocshTest start
  iocshCmd() imply "on error break"
  iocsh more error handling
  iocsh handle redirect and similar early errors
  iocsh trap arg. parsing errors
  iocsh further on error
  Fixed logic errors and added some prompts.
  use iocshSetError()
  iocsh allow setting of error code
  iocsh control error behavior
  iocsh catch exceptions

# Conflicts:
#	documentation/RELEASE_NOTES.html
2019-10-06 20:10:09 -07:00
Michael Davidsaver
02bec52f0a Merge remote-tracking branch 'lp-make/rpath-origin' into 7.0
* lp-make/rpath-origin:
  makeRPath allow multiple root directories
  redo softIoc to be more c++y
  rpath $ORIGIN doc
  older binutils compat
  travis-ci test rpath $ORIGIN
  epicsGetExecName WIN32, Darwin, solaris, freebsd
  epicsGetExecDir() paths relative to executable
  LINKER_USE_RPATH=ORIGIN

# Conflicts:
#	configure/os/CONFIG.Common.linuxCommon
2019-10-06 20:05:47 -07:00
Michael Davidsaver
ddb79a37bc Merge remote-tracking branch 'lp-bhill/shared-rpath-independent-of-static-build' into 7.0
* lp-bhill/shared-rpath-independent-of-static-build:
  Another comment fix
  Fix comment as well
  Also apply rpath change to PRODDIR_RPATH_LDFLAGS
  Shared lib rpath should not depend on whether or not static libs are also being built.
2019-10-06 20:02:00 -07:00
Michael Davidsaver
51cceeab89 appveyor always push artifacts
on success or failure
2019-10-06 20:00:00 -07:00
Michael Davidsaver
46f6fc6bfa appveyor test-results 2019-10-06 19:59:53 -07:00
Michael Davidsaver
1b12914ff0 avoid prove executable
On windows prove.bat has the annoying limitations
of a .bat script.  Like a max. of 9 arguments.
2019-10-06 19:59:45 -07:00
Michael Davidsaver
8ff7658291 asLib: osiSockAttach() for asCheckClientIP
WIN32 needs osiSockAttach() prior to aToIPAddr()
which can now happen during ACF parsing.
2019-10-06 19:59:33 -07:00
Michael Davidsaver
e83818b25e workaround apparent MSVC mis-optimization
MSVC appears to misapply the identity
"A + -A == 0" which is not true for
non-finite floating point values.
2019-10-06 19:58:23 -07:00
Michael Davidsaver
2f88b70f21 Use MY_OS to avoid conflict with existing OS variable
# Conflicts:
#	.ci/appveyor-prepare.bat
2019-10-06 19:52:19 -07:00
4bb81654d6 use EPICS_PRIVATE_API macro and fix bug with darwin/ios 2019-10-04 14:32:07 +02:00
Ralph Lange
243b53ecae appveyor-ci: completely remove cygwin builds 2019-10-03 09:37:30 -04:00
Ralph Lange
643d58fd04 appveyor-ci: completely remove cygwin builds 2019-10-02 15:49:12 -04:00
Freddie Akeroyd
7325652d8b Set PERLVER outside if clause 2019-10-01 23:00:23 +01:00
Freddie Akeroyd
d90e6b1a48 Use MY_OS to avoid conflict with existing OS variable 2019-09-30 23:21:59 +01:00
Freddie Akeroyd
e29a53f01a Formatting 2019-09-30 22:48:54 +01:00
Freddie Akeroyd
4aee25e8e2 Exclude VS2012 from -FS option 2019-09-30 22:37:42 +01:00
Freddie Akeroyd
1d5bb93a1f Enable VS 2019 and debug builds on Appveyor
* Add VS2019 build target
* Install Strawberry perl when building VS2019 (this image is missing perl)
* Build debug configuration with MSVC (previously just mingw and cygwin)
* allow static-debug on MSVC by setting -static and modifying CONFIG_SITE
2019-09-29 18:31:49 +01:00
Bruce Hill
4f0c9c97c6 Another comment fix 2019-09-26 16:34:21 -07:00
Bruce Hill
feb44624a1 Fix comment as well 2019-09-26 16:32:08 -07:00
Bruce Hill
8c5d93d044 Also apply rpath change to PRODDIR_RPATH_LDFLAGS 2019-09-26 16:13:49 -07:00
Bruce Hill
03268bc683 Shared lib rpath should not depend on whether or not static libs are also being built. 2019-09-25 23:09:48 -07:00
Michael Davidsaver
17aaf50136 WIN32 must clean TLS from correct thread
epicsParmCleanupWIN32() may be called from
threads other than the one being cleaned up.
2019-09-24 20:36:18 -07:00
Michael Davidsaver
b68f47927c WIN32 remove atexit cleanup of TLS
Force cleanup of resource for threads which may
still be running opens the possibility of strange
race conditions.  Like threads be erroneously
detected as non-epics.

Doing this cleanup at process exit serves no real
purpose.  This code might be valid to re-add
in a DLL exit handler.
2019-09-24 20:21:56 -07:00
Michael Davidsaver
f134abb84e epicsThread avoid possible data race on joined 2019-09-24 08:52:48 -07:00
Freddie Akeroyd
ee1eac3f4c iocshRegisterVariable() takes an array 2019-09-23 18:55:51 -07:00
46912d5516 renamed epicsSocketCountUnsentBytes to epicsSocketUnsentCount and moved it to osi/os/ 2019-09-23 11:10:32 +02:00
cf121f1c14 fix bug from commit f85454. Apparently epicsExportSharedSymbols is needed even though epicsExport.h is included 2019-09-23 10:54:17 +02:00
1718647121 epicsSocketCountUnsentBytes returns -1 on failure 2019-09-19 12:08:45 +02:00
752ec12261 bugfix: memmove'ed to much 2019-09-19 11:42:04 +02:00
e28bb3b0e2 epicsSockCountUnsentBytes renamed to epicsSocketCountUnsentBytes 2019-09-19 10:48:14 +02:00
64f540a64f moved logClientSendMessage and made it static 2019-09-19 10:44:36 +02:00
db3b160f4e fix wrong function name in comment 2019-09-19 08:54:19 +02:00
Andrew Johnson
f08b412a18 Have CA Repeater cd to / before running
to avoid holding the CWD open unnecessarily.
2019-09-18 14:43:08 -05:00
c9b670977d sending 0 bytes helps to detect broken connections on some systems (but is undefined behavior on Linux, fails on vxWorks and is a documented no-op on Windows) 2019-09-18 09:58:28 +02:00
Michael Davidsaver
966965c2c1 Merge remote-tracking branch 'lp-Com/make-simple' into 7.0
* main/make-simple:
  restore ModuleDirs in caPerlApp
  simplify e_flex/antelope path compute
  further no need to search for perl modules under bin
  skip RELEASE_TOPS
  configure: Don't hide any perl scripts being run
  missed a TOP
  no need to search for perl modules under bin/
  drop unnecessary *ModuleDirs
  avoided embedded TOP for non sub-modules
2019-09-17 14:57:47 -07:00
931054d4fd cannot print sockets with %d in Windows, they are not small ints but maybe pointers. 2019-09-17 17:45:33 +02:00
6ffc9e17da ask logClient socket how many bytes are still in the send queue and don't discard them in case the connection turns out broken. 2019-09-17 17:34:16 +02:00
f85454a8d6 use dynamic debug flag for logClient 2019-09-17 17:12:58 +02:00
26f6f674be increase error message buffer size for long (Windows) error messges 2019-09-17 14:41:35 +02:00
d162337b9a improve logClientShow to show unsent bytes on level 2 (and fix level 1) 2019-09-17 14:39:03 +02:00
49bf8bb5ec removed unneeded include 2019-09-17 11:59:02 +02:00
Michael Davidsaver
d58996992d update PVA modules 2019-09-10 18:37:22 -07:00
Michael Davidsaver
0f8876de67 Merge branch '3.15' into 7.0
* 3.15: (28 commits)
  update RELEASE_NOTES
  add option EPICS_NO_CALLBACK
  replace CALLBACK -> epicsCallback
  Update dbTest.c
  Remove links to wiki-ext
  Add POD annotations from Wiki to subArrayRecord and menuAlarmStat
  Rename subArrayRecord.dbd and menuAlarmStat.dbd to .pod
  Add POD annotations to longoutRecord from Wiki
  Rename longoutRecord.dbd longoutRecord.dbd.pod
  Add POD annotations to longinRecord from Wiki
  Rename longinRecord.dbd longinRecord.dbd.pod
  Add POD annotations to subRecord from Wiki
  Rename subRecord.dbd subRecord.dbd.pod
  Add POD annotations to selRecord from Wiki
  Rename selRecord.dbd selRecord.dbd.pod
  Add POD annotations to seqRecord from Wiki
  Rename seqRecord.dbd seqRecord.dbd.pod
  Fix menu declaration test too
  Add redefinition guard to menu-generated typedefs
  Updates to existing .dbd.pod texts, add event and fanout from wiki
  ...

# Conflicts:
#	documentation/README.1st
#	documentation/README.html
#	modules/database/src/ioc/db/callback.h
#	modules/database/src/ioc/db/dbNotify.c
#	modules/database/src/ioc/db/menuAlarmStat.dbd
#	modules/database/src/ioc/db/menuFtype.dbd
#	modules/database/src/std/rec/compressRecord.dbd.pod
#	modules/database/src/std/rec/eventRecord.dbd
#	modules/database/src/std/rec/fanoutRecord.dbd
#	modules/database/src/std/rec/longinRecord.dbd
#	modules/database/src/std/rec/longoutRecord.dbd
#	modules/database/src/std/rec/selRecord.dbd
#	modules/database/src/std/rec/seqRecord.dbd
#	modules/database/src/std/rec/subArrayRecord.dbd
#	modules/database/src/std/rec/subRecord.dbd
#	modules/libcom/src/iocsh/menuAlarmStat.dbd.pod
#	modules/libcom/src/iocsh/menuFtype.dbd.pod
#	src/ioc/db/menuAlarmStat.dbd
#	src/ioc/db/menuFtype.dbd

Manually fix some move+rename
Make additional CALLBACK -> epicsCallback
preserve INT64 in menuFtype
preserve OLDSIM et al
2019-09-09 19:29:58 -07:00
Michael Davidsaver
77574022a1 update RELEASE_NOTES 2019-09-09 16:56:28 -07:00
Michael Davidsaver
75a1b82322 add option EPICS_NO_CALLBACK
Allow the CALLBACK definition to be hidden to prevent
conflicts on WIN32.
2019-09-09 16:22:20 -07:00
Michael Davidsaver
73fec88168 replace CALLBACK -> epicsCallback
git grep -l -w CALLBACK -- src|xargs sed -i -e 's/\bCALLBACK\b/epicsCallback/g'

with exceptions in callback.h
2019-09-09 16:22:20 -07:00
krmpotic
2461dc3574 Update dbTest.c
Fix MAX define.
2019-09-09 11:42:04 +02:00
Andrew Johnson
704e6251e6 Remove links to wiki-ext 2019-09-06 18:33:55 +02:00
Saeed Haghtalab
f70c17ee69 Add POD annotations from Wiki to subArrayRecord and menuAlarmStat 2019-09-06 18:20:43 +02:00
Saeed Haghtalab
96e3e678e9 Rename subArrayRecord.dbd and menuAlarmStat.dbd to .pod 2019-09-06 18:02:39 +02:00
Joao Paulo Martins
9d4b652c5e First version of mbbo POD file 2019-09-06 17:20:54 +02:00
Saeed Haghtalab
0d3cc5a20a Added POD to state record with a note that it is deprecated 2019-09-06 15:49:58 +02:00
Saeed Haghtalab
9255256f15 Added POD to permissive record with a note that it is deprecated. 2019-09-06 15:48:46 +02:00
Saeed Haghtalab
4685f7567b Rename permissiveRecord.dbd -> permissiveRecord.dbd.pod 2019-09-06 15:13:25 +02:00
Joao Paulo Martins
e5f8683144 Renaming dbd file to dbd.pod 2019-09-06 15:00:52 +02:00
Saeed Haghtalab
4f63bf139f Rename stateRecord.dbd -> stateRecord.dbd.pod 2019-09-06 14:36:36 +02:00
Saeed Haghtalab
d7d142650b Adding POD to stringin record 2019-09-06 14:11:20 +02:00
Joao Paulo Martins
eac3d2719b Add POD annotations to longoutRecord from Wiki 2019-09-06 14:00:17 +02:00
Joao Paulo Martins
a3d0699b84 Rename longoutRecord.dbd longoutRecord.dbd.pod 2019-09-06 13:59:31 +02:00
Joao Paulo Martins
a16bf2dc38 Add POD annotations to longinRecord from Wiki 2019-09-06 13:55:14 +02:00
Joao Paulo Martins
13936680e9 Rename longinRecord.dbd longinRecord.dbd.pod 2019-09-06 13:54:10 +02:00
Saeed Haghtalab
7b6c67b51b Add POD annotations to subRecord from Wiki 2019-09-06 13:28:55 +02:00
Saeed Haghtalab
33febb52ba Rename subRecord.dbd subRecord.dbd.pod 2019-09-06 13:28:11 +02:00
Saeed Haghtalab
44149c170e Add POD annotations to selRecord from Wiki 2019-09-06 13:14:48 +02:00
Saeed Haghtalab
db6825f62e Rename selRecord.dbd selRecord.dbd.pod 2019-09-06 13:13:46 +02:00
Joao Paulo Martins
6905ded0d0 First version of mbbi POD file 2019-09-06 12:14:55 +02:00
Saeed Haghtalab
4f31205188 Rename stringinRecord.dbd -> stringinRecord.dbd.pod 2019-09-06 11:56:46 +02:00
Joao Paulo Martins
90d9be1c00 Renaming mbbiRecord.dbd with POD file extension 2019-09-06 11:53:28 +02:00
Joao Paulo Martins
b93f92c843 Add POD annotations to seqRecord from Wiki 2019-09-06 11:26:39 +02:00
Joao Paulo Martins
83458421aa Rename seqRecord.dbd seqRecord.dbd.pod 2019-09-06 11:20:11 +02:00
Andrew Johnson
89e3c582b5 Fix menu declaration test too 2019-09-06 10:44:02 +02:00
Andrew Johnson
623539c3e8 Add redefinition guard to menu-generated typedefs 2019-09-06 10:14:39 +02:00
Michael Davidsaver
299aed026f drop unneeded includes
Avoid pulling in CALLBACK unnecessarily,
which can aggravating MSVC.
2019-09-05 19:31:56 -07:00
Michael Davidsaver
937379892a epicsMutex automatically capture file+line with gcc >=4.8
gcc >=4.8 allows __builtin_FILE() to expand at the call
site when used given as the default for a c++ function
argument.
2019-09-05 19:30:43 -07:00
Andrew Johnson
2a0df61974 Merge compress RecRef wiki as dbd.pod 2019-09-05 17:10:11 +02:00
Andrew Johnson
6e3a15e318 Merge waveform RecRef wiki as dbd.pod 2019-09-05 17:07:27 +02:00
Andrew Johnson
86b1882186 Updates to existing .dbd.pod texts, add event and fanout from wiki 2019-09-05 16:09:20 +02:00
Andrew Johnson
03e613cec0 Adding POD to event and fanout records 2019-09-05 16:09:20 +02:00
Niamh Dougan
177c377b81 Amend documentation filenames in README
Also deleted old README.1st
2019-09-05 15:12:19 +02:00
Niamh Dougan
1cf831939a Convert HTML in README.md to Github Markdown 2019-09-05 15:07:01 +02:00
Niamh Dougan
26cd81d35f Rename README to .md 2019-09-05 15:05:42 +02:00
Saeed Haghtalab
31811e53b3 Compress record pod update after review
- Revert "N to 1 Median" choice entry place
- Convert images to PNG and update Makefile
- Update record support routins definition based on epics7 recSup.h
2019-09-04 21:15:46 +02:00
Joao Paulo Martins
128d2a93c8 Fixing waveform record documentation after review 2019-09-04 17:25:28 +02:00
Saeed Haghtalab
67583b4bda Update compressRecord.dbd.pod based on Wiki + Content update 2019-09-04 11:29:43 +02:00
Joao Paulo Martins
8a39ca7489 Preparing the waveform record DBD-POD file; Creation of the menuFtype DBD-POD file 2019-09-03 14:20:24 +02:00
Ralph Lange
8b3bc1df9c Merge remote-tracking branch 'origin/3.15' into 7.0 2019-09-02 14:48:42 +02:00
Ralph Lange
b9bc836d1e appveyor-ci: disable cygwin x86 builds (install is broken) 2019-09-02 14:47:39 +02:00
Michael Davidsaver
c0a04eae21 Merge remote-tracking branch 'lp-asLib/as-hostname' into 7.0
* lp-asLib/as-hostname:
  update release notes
  asLib more string size...
  asLib one short
  asLib: asUseIP name lookup soft-fail
  Expand Release Note entry for as-hostname changes.
  as-hostname address review comments
  asLib: test asUseIP
  as,rsrv: use real client IP instead of untrusted host name

# Conflicts:
#	documentation/RELEASE_NOTES.html
2019-08-31 15:07:22 -07:00
Michael Davidsaver
75477b5e9c Merge remote-tracking branch 'origin/3.15' into 7.0
* origin/3.15: (40 commits)
  Revert "More msi.plt retries for Jenkins builds on Windows"
  Revert "Testing msi: Add retries if necessary"
  msi: Flush stdout on program exit
  Now fix the non-windows systems
  Don't use / in Windows program paths
  Redirect msi's STDERR to /dev/null (NUL on Windows) during tests
  VxWorks: Mark undetected underflow parse test as ToDo
  Fix VxWorks osiSockOptMcastLoop_t => char
  Fix sync filter example in dbd.pod
  doc/ca: clarify variable size array subscription
  Remove cacExitHandler
  Don't clear caClientCallbackThreadId in CA's exit handler
  appveyor-ci: ANL Make install 4.1 -> 4.2.1
  appveyor-ci: use pre-installed AppVeyor MinGW
  appveyor-ci: use choco MinGW 5.3.0 to work around build problem (fixes lp:1827225)
  appveyor-ci: exclude some cygwin builds (broken compiler) appveyor-ci: remove slack, add email and GitHub notifications (cherry-picked from branch 7.0)
  epicsTime: rely on implicit copy constructor
  iocLogServer: check return values
  Fix potential buffer overflow in iocLogServer
  Fix weird use of strncpy
  ...

# Conflicts:
#	modules/database/src/ioc/dbtemplate/msi.c
#	modules/database/src/std/rec/stringinRecord.c
#	modules/database/src/std/rec/stringoutRecord.c
#	modules/database/test/ioc/dbtemplate/msi.plt
#	modules/libcom/src/osi/os/vxWorks/osdSock.h
#	src/ioc/dbtemplate/msi.c
#	src/ioc/dbtemplate/msi.cpp
2019-08-31 15:05:37 -07:00
2b0161d9bf no need to delay startup only because log server is currently not available 2019-08-30 08:57:08 +02:00
9df98c1838 send pending log messages directly after connecting 2019-08-30 08:57:08 +02:00
59aa9cfe74 avoid needless memmove calls 2019-08-30 08:57:08 +02:00
709208ef5c elimitate duplicate code in logClient 2019-08-30 08:57:08 +02:00
0a3427c835 do not discard unsent messages when log server has closed connection, instead try to send them after reconnect 2019-08-30 08:57:08 +02:00
2432878773 speed up logRestart thread termination at exit 2019-08-30 08:57:08 +02:00
62c3b0a585 don't send errlog on all logClients 2019-08-30 08:57:08 +02:00
Andrew Johnson
b2938459f8 Define pdevLibVME on non-VME RTEMS targets 2019-08-28 15:28:08 -05:00
Michael Davidsaver
c63a564ad4 doc 2019-08-26 09:57:15 -07:00
Michael Davidsaver
7ba103d997 deprecate iocshFindCommand()
This function, and struct iocshFuncDef, expose
internal details.  Specifically iocshCmdDef::func .
Which prevents changing/extending the iocsh function
signature.

Deprecate in favor of iocshCmd() and iocshRun().
2019-08-26 09:57:15 -07:00
Michael Davidsaver
85517d761d iocshTest start 2019-08-26 09:01:54 -07:00
Michael Davidsaver
2557d14785 iocshCmd() imply "on error break" 2019-08-25 20:10:27 -07:00
Michael Davidsaver
58473e825c iocsh more error handling
sooo many ways to fail...
2019-08-25 16:29:55 -07:00
Michael Davidsaver
a625acbb18 iocsh handle redirect and similar early errors 2019-08-24 20:30:47 -07:00
Andrew Johnson
2fb41d7a36 VxWorks: Measure CPU time-base frequency if necessary
The BSP routine sysTimeBaseFreq() is optional. If not present or
non-functional we measure the frequency of the CPU's time-base
counter (against the OS system clock) once at initialization-time.
2019-08-23 15:54:32 -05:00
05cd95a821 astac argument checks 2019-08-13 20:37:43 -07:00
Andrew Johnson
fd48ee9aec Update submodules
Adjust comments in the embedded module CONFIG_*_VERSION files
2019-08-13 11:21:26 -05:00
Andrew Johnson
e0039d4e86 Expand epics-controls publication instructions 2019-08-01 16:20:53 -05:00
Andrew Johnson
969ffa3598 Checklist: Update version update instructions 2019-07-31 14:34:42 -05:00
Andrew Johnson
29fc49199d Update versions after tag, set DEVELOPMENT_FLAG/DEV_SNAPSHOT 2019-07-31 14:29:18 -05:00
Andrew Johnson
841ef37820 Update version numbers for Base and internal modules
Clear EPICS_DEV_SNAPSHOT flag for tagging.
2019-07-31 12:11:22 -05:00
Andrew Johnson
f550f278ad Update version numbers in documentation to 7.0.2 2019-07-30 18:09:33 -05:00
Andrew Johnson
1706da98cc Update submodules to tagged versions 2019-07-30 14:36:46 -05:00
Andrew Johnson
e8be04bc43 Update pvDatabase submodule 2019-07-25 18:14:12 -05:00
Andrew Johnson
dee526f2f6 Merge msi fix from 3.15 branch into 7.0 2019-07-25 18:11:26 -05:00
Andrew Johnson
59cffd51ae Merge 3.15 branch into 7.0 2019-07-25 18:10:40 -05:00
Andrew Johnson
9b5034f307 Restore errlogFlush() call to msi.cpp 2019-07-25 14:35:41 -05:00
Michael Davidsaver
e2881fb37e More release notes
Forgot to stage...
2019-07-24 18:42:02 -07:00
Michael Davidsaver
afd9697290 update PVA modules 2019-07-24 17:45:08 -07:00
Michael Davidsaver
9988be0906 update release notes 2019-07-24 16:44:31 -07:00
Andrew Johnson
a6812c5869 Revert "More msi.plt retries for Jenkins builds on Windows"
This reverts commit a69bd833fc.
2019-07-17 16:19:37 -05:00
Michael Davidsaver
b89494a840 Revert "Testing msi: Add retries if necessary"
This reverts commit 29c069db3d.

# Conflicts:
#	src/ioc/dbtemplate/test/msi.plt
2019-07-17 11:20:03 -07:00
Freddie Akeroyd
771ad6a442 msi: Flush stdout on program exit
On WIN32 if the reopen()ed stdout is not closed it can occasionally
result in missing lines in the output file
2019-07-17 10:45:09 -07:00
Michael Davidsaver
1a94376c19 restore ModuleDirs in caPerlApp 2019-07-09 18:42:19 -07:00
Andrew Johnson
84c86e67e8 Fix valgrind warnings in filter tests 2019-07-08 12:55:21 -05:00
Andrew Johnson
cac3e2dc3b Add checks of freelist to dbndTest.c 2019-07-07 23:32:12 -05:00
Andrew Johnson
8ff6ce4821 Fix leak in sync filter (while, unless modes)
Always release field logs when we drop them.
Adjust how first and after modes work to make them easier to test.
Change stream checking code, fix leaks and double frees.
Add mustStash(), mustSwap(), streamReset(), drop mustPassOld().
Modify test code to check free-list count and release all of
the field-logs returned by the filter; it must release any of
the field-logs that it decides to drop.
2019-07-07 23:30:07 -05:00
Andrew Johnson
44ea66aaaf Add checks and summary of free-list size to decTest.c 2019-07-07 23:11:21 -05:00
Michael Davidsaver
d214d81794 CROSS_COMPILER_RUNTEST_ARCHS for non-RTEMS 2019-07-07 16:50:02 -07:00
Michael Davidsaver
c70b1a9a29 libcom: detect uclibc support for backtrace() 2019-07-06 13:43:58 -07:00
Andrew Johnson
b4ee452c4d Test that a join actually delays the parent 2019-07-02 18:17:47 -05:00
Andrew Johnson
e5782ae716 Update release notes again, more detail 2019-07-02 17:38:16 -05:00
Andrew Johnson
99be9a86a0 Rework EPICS_THREAD_CAN_JOIN
RTEMS osdThread.h was missing an extern "C" wrapper.
2019-07-02 17:31:37 -05:00
Andrew Johnson
fbf62189cb Replace epicsThreadOptsDefaults() with EPICS_THREAD_OPTS_INIT
The epicsThreadCreate() routines now interpose calls to
epicsThreadGetStackSize() if an enum value is passed.
2019-07-02 17:27:27 -05:00
Andrew Johnson
4b77d5e1c9 Release Note updates
VxWorks minimum version, and more about joinable threads.
2019-06-28 13:24:29 -05:00
Andrew Johnson
8a072d3c04 More basic tests of epicsThreadMustJoin() 2019-06-28 12:40:07 -05:00
Andrew Johnson
ff1462fcc7 Working VxWorks implementation of epicsThreadMustJoin() 2019-06-28 12:28:41 -05:00
Andrew Johnson
c9c4eea0f8 Now fix the non-windows systems 2019-06-27 15:21:41 -05:00
Andrew Johnson
78ce2dac05 Don't use / in Windows program paths
Fixing Windows msi.t script failures...
2019-06-27 13:28:56 -05:00
Andrew Johnson
b2285bb8aa Redirect msi's STDERR to /dev/null (NUL on Windows) during tests
Also moves the environment variable handling code out to the only
test that needs it and simplifies it; some Perl versions were giving
warnings from splitting an undef value.
2019-06-27 12:01:42 -05:00
Andrew Johnson
f79c69f0a0 Fix the decimate filter, free field-logs when dropping them 2019-06-26 23:33:35 -05:00
Andrew Johnson
e03c7edfe5 Check free-list size to ensure field-logs freed properly
Moves where the field-logs get freed into the mustPass/mustDrop routines,
where it only happens if the filter didn't free them itself.

Filters that save field-logs can't use this code as-is.
2019-06-26 23:32:52 -05:00
Andrew Johnson
398fdee33e Added db_available_logs() for filter test code to use
Returns the number of items available on the db_field_log free-list.
2019-06-26 23:28:51 -05:00
Michael Davidsaver
59cb5ba6a0 Merge remote-tracking branch 'konrad/clean-up-msi' into 3.15
* konrad/clean-up-msi:
  Add test for macro expansion in file names
  Reduce scope of some variables
  Convert substitutionName to std::string
  Use bool for more clarity
  Remove unneeded errlogFlush()
  Manage psubFile with new/delete
  Convert copy to std::string
  Use std::list for patternList
  Convert patternNode.var to std::string
  Convert fullname to std::string
  Convert inputFile.filename to std::string
  Simplify inputConstruct()
  Use std::list for pathList
  Use std::list for inputFileList
  Constructor for struct inputData
  Simplify catMacroReplacements()
  Constructor for struct subInfo
  Add some const keywords
  Convert MSI to C++
  Test expansion of empty patterns with MSI
2019-06-26 14:55:40 -07:00
Michael Davidsaver
c8e5deca76 dbEvent tweak Queue size 2019-06-26 09:40:41 -07:00
Michael Davidsaver
5b09bb6e71 Set file+line for epicsMutex
Makes the output of epicsMutexShowAll more useful wrt. libca.
2019-06-26 09:40:41 -07:00
Michael Davidsaver
ede52d96b8 posix show mapping of epicsMutexId and uaddr passed to futex()
On Linux w/ GLIBC+NTPL useful to establish mapping between
args to futux syscall and epicsMutexId (and file+line of creation).
2019-06-26 09:40:41 -07:00
Michael Davidsaver
ceccafe823 mbbo/mbbiDirect number of bits as precision
Not really useful w/ RSRV/CA, but can be used by QSRV/PVA
to provide number of bits as meta-data.
2019-06-26 09:39:58 -07:00
Michael Davidsaver
f955199805 epicsTimerTest loosen test threshold 2019-06-26 09:38:48 -07:00
Michael Davidsaver
2af0c10470 debug epicsTimerTest 2019-06-26 09:38:48 -07:00
Michael Davidsaver
89f0f1338a ioc/db: consolidate callback state tracking
combine cbCtl and callbackIsInit.
use atomic ops to avoid false positive data races.
2019-06-26 09:38:48 -07:00
Michael Davidsaver
6ce8dfec01 libCom: timerQueueActive atomic exitFlag
quiet false positive data race
2019-06-26 09:38:48 -07:00
Michael Davidsaver
c1ab30142a sysconf /0 paranoia
Seems unlikely, but avoid any possibility to divide by zero.
2019-06-26 08:59:35 -07:00
Michael Davidsaver
2db2f1a53f Merge remote-tracking branch 'konrad/fix-compiler-warnings' into 3.15
* konrad/fix-compiler-warnings:
  epicsTime: rely on implicit copy constructor
  iocLogServer: check return values
  Fix potential buffer overflow in iocLogServer
  Fix weird use of strncpy
2019-06-24 18:21:32 -07:00
Michael Davidsaver
b811d3402f Merge remote-tracking branch 'konrad/dont-nuke-global-cac-thread-id-in-exit-handler' into 3.15
* konrad/dont-nuke-global-cac-thread-id-in-exit-handler:
  Remove cacExitHandler
2019-06-24 18:12:58 -07:00
Michael Davidsaver
784d619bde makeRPath allow multiple root directories
Allows handling of complex situations like a package
build where some libraries are in a staging area,
but will be copied to the same final location.

eg.

LINKER_ORIGIN_ROOT=/usr/lib/epics:/build/mymodule

Where build TOP is /build/mymodule
2019-06-24 15:56:33 -07:00
Michael Davidsaver
ea1b208c33 redo softIoc to be more c++y 2019-06-24 15:56:33 -07:00
Michael Davidsaver
87d5ca1619 rpath $ORIGIN doc 2019-06-24 10:36:34 -07:00
Michael Davidsaver
a81e261e23 iocsh trap arg. parsing errors 2019-06-23 19:43:34 -07:00
Michael Davidsaver
14440b2d9d more RTEMS join 2019-06-23 19:28:03 -07:00
Michael Davidsaver
93a96e33c0 dbChArrTest use dbUnitTest.h 2019-06-23 19:06:23 -07:00
Michael Davidsaver
57d2b143e9 update release notes 2019-06-23 19:06:23 -07:00
Michael Davidsaver
38999a971f document epicsThread.h 2019-06-23 19:06:23 -07:00
Michael Davidsaver
37a76b433a dbEvent simplify db_close_events() with join 2019-06-23 19:06:22 -07:00
Michael Davidsaver
01fa58f37b dbCa join worker 2019-06-23 19:06:22 -07:00
Michael Davidsaver
afc31f2f06 asCaStop() join worker thread 2019-06-23 19:06:22 -07:00
Michael Davidsaver
32b3eddb94 epicsThreadMustJoin() warn only on double self-join 2019-06-23 19:06:22 -07:00
Michael Davidsaver
4dcd6f37c6 update release notes 2019-06-23 16:18:43 -07:00
Michael Davidsaver
86a942872a epicsThreadTest check explicit join
Also remove all the sleeps to improve chances
of catching some kind of race.
2019-06-23 08:12:58 -07:00
Michael Davidsaver
9e5c63fb91 epicsThreadMustJoin() clear joinable flag
Clear so that repeated calls will error correctly.
Only well defined for self join.
2019-06-23 07:53:23 -07:00
Michael Davidsaver
5efce9ecc0 epicsThreadJoin() -> epicsThreadMustJoin() 2019-06-23 07:30:48 -07:00
Michael Davidsaver
a64cb4a877 update PVA modules 2019-06-17 17:48:41 -07:00
Andrew Johnson
e8db975e7f Initial implementation for VxWorks 6.9 and later
This almost seems too simple...
2019-06-17 14:33:28 -05:00
Andrew Johnson
e75a72ef76 VxWorks: Mark undetected underflow parse test as ToDo 2019-06-07 17:22:40 -05:00
Andrew Johnson
33e099a51b Fix VxWorks osiSockOptMcastLoop_t => char
Repairs osiSockTest
2019-06-07 17:21:18 -05:00
Andrew Johnson
d3a8a49552 Release Notes 2019-06-07 15:37:46 -05:00
Andrew Johnson
96998f55e0 Have VxWorks call tz2timezone() once clock is sync'd 2019-06-07 14:55:26 -05:00
Andrew Johnson
b57f02ece2 epicsTimeTo[GM]TM(): Allow pNSecDest==NULL 2019-06-07 13:26:24 -05:00
Andrew Johnson
b0db6568ea Replace EPICS_TIMEZONE envParam with EPICS_TZ
Adjust rtems_init() to use it.
2019-06-07 13:24:39 -05:00
Andrew Johnson
30812c23f0 Internal cleanup in osiClockTime.c 2019-06-07 13:17:35 -05:00
Andrew Johnson
5cfff383b2 Synchronization hook support for osiClockTime 2019-06-07 13:16:42 -05:00
Michael Davidsaver
048975ccc7 asLib more string size... 2019-06-05 16:33:55 +02:00
Andrew Johnson
345cfcffa8 Fix sync filter example in dbd.pod 2019-06-04 12:53:41 -05:00
Andrew Johnson
deb9dbcd77 Added decimation filter, documentation and tests 2019-06-04 12:23:13 -05:00
Michael Davidsaver
a83a85af7c asLib one short 2019-06-04 16:06:07 +02:00
Michael Davidsaver
932e9f3b21 asLib: asUseIP name lookup soft-fail 2019-06-04 15:56:51 +02:00
Michael Davidsaver
ac87fbac85 simplify e_flex/antelope path compute 2019-06-04 11:24:35 +02:00
Michael Davidsaver
72985505ef further no need to search for perl modules under bin 2019-06-04 11:24:35 +02:00
Michael Davidsaver
52b9c8b947 iocsh further on error
Split Scope into iocshContext and iocshScope
to separate per-thread and per-call state.
Error handling is per-call.
2019-05-27 21:24:58 -07:00
Bruce Hill
76506991da Fixed logic errors and added some prompts. 2019-05-27 20:12:48 -07:00
Michael Davidsaver
655c5bed92 osiClockTime Darwin doesn't use.
Darwin/osdTime.cpp unconditionally provides osdTimeGetCurrent()
and never calls ClockTime_Init().
2019-05-20 15:32:57 -07:00
Michael Davidsaver
2c99c36ef9 Merge remote-tracking branch 'lp-Com/timeopt' into 7.0
* lp-Com/timeopt:
  !gtMoreThanDefault -> useOsdGetCurrent
  generalTime short circuit current time
2019-05-20 13:49:10 -07:00
Andrew Johnson
6eb6cc0d80 Expand Release Note entry for as-hostname changes. 2019-05-13 14:52:10 -05:00
251304e280 use dynamic binding of vxWorks BSP functions because some BSPs don't provide them 2019-05-13 09:43:44 +02:00
Andrew Johnson
71d4d3ecbd epicsErrlogTest.c improvements
Instrument testEqInt() macro with caller's source line-number.
Added another epicsEvent to wait for the listeners to run.
Not guaranteed to fix all issues, but should be more reliable.
2019-05-09 15:03:56 -05:00
Andrew Johnson
86138fdd23 Fix make-tar.sh to work on MacOS too
The BSD version of tar doesn't support -a, and
requires -T instead of --files-from.
2019-05-09 11:51:26 -05:00
Ralph Lange
8c993405b4 doc/ca: clarify variable size array subscription
(cherry-picked from branch 3.15)
2019-05-09 17:32:05 +02:00
Ralph Lange
96259b7bdc doc/ca: clarify variable size array subscription 2019-05-09 17:28:36 +02:00
Michael Davidsaver
bf8ff4e5f1 !gtMoreThanDefault -> useOsdGetCurrent 2019-05-08 19:05:58 -07:00
Michael Davidsaver
73cdea5517 as-hostname address review comments 2019-05-08 19:03:25 -07:00
Martin Konrad
25576c316a Remove cacExitHandler
We need to ensure the allocated resources stick around until
the last instance using them doesn't need them anymore. Sharing
a raw pointer by exporting it as a global variable is not
compatible with cleaning up at all. For now we remove the
clean-up code.

Note: This fixes a segfault during IOC shutdown when using both
pyDevSup and pyepics. See the discussion on
https://epics.anl.gov/tech-talk/2019/msg00778.php for details.
2019-05-06 19:50:01 -04:00
Andrew Johnson
2d3de1916b Don't clear caClientCallbackThreadId in CA's exit handler 2019-05-06 12:22:34 -05:00
Ralph Lange
fe34c6f35e appveyor-ci: ANL Make install 4.1 -> 4.2.1 2019-05-03 15:34:37 +02:00
Ralph Lange
52cdfe0a44 appveyor-ci: use pre-installed AppVeyor MinGW 2019-05-03 15:34:01 +02:00
Ralph Lange
16ddcaeaed appveyor-ci: ANL Make install 4.1 -> 4.2.1 2019-05-03 15:30:59 +02:00
Ralph Lange
297206e247 appveyor-ci: use pre-installed AppVeyor MinGW 2019-05-03 15:29:07 +02:00
Michael Davidsaver
4d5a677239 use iocshSetError() 2019-05-02 20:38:45 -07:00
Michael Davidsaver
eba8a13a2c iocsh allow setting of error code 2019-05-02 20:38:45 -07:00
Michael Davidsaver
89c269e2d5 iocsh control error behavior 2019-05-02 20:38:45 -07:00
Michael Davidsaver
2e80a97da9 iocsh catch exceptions 2019-05-02 20:29:13 -07:00
Ralph Lange
3110322f8c appveyor-ci: use choco MinGW 5.3.0 to work around build problem
(fixes lp:1827225)
2019-05-02 12:09:09 +02:00
Ralph Lange
63bf8a8219 appveyor-ci: use choco MinGW 5.3.0 to work around build problem
(fixes lp:1827225)
2019-05-02 11:39:04 +02:00
Ralph Lange
ec7193d0be appveyor-ci: exclude some cygwin builds (broken compiler)
appveyor-ci: remove slack, add email and GitHub notifications
(cherry-picked from branch 7.0)
2019-04-30 15:53:50 +02:00
Ralph Lange
17dea964a6 appveyor-ci: remove slack, add email and GitHub notifications 2019-04-30 15:51:28 +02:00
Ralph Lange
12283ce25a appveyor-ci: exclude some cygwin builds (broken compiler) 2019-04-30 15:26:35 +02:00
Andrew Johnson
f486dba478 Add some epics-controls publishing instructions, incomplete 2019-04-26 13:53:24 -05:00
Martin Konrad
1f95d0db12 epicsTime: rely on implicit copy constructor
When a custom copy constructor is defined the assignment operator
also needs to be defined explicitly. For this simple class the
implicit copy ctor/assignment operator are sufficient, though. This
fixes a warning emitted by GCC9.
2019-04-25 11:00:39 -04:00
Martin Konrad
e02c5c3026 iocLogServer: check return values
No serious issues here just fixing some warnings.
2019-04-24 22:25:31 -04:00
Martin Konrad
8e9d75ad71 Fix potential buffer overflow in iocLogServer 2019-04-24 22:25:31 -04:00
Martin Konrad
630663caa8 Fix weird use of strncpy
Note: The old code was correct. This change just gets rid of
a bunch of warnings.
2019-04-24 22:25:31 -04:00
Andrew Johnson
7a84a1abba Update Base version numbers for next patch release 2019-04-23 16:23:20 -05:00
Andrew Johnson
a9dbd4dd39 Update libcom and base version numbers, no -DEV 2019-04-23 16:07:43 -05:00
Michael Davidsaver
ccf34ae3d0 update PVD and PVA 2019-04-17 14:17:37 -07:00
Andrew Johnson
f559c36a6f Update tagged modules: pvDatabase 4.4.2, pvaClient 4.5.0 2019-04-15 11:54:13 -05:00
Andrew Johnson
8217fa86fe Reimplement show-makefiles to display duplicates 2019-04-12 18:14:57 -05:00
Andrew Johnson
f0e118da91 Adjust warning message in RULES_BUILD to suggest cause 2019-04-12 18:13:55 -05:00
Andrew Johnson
5a55aa17d9 Update pvData and pvDatabase modules
Not updating pva2pva, the next 7.0.2.2 release should
keep the previous tagged version
2019-04-10 16:45:35 -05:00
Andrew Johnson
f79f2cf8fa Release Notes for commits since 7.0.2.1 2019-04-10 16:44:21 -05:00
Andrew Johnson
f0f7a1ef06 Move rules from modules/Makefile to new RULES_MODULES file 2019-04-10 16:16:12 -05:00
Andrew Johnson
1412abadf9 Move cvsclean and depclean to RULES_COMMON 2019-04-10 14:13:29 -05:00
Andrew Johnson
3a0371894b Checklist tweaks for 7.0.2.2 2019-04-10 13:24:09 -05:00
Andrew Johnson
e92a9ae426 Make submodule builds more generic
Adds PARENT_MODULE to detect when building a submodule.
RULES_TOP uses that to disable uninstall rules and abort instead of
deleting the parent's configure/ directory.
2019-04-10 12:13:33 -05:00
Andrew Johnson
3a5fb898d6 Move rules for cvsclean and depclean to RULES_DIRS
Fix FIND_TOOLS for submodules when EPICS_BASE not built
Add 'make help' for newer test targets
2019-04-08 17:50:19 -05:00
Michael Davidsaver
95cb81c286 generalTime short circuit current time
epicsTimeGetCurrent() is called frequently.
Unless more than the default provider is registered,
locking and going through the timeProvider list each
time is a waste.

Instead, short circuit to directly call the default
time current time provider unless a another has
been registered.
2019-03-10 16:36:54 -07:00
Michael Davidsaver
0e2d0cde5f skip RELEASE_TOPS 2019-03-06 17:51:52 -08:00
Michael Davidsaver
3e8f3a1ee9 configure: Don't hide any perl scripts being run 2019-03-06 16:14:55 -08:00
Martin Konrad
a9606dbf6e Add test for macro expansion in file names 2019-01-08 09:34:55 -05:00
Martin Konrad
409ee26fae Reduce scope of some variables 2019-01-08 09:34:55 -05:00
Martin Konrad
9a4787155c Convert substitutionName to std::string 2019-01-08 09:34:55 -05:00
Martin Konrad
84dba0d2b7 Use bool for more clarity 2019-01-08 09:34:55 -05:00
Martin Konrad
87f6c3dec9 Remove unneeded errlogFlush() 2019-01-08 09:34:55 -05:00
Martin Konrad
940814becf Manage psubFile with new/delete 2019-01-08 09:34:55 -05:00
Martin Konrad
68a1a529b2 Convert copy to std::string 2019-01-08 09:34:55 -05:00
Martin Konrad
ce38caf41b Use std::list for patternList
This improves type safety and readability.
2019-01-08 09:34:55 -05:00
Martin Konrad
f03f10e664 Convert patternNode.var to std::string 2019-01-08 09:34:55 -05:00
Martin Konrad
b4f4fb853d Convert fullname to std::string 2019-01-08 09:34:55 -05:00
Martin Konrad
b518ebe85b Convert inputFile.filename to std::string 2019-01-08 09:34:55 -05:00
Martin Konrad
e461d782f4 Simplify inputConstruct() 2019-01-08 09:34:55 -05:00
Martin Konrad
ef2a381e92 Use std::list for pathList
This improves type safety and readability.
2019-01-08 09:34:55 -05:00
Martin Konrad
265d4962a4 Use std::list for inputFileList
This improves type safety and readability.
2019-01-08 09:34:55 -05:00
Martin Konrad
db9267bbd5 Constructor for struct inputData 2019-01-08 09:34:55 -05:00
Martin Konrad
1cf3fa9ba9 Simplify catMacroReplacements()
This fixes lp:1810946 and lp:1810949.
2019-01-08 09:34:40 -05:00
Martin Konrad
3e8b0028dc Constructor for struct subInfo 2019-01-08 09:22:52 -05:00
Martin Konrad
d8f18c27f4 Add some const keywords 2019-01-08 09:22:52 -05:00
Martin Konrad
801c01b9b6 Convert MSI to C++ 2019-01-08 09:22:52 -05:00
Martin Konrad
0c1874bbfe Test expansion of empty patterns with MSI
This was subject to a regression in 3.15.6. See lp:1810946.
2019-01-08 09:22:40 -05:00
Michael Davidsaver
834e202671 missed a TOP 2019-01-03 20:44:50 -08:00
Michael Davidsaver
d38fcd5247 no need to search for perl modules under bin/ 2019-01-03 20:18:16 -08:00
Michael Davidsaver
d7841f407a drop unnecessary *ModuleDirs 2019-01-03 20:18:11 -08:00
Michael Davidsaver
49b323b93c avoided embedded TOP for non sub-modules 2019-01-03 20:17:58 -08:00
Michael Davidsaver
4f2228fb1d replace most internal getCurrent() -> getMonotonic()
every place where a time delta is computed, and then some.
2019-01-03 19:34:47 -08:00
Michael Davidsaver
8b9ad212c4 dbScan periodic scan use monotonic time 2019-01-03 19:34:42 -08:00
Michael Davidsaver
5087c4cb2f monotonic adapt to regular time APIs 2019-01-03 19:34:35 -08:00
Michael Davidsaver
f5194b2274 older binutils compat 2018-12-13 11:22:07 -08:00
Michael Davidsaver
7bdbded47d travis-ci test rpath $ORIGIN 2018-11-20 22:00:42 -08:00
Michael Davidsaver
84831e13e7 epicsGetExecName WIN32, Darwin, solaris, freebsd 2018-11-20 22:00:42 -08:00
Michael Davidsaver
32340584b4 epicsGetExecDir() paths relative to executable
For linux, enable softIoc to find .dbd relative to the executable
location.

The same could be done for other targets

*bsd
  may have symlink /proc/curproc/file
  fallback to sysctl() with KERN_PROC_PATHNAME

solaris
  getexecname()

mac
  _NSGetExecutablePath()

WIN32
  GetModuleFileName(NULL)

others
  out of luck...
2018-11-20 22:00:42 -08:00
Michael Davidsaver
4ee3cbf382 LINKER_USE_RPATH=ORIGIN
Use Linux specific linker trick to allow relocation
of built tree.

relative rpath

use $ORIGIN to reference libraries in other modules
by relative path.

fix rel. RPATH
2018-11-20 22:00:42 -08:00
Michael Davidsaver
dced29c475 asLib: test asUseIP 2018-11-14 20:03:55 -08:00
Michael Davidsaver
530eba133f as,rsrv: use real client IP instead of untrusted host name 2018-11-14 20:03:55 -08:00
Michael Davidsaver
f9092783f8 RTEMS thread join 2018-11-04 20:06:18 -08:00
Michael Davidsaver
149ab1186a epicsThread fix join 2018-11-04 20:06:18 -08:00
Michael Davidsaver
460e58e3e5 libCom "join" win32 threads
Wait for completion
2018-11-04 20:06:18 -08:00
Michael Davidsaver
c9dcab95a6 class epicsThread is joinable 2018-11-04 20:06:18 -08:00
Michael Davidsaver
d989c8fade libCom: joinable threads (posix only)
Add epicsThreadJoin() and epicsThreadOpts::joinable.
For compatibility, default threads aren't joinable
by default.

Currently only POSIX can join.
2018-11-04 20:06:18 -08:00
Michael Davidsaver
ca800fa57d libCom: add epicsThreadCreateOpt()
Variant of epicsThreadCreate() which accepts optional
arguments via a structure to allow for compatible
addition of new arguments.
2018-11-04 20:06:18 -08:00
1570 changed files with 83743 additions and 48869 deletions

View File

@@ -1,11 +1,18 @@
# AppVeyor configuration for EPICS Base
# Ralph Lange <ralph.lange@gmx.de>
# Copyright (c) 2016-2017 ITER Organization
# Appveyor configuration file for EPICS Base 7 builds
# (see also https://github.com/epics-base/ci-scripts)
# Version format
version: base-{branch}-{build}
#---------------------------------#
# build cache #
#---------------------------------#
# The AppVeyor cache allowance is way too small (1GB per account across all projects, branches and jobs)
# to be used for the dependency builds.
cache:
- C:\Users\appveyor\.tools
#---------------------------------#
# repository cloning #
#---------------------------------#
@@ -16,20 +23,14 @@ init:
- git config --global core.autocrlf true
# Set clone depth (do not fetch complete history)
clone_depth: 50
# Skipping commits affecting only specific files
skip_commits:
files:
- 'documentation/*'
- 'templates/*'
- '**/*.html'
- '**/*.md'
clone_depth: 5
#---------------------------------#
# build matrix configuration #
#---------------------------------#
image: Visual Studio 2015
# Build Configurations: dll/static, regular/debug
configuration:
- dynamic
@@ -37,29 +38,51 @@ configuration:
- dynamic-debug
- static-debug
# Environment variables: compiler toolchain
# Environment variables: compiler toolchain, base version, setup file, ...
environment:
matrix:
- TOOLCHAIN: 10.0
- TOOLCHAIN: 11.0
- TOOLCHAIN: 12.0
- TOOLCHAIN: 14.0
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
TOOLCHAIN: 2017
- TOOLCHAIN: cygwin
- TOOLCHAIN: mingw
# common / default variables for all jobs
SETUP_PATH: .ci-local:.ci
BASE: SELF
EPICS_TEST_IMPRECISE_TIMING: YES
# Platform: architecture
matrix:
- CMP: vs2019
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
- CMP: vs2017
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- CMP: vs2015
- CMP: vs2013
- CMP: vs2012
- CMP: vs2010
- CMP: gcc
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
# TODO: static linking w/ readline isn't working. Bypass auto-detect
COMMANDLINE_LIBRARY: EPICS
# Platform: processor architecture
platform:
- x86
- x64
# Matrix configuration: allow specific failing jobs
# Matrix configuration: exclude sets of jobs
matrix:
exclude:
# VS Express installs don't have the 64 bit compiler
# VS2012 and older installs don't have the 64 bit compiler
- platform: x64
TOOLCHAIN: 10.0
CMP: vs2012
- platform: x64
CMP: vs2010
# Exclude more jobs to reduce build time
# Skip 32-bit for "middle-aged" compilers
- platform: x86
CMP: vs2017
- platform: x86
CMP: vs2015
# MinGW debug builds use the same libraries, unlike VS
- configuration: dynamic-debug
CMP: gcc
- configuration: static-debug
CMP: gcc
#---------------------------------#
# building & testing #
@@ -67,13 +90,38 @@ matrix:
install:
- cmd: git submodule update --init --recursive
- cmd: .ci/appveyor-prepare.bat
- cmd: pip install git+https://github.com/mdavidsaver/ci-core-dumper#egg=ci-core-dumper
- cmd: python .ci/cue.py prepare
build_script:
- cmd: .ci/appveyor-make.bat
- cmd: python .ci/cue.py build
test_script:
- cmd: .ci/appveyor-make.bat runtests
- cmd: python -m ci_core_dumper install
- cmd: python .ci/cue.py -T 20M test
on_finish:
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- cmd: python .ci/cue.py -T 5M test-results
on_failure:
- cmd: python -m ci_core_dumper report
#---------------------------------#
# debugging #
#---------------------------------#
## if you want to connect by remote desktop to a failed build, uncomment these lines
## note that you will need to connect within the usual build timeout limit (60 minutes)
## so you may want to adjust the build matrix above to just build the one of interest
# print the connection info
#init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
# block a failed build (until the watchdog barks)
#on_failure:
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
#---------------------------------#
# notifications #
@@ -81,6 +129,9 @@ test_script:
notifications:
- provider: Slack
incoming_webhook:
secure: RYOm3FIUYeZGjWKaeTVKwq+C3fzK54AKwbmAoECED45mex3lN+8HmrC845a6mg9xPUJ/ND51RopWVaKDD9/UzaM0SO195RQLKqUTIUafiuM=
- provider: Email
to:
- core-talk@aps.anl.gov
on_build_success: false
- provider: GitHubPullRequest

144
.appveyor/epics-base-7.yml Normal file
View File

@@ -0,0 +1,144 @@
# Appveyor configuration file for EPICS Base 7 builds
# (see also https://github.com/epics-base/ci-scripts)
# branches to build
branches:
# whitelist
only:
- 7.0
- /R7\.0\.\d+.*/
# Version format
version: base-{branch}-{build}
#---------------------------------#
# build cache #
#---------------------------------#
# The AppVeyor cache allowance is way too small (1GB per account across all projects, branches and jobs)
# to be used for the dependency builds.
cache:
- C:\Users\appveyor\.tools
#---------------------------------#
# repository cloning #
#---------------------------------#
# Called at very beginning, before repo cloning
init:
# Set autocrlf to make batch files work
- git config --global core.autocrlf true
# Set clone depth (do not fetch complete history)
clone_depth: 5
#---------------------------------#
# build matrix configuration #
#---------------------------------#
image: Visual Studio 2015
# Build Configurations: dll/static, regular/debug
configuration:
- dynamic
- static
- dynamic-debug
- static-debug
# Environment variables: compiler toolchain, base version, setup file, ...
environment:
# common / default variables for all jobs
SETUP_PATH: .ci-local:.ci
BASE: SELF
EPICS_TEST_IMPRECISE_TIMING: YES
matrix:
- CMP: vs2019
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
- CMP: vs2017
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- CMP: vs2015
- CMP: vs2013
- CMP: vs2012
- CMP: vs2010
- CMP: gcc
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
# TODO: static linking w/ readline isn't working. Bypass auto-detect
COMMANDLINE_LIBRARY: EPICS
# Platform: processor architecture
platform:
- x86
- x64
# Matrix configuration: exclude sets of jobs
matrix:
exclude:
# VS2012 and older installs don't have the 64 bit compiler
- platform: x64
CMP: vs2012
- platform: x64
CMP: vs2010
# Exclude more jobs to reduce build time
# Skip 32-bit for "middle-aged" compilers
- platform: x86
CMP: vs2017
- platform: x86
CMP: vs2015
# MinGW debug builds use the same libraries, unlike VS
- configuration: dynamic-debug
CMP: gcc
- configuration: static-debug
CMP: gcc
#---------------------------------#
# building & testing #
#---------------------------------#
install:
- cmd: git submodule update --init --recursive
- cmd: pip install git+https://github.com/mdavidsaver/ci-core-dumper#egg=ci-core-dumper
- cmd: python .ci/cue.py prepare
build_script:
- cmd: python .ci/cue.py build
test_script:
- cmd: python -m ci_core_dumper install
- cmd: python .ci/cue.py -T 20M test
on_finish:
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- cmd: python .ci/cue.py -T 5M test-results
on_failure:
- cmd: python -m ci_core_dumper report
#---------------------------------#
# debugging #
#---------------------------------#
## if you want to connect by remote desktop to a failed build, uncomment these lines
## note that you will need to connect within the usual build timeout limit (60 minutes)
## so you may want to adjust the build matrix above to just build the one of interest
# print the connection info
#init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
# block a failed build (until the watchdog barks)
#on_failure:
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
#---------------------------------#
# notifications #
#---------------------------------#
notifications:
- provider: Email
to:
- core-talk@aps.anl.gov
on_build_success: false
- provider: GitHubPullRequest

1
.ci Submodule

Submodule .ci added at 0e93b70855

View File

@@ -1,137 +0,0 @@
:: Universal build script for AppVeyor (https://ci.appveyor.com/)
:: Environment:
:: TOOLCHAIN - toolchain version [10.0/11.0/12.0/14.0/2017/cygwin/mingw]
:: CONFIGURATION - determines EPICS build [dynamic/static]
:: PLATFORM - architecture [x86/x64]
::
:: All command line args are passed to make
Setlocal EnableDelayedExpansion
set "ST="
if /i "%CONFIGURATION%"=="static" set ST=-static
set OS=64BIT
if "%PLATFORM%"=="x86" set OS=32BIT
echo [INFO] Platform: %OS%
:: Use parallel make, except for 3.14
set "MAKEARGS=-j2 -Otarget"
if "%APPVEYOR_REPO_BRANCH%"=="3.14" set MAKEARGS=
if "%TOOLCHAIN%"=="cygwin" (
set "MAKE=make"
if "%OS%"=="64BIT" (
set "EPICS_HOST_ARCH=cygwin-x86_64"
set "INCLUDE=C:\cygwin64\include;%INCLUDE%"
set "PATH=C:\cygwin64\bin;%PATH%"
echo [INFO] Cygwin Toolchain 64bit
) else (
set "EPICS_HOST_ARCH=cygwin-x86"
set "INCLUDE=C:\cygwin\include;%INCLUDE%"
set "PATH=C:\cygwin\bin;%PATH%"
echo [INFO] Cygwin Toolchain 32bit
)
echo [INFO] Compiler Version
gcc -v
goto Finish
)
if "%TOOLCHAIN%"=="mingw" (
set "MAKE=mingw32-make"
if "%OS%"=="64BIT" (
set "EPICS_HOST_ARCH=windows-x64-mingw"
set "INCLUDE=C:\tools\mingw64\include;%INCLUDE%"
set "PATH=C:\tools\mingw64\bin;%PATH%"
echo [INFO] MinGW Toolchain 64bit
) else (
set "EPICS_HOST_ARCH=win32-x86-mingw"
set "INCLUDE=C:\tools\mingw32\include;%INCLUDE%"
set "PATH=C:\tools\mingw32\bin;%PATH%"
echo [INFO] MinGW Toolchain 32bit
)
echo [INFO] Compiler Version
gcc -v
goto Finish
)
set "VSINSTALL=C:\Program Files (x86)\Microsoft Visual Studio %TOOLCHAIN%"
if not exist "%VSINSTALL%\" set "VSINSTALL=C:\Program Files (x86)\Microsoft Visual Studio\%TOOLCHAIN%\Community"
if not exist "%VSINSTALL%\" goto MSMissing
set "MAKE=C:\tools\make"
echo [INFO] APPVEYOR_BUILD_WORKER_IMAGE=%APPVEYOR_BUILD_WORKER_IMAGE%
if "%OS%"=="64BIT" (
set EPICS_HOST_ARCH=windows-x64%ST%
:: VS 2017
if exist "%VSINSTALL%\VC\Auxiliary\Build\vcvars64.bat" (
call "%VSINSTALL%\VC\Auxiliary\Build\vcvars64.bat"
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
goto MSFound
)
if exist "%VSINSTALL%\VC\vcvarsall.bat" (
call "%VSINSTALL%\VC\vcvarsall.bat" amd64
where cl
if !ERRORLEVEL! NEQ 0 (
call "%VSINSTALL%\VC\vcvarsall.bat" x86_amd64
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
)
goto MSFound
)
if exist "%VSINSTALL%\VC\bin\amd64\vcvars64.bat" (
call "%VSINSTALL%\VC\bin\amd64\vcvars64.bat"
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
goto MSFound
)
) else (
set EPICS_HOST_ARCH=win32-x86%ST%
:: VS 2017
if exist "%VSINSTALL%\VC\Auxiliary\Build\vcvars32.bat" (
call "%VSINSTALL%\VC\Auxiliary\Build\vcvars32.bat"
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
goto MSFound
)
if exist "%VSINSTALL%\VC\vcvarsall.bat" (
call "%VSINSTALL%\VC\vcvarsall.bat" x86
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
goto MSFound
)
if exist "%VSINSTALL%\VC\bin\vcvars32.bat" (
call "%VSINSTALL%\VC\bin\vcvars32.bat"
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
goto MSFound
)
if exist "%VSINSTALL%\Common7\Tools\vsvars32.bat" (
call "%VSINSTALL%\Common7\Tools\vsvars32.bat"
where cl
if !ERRORLEVEL! NEQ 0 goto MSMissing
goto MSFound
)
)
:MSMissing
echo [INFO] Installation for MSVC Toolchain %TOOLCHAIN% / %OS% seems to be missing
exit 1
:MSFound
echo [INFO] Microsoft Visual Studio Toolchain %TOOLCHAIN%
echo [INFO] Compiler Version
cl
:Finish
echo [INFO] EPICS_HOST_ARCH: %EPICS_HOST_ARCH%
echo [INFO] Make version
%MAKE% --version
echo [INFO] Perl version
perl --version
%MAKE% %MAKEARGS% %*

View File

@@ -1,70 +0,0 @@
:: Build script for AppVeyor (https://ci.appveyor.com/)
:: Environment:
:: TOOLCHAIN - Toolchain Version [9.0/10.0/11.0/12.0/14.0/cygwin/mingw]
:: CONFIGURATION - determines EPICS build [dynamic/static, -debug]
:: PLATFORM - "x86" -> use 32bit architecture
::
:: Prepares an Appveyor build by excuting the following steps
:: - Set up configure\CONFIG_SITE for static vs. dynamic build
:: - Install Cygwin / Mingw (TOOLCHAIN setting) in the in the appropriate flavor
:: - Download and install Make-4.1 from EPICS download page
Setlocal EnableDelayedExpansion
set OS=64BIT
if "%PLATFORM%"=="x86" set OS=32BIT
echo [INFO] Platform: %OS%
if "%TOOLCHAIN%"=="cygwin" (
echo.%CONFIGURATION% | findstr /C:"static">nul && (
echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
echo STATIC_BUILD=YES>> configure\CONFIG_SITE
echo [INFO] EPICS set up for static build
) || (
echo [INFO] EPICS set up for dynamic build
)
echo.%CONFIGURATION% | findstr /C:"debug">nul && (
echo HOST_OPT=NO>> configure\CONFIG_SITE
echo [INFO] EPICS set up for debug build
) || (
echo [INFO] EPICS set up for optimized build
)
if "%OS%"=="64BIT" (
echo [INFO] Installing Cygwin 64bit and dependencies
@powershell -Command "(new-object net.webclient).DownloadFile('http://www.cygwin.com/setup-x86_64.exe', 'C:\cygwin64\setup-x86_64.exe')"
C:\cygwin64\setup-x86_64.exe -q -P "libreadline-devel,libncursesw-devel"
) else (
echo [INFO] Installing Cygwin 32bit and dependencies
@powershell -Command "(new-object net.webclient).DownloadFile('http://www.cygwin.com/setup-x86.exe', 'C:\cygwin\setup-x86.exe')"
C:\cygwin\setup-x86.exe -q -P "libreadline-devel,libncursesw-devel"
)
)
if "%TOOLCHAIN%"=="mingw" (
echo.%CONFIGURATION% | findstr /C:"static">nul && (
echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
echo STATIC_BUILD=YES>> configure\CONFIG_SITE
echo [INFO] EPICS set up for static build
) || (
echo [INFO] EPICS set up for dynamic build
)
echo.%CONFIGURATION% | findstr /C:"debug">nul && (
echo HOST_OPT=NO>> configure\CONFIG_SITE
echo [INFO] EPICS set up for debug build
) || (
echo [INFO] EPICS set up for optimized build
)
if "%OS%"=="64BIT" (
echo [INFO] Installing MinGW 64bit
cinst mingw || cinst mingw
) else (
echo [INFO] Installing MinGW 32bit
cinst mingw --x86 || cinst mingw --x86
)
)
echo [INFO] Installing Make 4.1
curl -fsS --retry 3 -o C:\tools\make-4.1.zip https://epics.anl.gov/download/tools/make-4.1-win64.zip
cd \tools
"C:\Program Files\7-Zip\7z" e make-4.1.zip

View File

@@ -1,8 +0,0 @@
#!/bin/sh
#
# Checkout submodules on their appropriate branches
#
git submodule foreach '\
git checkout `git config -f $toplevel/.gitmodules submodule.$name.branch` && \
git pull '

View File

@@ -1,77 +0,0 @@
#!/bin/sh
set -e -x
die() {
echo "$1" >&2
exit 1
}
CACHEKEY=1
export EPICS_HOST_ARCH=`perl src/tools/EpicsHostArch.pl`
[ -e configure/os/CONFIG_SITE.Common.linux-x86 ] || die "Wrong location: $PWD"
case "$CMPLR" in
clang)
echo "Host compiler is clang"
cat << EOF >> configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH
GNU = NO
CMPLR_CLASS = clang
CC = clang
CCC = clang++
EOF
;;
*) echo "Host compiler is default";;
esac
if [ "$STATIC" = "YES" ]
then
echo "Build static libraries/executables"
cat << EOF >> configure/CONFIG_SITE
SHARED_LIBRARIES=NO
STATIC_BUILD=YES
EOF
fi
# requires wine and g++-mingw-w64-i686
if [ "$WINE" = "32" ]
then
echo "Cross mingw32"
sed -i -e '/CMPLR_PREFIX/d' configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
cat << EOF >> configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
CMPLR_PREFIX=i686-w64-mingw32-
EOF
cat << EOF >> configure/CONFIG_SITE
CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw
EOF
fi
# set RTEMS to eg. "4.9" or "4.10"
if [ -n "$RTEMS" ]
then
echo "Cross RTEMS${RTEMS} for pc386"
curl -L "https://github.com/mdavidsaver/rsb/releases/download/20171203-${RTEMS}/i386-rtems${RTEMS}-trusty-20171203-${RTEMS}.tar.bz2" \
| tar -C / -xmj
sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' configure/os/CONFIG_SITE.Common.RTEMS
cat << EOF >> configure/os/CONFIG_SITE.Common.RTEMS
RTEMS_VERSION=$RTEMS
RTEMS_BASE=$HOME/.rtems
EOF
cat << EOF >> configure/CONFIG_SITE
CROSS_COMPILER_TARGET_ARCHS += RTEMS-pc386-qemu
EOF
# find local qemu-system-i386
echo -n "Using QEMU: "
type qemu-system-i386 || echo "Missing qemu"
fi
make -j2 $EXTRA
if [ "$TEST" != "NO" ]
then
make -j2 tapfiles
make -s test-results
fi

8
.editorconfig Normal file
View File

@@ -0,0 +1,8 @@
# Documentation for this file: https://EditorConfig.org
root = true
# Unix-style newlines ending every file,
# as some compilers complain about files not ending in newline
[*]
insert_final_newline = true

32
.gitattributes vendored
View File

@@ -1,5 +1,27 @@
.ci/ export-ignore
.tools/ export-ignore
.appveyor.yml export-ignore
.travis.yml export-ignore
README export-subst
.appveyor.yml export-ignore
.appveyor/ export-ignore
.ci/ export-ignore
.github/ export-ignore
.gitmodules export-ignore
.readthedocs.yml export-ignore
.tools/ export-ignore
README export-subst
#Which files need CRLF handling
# default to automatic
* text=auto
# batch script parser on windows requires CRLF
*.bat text eol=crlf
# extensions for scripts which may be executable via. "#!..." must have LF
*.pl text eol=lf
*.plt text eol=lf
*.sh text eol=lf
*.cmd text eol=lf
# .cmd in unexpanded templates
*.cmd@* text eol=lf
# executable scripts w/o extensions
modules/ca/src/client/S99caRepeater@ text eol=lf
modules/libcom/src/log/S99logServer@ text eol=lf
startup/EpicsHostArch text eol=lf

22
.github/codeql/config.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: "CodeQL Config"
# Queries and the suites they belong to are documented at
# https://codeql.github.com/codeql-query-help/cpp/
queries:
- uses: security-and-quality
# Choose the above from 3 query suites:
# default
# The default set of queries
# security-extended
# `default` suite plus lower severity and precision queries
# security-and-quality
# `security-extended`, plus maintainability and reliability queries
query-filters:
-
exclude:
id: cpp/use-of-goto
-
exclude:
problem.severity: recommendation

View File

@@ -0,0 +1,13 @@
name: Check EditorConfig
on:
push:
pull_request:
jobs:
editorconfig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: EditorConfig-Action
uses: greut/eclint-action@v0

308
.github/workflows/ci-scripts-build.yml vendored Normal file
View File

@@ -0,0 +1,308 @@
# .github/workflows/ci-scripts-build.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
# This is YAML - indentation levels are crucial
# Workflow name, shared by all branches
name: Base
# Trigger on pushes and PRs to any branch
on:
push:
paths-ignore:
- 'documentation/*'
- 'startup/*'
- '.appveyor/*'
- '.tools/*'
- '.gitattributes'
- '**/*.html'
- '**/*.md'
pull_request:
paths-ignore:
- 'documentation/*'
- 'startup/*'
- '.appveyor/*'
- '.tools/*'
- '.gitattributes'
- '**/*.html'
- '**/*.md'
workflow_dispatch:
env:
SETUP_PATH: .ci-local:.ci
BASE: SELF
EPICS_TEST_IMPRECISE_TIMING: YES
jobs:
native:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
# Set environment variables from matrix parameters
env:
CMP: ${{ matrix.cmp }}
BCFG: ${{ matrix.configuration }}
CI_CROSS_TARGETS: ${{ matrix.cross }}
EXTRA: ${{ matrix.extra }}
TEST: ${{ matrix.test }}
strategy:
fail-fast: false
matrix:
# Job names also name artifacts, character limitations apply
include:
- os: ubuntu-22.04
cmp: gcc-12
name: "Ub-22 gcc-12 c++20 Werror"
# Turn all warnings into errors,
# except for those we could not fix (yet).
# Remove respective -Wno-error=... flag once it is fixed.
extra: "CMD_CXXFLAGS=-std=c++20
CMD_CPPFLAGS='-fdiagnostics-color
-fstack-protector-strong
-Wformat
-Werror
-Werror=format-security
-Wno-error=deprecated-declarations
-Wno-error=stringop-truncation
-Wno-error=restrict
-Wno-error=sizeof-pointer-memaccess
-Wno-error=nonnull
-Wno-error=dangling-pointer
-Wno-error=format-overflow
-Wno-error=stringop-overread
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
CMD_LDFLAGS=-Wl,-z,relro"
- os: ubuntu-20.04
cmp: gcc
configuration: default
cross: "windows-x64-mingw"
name: "Ub-20 gcc + MinGW"
- os: ubuntu-20.04
cmp: gcc
configuration: static
cross: "windows-x64-mingw"
name: "Ub-20 gcc + MinGW, static"
- os: ubuntu-20.04
cmp: gcc
configuration: static
extra: "CMD_CXXFLAGS=-std=c++11"
name: "Ub-20 gcc C++11, static"
- os: ubuntu-20.04
cmp: gcc
configuration: static
extra: "CMD_CFLAGS=-funsigned-char CMD_CXXFLAGS=-funsigned-char"
name: "Ub-20 gcc unsigned char"
- os: ubuntu-20.04
cmp: clang
configuration: default
name: "Ub-20 clang"
- os: ubuntu-20.04
cmp: clang
configuration: default
extra: "CMD_CXXFLAGS=-std=c++11"
name: "Ub-20 clang C++11"
- os: ubuntu-20.04
cmp: gcc
configuration: default
cross: "RTEMS-pc686-qemu@5"
name: "Ub-20 gcc + RT-5.1 pc686"
- os: ubuntu-20.04
cmp: gcc
configuration: default
cross: "RTEMS-beatnik@5"
test: NO
name: "Ub-20 gcc + RT-5.1 beatnik"
- os: ubuntu-20.04
cmp: gcc
configuration: default
cross: "RTEMS-xilinx_zynq_a9_qemu@5"
test: NO
name: "Ub-20 gcc + RT-5.1 xilinx_zynq_a9_qemu"
- os: ubuntu-20.04
cmp: gcc
configuration: default
cross: "RTEMS-uC5282@5"
test: NO
name: "Ub-20 gcc + RT-5.1 uC5282"
- os: ubuntu-20.04
cmp: gcc
configuration: default
name: "Ub-20 gcc + RT-4.10"
cross: "RTEMS-pc386-qemu@4.10"
test: NO
- os: ubuntu-20.04
cmp: gcc
configuration: default
name: "Ub-20 gcc + RT-4.9"
cross: "RTEMS-pc386-qemu@4.9"
- os: macos-latest
cmp: clang
configuration: default
name: "MacOS clang"
- os: windows-2019
cmp: vs2019
configuration: debug
name: "Win2019 MSC-19"
extra: "CMD_CXXFLAGS=-analysis"
- os: windows-2019
cmp: vs2019
configuration: static-debug
name: "Win2019 MSC-19, static"
extra: "CMD_CXXFLAGS=-analysis"
- os: windows-2019
cmp: vs2019
configuration: debug
name: "Win2019 MSC-19, debug"
- os: windows-2019
cmp: gcc
configuration: default
name: "Win2019 mingw"
# Cross builds
- os: ubuntu-latest
cmp: gcc
configuration: default
name: "Cross linux-aarch64"
cross: linux-aarch64
- os: ubuntu-latest
cmp: gcc
configuration: default
name: "Cross linux-arm gnueabi"
cross: linux-arm@arm-linux-gnueabi
- os: ubuntu-latest
cmp: gcc
configuration: default
name: "Cross linux-arm gnueabihf"
cross: linux-arm@arm-linux-gnueabihf
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Automatic core dumper analysis
uses: mdavidsaver/ci-core-dumper@master
- name: "apt-get install"
run: |
sudo apt-get update
sudo apt-get -y install qemu-system-x86 g++-mingw-w64-x86-64 gdb
if: runner.os == 'Linux'
- name: Prepare and compile dependencies
run: python .ci/cue.py prepare
- name: Build main module
run: python .ci/cue.py build
- name: Run main module tests
run: python .ci/cue.py -T 60M test
- name: Upload tapfiles Artifact
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: tapfiles ${{ matrix.name }}
path: '**/O.*/*.tap'
if-no-files-found: ignore
- name: Collect and show test results
if: ${{ always() }}
run: python .ci/cue.py -T 5M test-results
docker:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
# Set environment variables from matrix parameters
env:
CMP: ${{ matrix.cmp }}
BCFG: ${{ matrix.configuration }}
EXTRA: ${{ matrix.extra }}
TEST: ${{ matrix.test }}
strategy:
fail-fast: false
matrix:
# Job names also name artifacts, character limitations apply
include:
#- name: "CentOS-7"
# image: centos:7
# cmp: gcc
# configuration: default
- name: "Fedora-33"
image: fedora:33
cmp: gcc
configuration: default
- name: "Fedora-latest"
image: fedora:latest
cmp: gcc
configuration: default
steps:
- name: "Build newer Git"
# actions/checkout@v2 wants git >=2.18
# centos:7 has 1.8
if: matrix.image=='centos:7'
run: |
yum -y install curl make gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
curl https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz | tar -xz
cd git-*
make -j2 prefix=/usr/local all
make prefix=/usr/local install
cd ..
rm -rf git-*
type -a git
git --version
- name: "Redhat setup"
run: |
dnfyum() {
dnf -y "$@" || yum -y "$@"
return $?
}
dnfyum install python3 gdb make perl gcc-c++ glibc-devel readline-devel ncurses-devel perl-devel perl-Test-Simple
git --version || dnfyum install git
# rather than just bite the bullet and link python3 -> python,
# people would rather just break all existing scripts...
[ -e /usr/bin/python ] || ln -sf python3 /usr/bin/python
python --version
- uses: actions/checkout@v4
with:
submodules: true
- name: Automatic core dumper analysis
uses: mdavidsaver/ci-core-dumper@master
if: matrix.image!='centos:7'
- name: Automatic core dumper analysis
uses: mdavidsaver/ci-core-dumper@node16
if: matrix.image=='centos:7'
- name: Prepare and compile dependencies
run: python .ci/cue.py prepare
- name: Build main module
run: python .ci/cue.py build
- name: Run main module tests
run: python .ci/cue.py -T 20M test
- name: Upload tapfiles Artifact
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: tapfiles ${{ matrix.name }}
path: '**/O.*/*.tap'
if-no-files-found: ignore
- name: Collect and show test results
if: ${{ always() }}
run: python .ci/cue.py -T 5M test-results

64
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: "CodeQL"
on:
push:
branches: 7.0
tags: 'R7.0.*'
pull_request:
branches: 7.0
paths-ignore:
- '.appveyor/*'
- '.tools/*'
- 'documentation/*'
- 'startup/*'
- '**/*.md'
- '**/*.html'
jobs:
analyze:
name: Analyze
runs-on:
- ubuntu-latest
# - windows-latest
# Supported by CodeQL which would check the Windows
# port, but needs more work here to set it up
permissions:
# Required for all workflows:
security-events: write
strategy:
fail-fast: false
matrix:
language: [ cpp ]
steps:
- name: Checkout Repositories
uses: actions/checkout@v4
with:
submodules: false
- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install --yes libreadline-dev
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/config.yml
- name: Build C/C++
run: |
echo '*** Building with these versions >>>'
g++ --version
make --version
perl --version
echo '<<<'
make -sj2 || echo '*** Ignoring build failure for CodeQL ***'
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{ matrix.language }}"

5
.gitignore vendored
View File

@@ -3,6 +3,7 @@
/lib/
/db/
/dbd/
/doc/
/html/
/include/
/templates/
@@ -11,6 +12,10 @@
/modules/Makefile.local
O.*/
/QtC-*
/.qtc_*
/.vscode/
*.orig
*.log
.*.swp
.DS_Store
.iocsh_history

4
.gitmodules vendored
View File

@@ -22,3 +22,7 @@
path = modules/pva2pva
url = https://github.com/epics-base/pva2pva
branch = master
[submodule ".ci"]
path = .ci
url = https://github.com/epics-base/ci-scripts
branch = master

36
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,36 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
build:
os: ubuntu-22.04
tools:
python: "3.9"
apt_packages:
- graphviz
- rsync
jobs:
pre_build:
- make inc
- make -C documentation rtd
# Build documentation in the documentation/O.Common directory with Sphinx
sphinx:
configuration: documentation/O.Common/rtd-src/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF and ePub
#formats: []
submodules:
exclude: all
python:
install:
- requirements: documentation/requirements.txt

102
.tools/adjustver.py Executable file
View File

@@ -0,0 +1,102 @@
#!/usr/bin/env python3
import logging
import sys
import re
from io import StringIO
_log = logging.getLogger(__name__)
def main(args):
logging.basicConfig(level=args.level)
if args.dev is True:
actions=[
('DEVELOPMENT_FLAG', '1'),
('DEV_SNAPSHOT', '-DEV'),
]
elif args.dev is False:
actions=[
('DEVELOPMENT_FLAG', '0'),
('DEV_SNAPSHOT', ''),
]
elif args.version:
M=re.match(r'R?(\d+).(\d+).(\d+)(?:.(\d+))?(-.*)?', args.version)
actions=[
('SITE_VERSION', None),
('SHORT_VERSION', None),
('MINOR_VERSION', M[2]),
('REVISION', M[2]),
('MODIFICATION', M[3]),
('MAINTENANCE_VERSION', M[3]),
('PATCH_LEVEL', M[4] or '0'),
('DEVELOPMENT_FLAG', '1' if (M[5] or '').upper().endswith('-DEV') else '0'),
('DEV_SNAPSHOT', M[5] or ''),
('MAJOR_VERSION', M[1]),
('VERSION', M[1]), # plain _VERSION must be last to resolve ambiguity
]
elif args.dry_run:
_log.debug('Print existing')
for fname in args.conf:
print('# ', fname)
with open(fname, 'r') as F:
sys.stdout.write(F.read())
return
else:
print('One of --version, --release, --dev, or --dry-run is required')
sys.exit(1)
for name, val in actions:
_log.debug('Pattern "%s" -> "%s"', name, val)
for fname in args.conf:
OUT=StringIO()
with open(fname, 'r') as F:
for line in F:
_log.debug('Line: %s', repr(line))
for name, val in actions:
M = re.match(r'(\s*[A-Z_]+' + name + r'\s*=[\t ]*)(\S*)(\s*)', line)
if M and val is None:
_log.debug('Ignore')
OUT.write(line)
break
elif M:
_log.debug(' Match %s -> %s', M.re.pattern, M.groups())
OUT.write(M[1]+val+M[3])
break
else:
_log.debug('No match')
OUT.write(line)
if args.dry_run:
print('# ', fname)
print(OUT.getvalue())
else:
with open(fname, 'w') as F:
F.write(OUT.getvalue())
def getargs():
from argparse import ArgumentParser
P = ArgumentParser()
P.add_argument('-n','--dry-run', action='store_true', default=False)
P.add_argument('-d','--debug', dest='level', action='store_const',
const=logging.DEBUG, default=logging.INFO)
P.add_argument('-V', '--version', help='A version in R1.2.3-xyz or 1.2.3 form')
P.add_argument('-D', '--dev', action='store_true', default=None)
P.add_argument('-R', '--release', dest='dev', action='store_false')
P.add_argument('conf', nargs='+',
help='A configure/CONFIG_*_VERSION file name')
return P
if __name__=='__main__':
main(getargs().parse_args())

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
#
# Make tar for git repo w/ one level of sub modules.
#
@@ -9,43 +9,91 @@ die() {
exit 1
}
TOPREV="$1"
FINALTAR="$2"
PREFIX="$3"
maybedie() {
if [ "$DEVMODE" ]; then
echo "Warning: $1" >&2
else
echo "Error: $1" >&2
exit 1
fi
}
if ! [ "$TOPREV" ]
then
usage() {
cat <<EOF >&2
usage: $0 [rev] [outfile.tar.gz] [prefix/]
usage: $0 [-v] [-d] <rev> [<outfile> [<prefix>]]
<rev> may be any git revision spec. (tag, branch, or commit id).
<rev> may be any git revision spec. (tag or, using -d, branch or commit id).
Output file may be .tar.gz, .tar.bz2, or any extension supported by "tar -a".
If output file name is omitted, "base-<rev>.tar.gz" will be used.
If <prefix> is omitted, the default prefix is "base-<rev>/".
If provided, <outfile> must end with ".tar", ".tar.gz" or ".tar.bz2".
If <outfile> is omitted, "base-<rev>.tar.gz" will be used.
If provided, <prefix> must end with "/". If <prefix> is omitted,
the default is "base-<rev>/".
Options:
-v Enable verbose prints
-d Enable permissive developer mode
EOF
exit 1
fi
}
[ "$FINALTAR" ] || FINALTAR="base-$TOPREV.tar.gz"
[ "$PREFIX" ] || PREFIX="base-$TOPREV/"
export DEVMODE=
while getopts "vd" OPT
do
case "$OPT" in
v) set -x;;
d) DEVMODE=1;;
?) echo "Unknown option"
usage;;
esac
done
shift $(($OPTIND - 1))
TOPREV="$1"
FINALTAR="$2"
PREFIX="${3:-}"
[ "$TOPREV" ] || usage
case "$FINALTAR" in
"")
TAROPT=-z
FINALTAR="base-$TOPREV.tar.gz"
;;
*.tar)
TAROPT=""
;;
*.tar.gz)
TAROPT=-z
;;
*.tar.bz2)
TAROPT=-j
;;
*)
die "outfile must end with '.tar.gz' or '.tar.bz2'"
;;
esac
case "$PREFIX" in
*/) ;;
*) die "Prefix must end with '/'";;
"")
PREFIX="base-$TOPREV/"
;;
*/)
;;
*)
die "Prefix must end with '/'"
;;
esac
# Check for both <tag> and R<tag>
if [ "$TOPREV" = "HEAD" ]
then
true
elif ! [ `git tag -l $TOPREV` ]
if ! [ `git tag -l $TOPREV` ]
then
if [ `git tag -l R$TOPREV` ]
then
TOPREV="R$TOPREV"
else
die "No tags exist '$TOPREV' or 'R$TOPREV'"
maybedie "No tags exist '$TOPREV' or 'R$TOPREV'"
fi
fi
@@ -66,11 +114,17 @@ git archive --prefix=$PREFIX $TOPREV | tar -C "$TDIR"/tar -x
#
# sub-modules appear in tree as eg.:
# 160000 commit c3a6cfcf0dad4a4eeecf59b474710d06ff3eb68a modules/ca
git ls-tree -r $TOPREV | awk '/^[0-9]+ commit / {print $3, $4}' | \
git ls-tree -r $TOPREV | \
awk '/^[0-9]+ commit / && $4 != ".ci" {print $3, $4}' | \
while read HASH MODDIR
do
echo "Visiting $HASH $MODDIR"
git -C $MODDIR archive --prefix=${PREFIX}${MODDIR}/ $HASH | tar -C "$TDIR"/tar -x
if [ -e $MODDIR/.git ]
then
git -C $MODDIR archive --prefix=${PREFIX}${MODDIR}/ $HASH | tar -C "$TDIR"/tar -x
else
maybedie " Submodule not checked out."
fi
done
# make a list of files copied and filter out undesirables
@@ -82,13 +136,20 @@ sed -i -e 's|^\./||' "$TDIR"/list.1
# Exclude files
sed \
-e '/\/\.\?ci\//d' \
-e '/\/\.tools\//d' \
-e '/\/jenkins\//d' \
-e '/\/\.git/d' \
-e '/\/\.project$/d' \
-e '/\/\.travis\.yml$/d' \
-e '/\/\.appveyor\.yml$/d' \
-e '/\/\.appveyor\//d' \
-e '/\/\.ci-local\//d' \
-e '/\/\.ci\//d' \
-e '/\/\.cproject$/d' \
-e '/\/\.github\//d' \
-e '/\/\.gitmodules$/d' \
-e '/\/\.hgtags$/d' \
-e '/\/\.lgtm\.yml$/d' \
-e '/\/\.project$/d' \
-e '/\/\.readthedocs\.yml$/d' \
-e '/\/\.tools\//d' \
-e '/\/\.travis\.yml$/d' \
-e '/\/jenkins\//d' \
"$TDIR"/list.1 > "$TDIR"/list.2
if ! diff -U 0 "$TDIR"/list.1 "$TDIR"/list.2
@@ -97,16 +158,14 @@ then
fi
# Use the filtered list to build the final tar
# The -a option chooses compression automatically based on output file name.
tar -C "$TDIR"/tar --files-from="$TDIR"/list.2 -caf "$FINALTAR"
tar -c $TAROPT -C "$TDIR"/tar -T "$TDIR"/list.2 -f "$FINALTAR"
echo "Wrote $FINALTAR"
tar -taf "$FINALTAR" > "$TDIR"/list.3
tar -t $TAROPT -f "$FINALTAR" > "$TDIR"/list.3
# make sure we haven't picked up anything extra
if ! diff -u "$TDIR"/list.2 "$TDIR"/list.3
then
echo "Oops! Tarfile diff against plan shown above"
die "Oops! Tarfile diff against plan shown above"
fi

View File

@@ -1,27 +0,0 @@
sudo: false
dist: trusty
language: c
compiler:
- gcc
addons:
apt:
packages:
- libreadline6-dev
- libncurses5-dev
- perl
- clang
- g++-mingw-w64-i686
- qemu-system-x86
script:
- .ci/travis-build.sh
env:
- CMPLR=gcc
- CMPLR=clang
- CMPLR=gcc STATIC=YES
- CMPLR=clang STATIC=YES
- CMPLR=gcc EXTRA=CMD_CXXFLAGS=-std=c++11
- CMPLR=clang EXTRA=CMD_CXXFLAGS=-std=c++11
- WINE=32 TEST=NO STATIC=YES
- WINE=32 TEST=NO STATIC=NO
- RTEMS=4.10 TEST=YES
- RTEMS=4.9 TEST=YES

View File

@@ -16,6 +16,10 @@ ifneq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
CONFIG = $(TOP)/configure
BASE_TOP=YES
else
ifneq ($(origin EPICS_BASE),file)
# Essential for the EPICS build system, see convertRelease.pl
$(error EPICS_BASE must be set in a configure/RELEASE file)
endif
CONFIG ?= $(EPICS_BASE)/configure
endif
@@ -30,6 +34,11 @@ ifeq ($(origin EPICS_HOST_ARCH), undefined)
EHA :=
endif
# Make Perl hash iteration reproducible.
# See: https://reproducible-builds.org/docs/stable-outputs/
#
export PERL_HASH_SEED = 0
-include $(CONFIG)/RELEASE
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH)
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).Common
@@ -58,10 +67,13 @@ include $(CONFIG)/CONFIG_BASE_VERSION
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
# Parse configure/RELEASE to find all upstream modules
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
ifdef T_A
# Information from the target's compiler
#
-include $(EPICS_BASE)/cfg/TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
# Cross compile specific definitions
#

View File

@@ -3,8 +3,7 @@
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# EPICS Base is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
@@ -28,13 +27,17 @@ RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
ASAN_FLAGS_YES = -fsanitize=address
ASAN_LDFLAGS_YES = $(ASAN_FLAGS_YES)
# It makes sense to include debugging symbols even in optimized builds
# in case you want to attach gdb to the process or examine a core-dump.
# This does cost disk space, but not memory as debug symbols are not
# loaded into RAM when the binary is loaded.
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -pg
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
CODE_CFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CFLAGS_YES = -Wall
WARN_CFLAGS_YES = -Wall -Werror-implicit-function-declaration
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -O3
OPT_CFLAGS_YES = -O3 -g
OPT_CFLAGS_NO = -g
PROF_CXXFLAGS_YES = -p
@@ -43,22 +46,22 @@ CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_CXXFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CXXFLAGS_YES = -Wall
WARN_CXXFLAGS_NO = -w
OPT_CXXFLAGS_YES = -O3
OPT_CXXFLAGS_YES = -O3 -g
OPT_CXXFLAGS_NO = -g
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_LDFLAGS += $(ASAN_LDFLAGS_$(ENABLE_ASAN))
OPT_LDFLAGS_NO = -g
PIPE_CFLAGS_YES_YES = -pipe
PIPE_CFLAGS = $(PIPE_CFLAGS_$(GCC_PIPE)_$(GNU))
PIPE_CXXFLAGS = $(PIPE_CFLAGS)
STATIC_LDFLAGS_YES = -static
STATIC_LDFLAGS_NO =
SHRLIB_CFLAGS = -fPIC
SHRLIB_LDFLAGS = -shared -fPIC
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
GNU_LDLIBS_YES = -lgcc

View File

@@ -30,20 +30,33 @@ endif # BASE_TOP
#---------------------------------------------------------------
# Where to find the installed build tools
# Windows does not like commands with relative paths starting ../
# but the Perl scripts in TOP/src/tools are OK
# so TOOLS must be an absolute path, although Perl scripts are OK.
# FIND_TOOL is for scripts run before the build reaches src/tools
# and must also work in submodules when EPICS_BASE is not built.
TOOLS = $(abspath $(EPICS_BASE_HOST_BIN))
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) $(TOP)/src/tools/$(1)))
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) \
$(TOP)/src/tools/$(1)) $(EPICS_BASE)/src/tools/$(1))
#---------------------------------------------------------------
# Find Perl modules for dependencies
FIND_PM = $(wildcard $(EPICS_BASE)/lib/perl/$(1))
#---------------------------------------------------------------
# EPICS Base build tools and tool flags
PODTOHTML = $(PERL) $(TOOLS)/podToHtml.pl
PODTOMD_pl = $(TOOLS)/podToMD.pl
PODTOMD = $(PERL) $(PODTOMD_pl)
PODTOHTML_pl = $(TOOLS)/podToHtml.pl
PODTOHTML_dep = $(PODTOHTML_pl) $(call FIND_PM,EPICS/PodHtml.pm)
PODTOHTML = $(PERL) $(PODTOHTML_pl)
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
FILTERMAKEFLAGS = $(PERL) $(call FIND_TOOL,filterMakeflags.pl)
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
GENVERSIONHEADER = $(PERL) $(TOOLS)/genVersionHeader.pl $(QUIET_FLAG) $(QUESTION_FLAG)
MAKERPATH = $(PYTHON) $(TOOLS)/makeRPath.py
#---------------------------------------------------------------
# tools for installing libraries and products
INSTALL = $(PERL) $(TOOLS)/installEpics.pl $(QUIET_FLAG)
@@ -54,3 +67,41 @@ INSTALL_LIBRARY = $(INSTALL)
# tools for making header dependencies and variable replacement
MKMF = $(PERL) $(TOOLS)/mkmf.pl
REPLACEVAR = $(PERL) $(TOOLS)/replaceVAR.pl
#---------------------------------------------------------------
# How to portably check the flags to make
# GNUmake versions before 4.0 gave different values
makeflags := $(shell $(FILTERMAKEFLAGS) $(MAKEFLAGS))
define checkflags
make-$1 := $(findstring $1,$(makeflags))
endef
# This is extensible to most single letter flags:
$(foreach flag,s q, $(eval $(call checkflags,$(flag))))
# Silent builds - suppress messages during 'make -s'
NOP = :
ECHO = @$(if $(make-s),$(NOP),echo)
QUIET_FLAG := $(if $(make-s),-q,)
# Convert 'make -q' flag into '-i' for genVersionHeader.pl
QUESTION_FLAG := $(if $(make-q),-i,)
#---------------------------------------------------------------
# tools for cleaning out unwanted files
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
DEPCLEAN = $(call FIND_TOOL,depclean.pl)
#---------------------------------------------------------------
# Tools for testing
TAPS_FAILED_LOG = .taps-failed.log
TESTS_FAILED_LOG = .tests-failed.log
TESTS_FAILED_PATH = $(abspath $(TOP)/$(TESTS_FAILED_LOG))
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
PROVE = $(PERL) $(TOOLS)/epicsProve.pl --failures --color
PROVE.tap = $(PROVE) --ext .tap --exec "$(CAT)"
TESTFAILURES = $(PERL) $(TOOLS)/testFailures.pl
SHOWTESTFAILURES = $(TESTFAILURES) $(TESTS_FAILED_PATH) $(TAPS_FAILED_LOG)
PROVE_FAILURE = echo $(abspath .)>> $(TESTS_FAILED_PATH)
TAPFILE_FAILURE = echo $@>> $(TAPS_FAILED_LOG)

View File

@@ -48,24 +48,15 @@ EPICS_VERSION = 7
EPICS_REVISION = 0
# EPICS_MODIFICATION must be a number >=0 and <256
EPICS_MODIFICATION = 2
EPICS_MODIFICATION = 9
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included if zero
EPICS_PATCH_LEVEL = 2
# Not included in the official EPICS version number if zero
EPICS_PATCH_LEVEL = 0
# Between official releases, the EPICS_PATCH_LEVEL gets incremented
# and a -DEV suffix is added (similar to the Maven -SNAPSHOT versions)
#EPICS_DEV_SNAPSHOT=
EPICS_DEV_SNAPSHOT=-DEV
#EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
#EPICS_DEV_SNAPSHOT=-pre2
#EPICS_DEV_SNAPSHOT=-pre2-DEV
#EPICS_DEV_SNAPSHOT=-rc1
#EPICS_DEV_SNAPSHOT=-rc1-DEV
#EPICS_DEV_SNAPSHOT=-rc2
#EPICS_DEV_SNAPSHOT=-rc2-DEV
# Immediately after an official release the EPICS_PATCH_LEVEL is incremented
# and the -DEV suffix is added (similar to the Maven -SNAPSHOT versions)
EPICS_DEV_SNAPSHOT=
# No changes should be needed below here

View File

@@ -0,0 +1,12 @@
# Version number for the Channel Access API and shared library
EPICS_CA_MAJOR_VERSION = 4
EPICS_CA_MINOR_VERSION = 14
EPICS_CA_MAINTENANCE_VERSION = 5
# Development flag, set to zero for release versions
EPICS_CA_DEVELOPMENT_FLAG = 0
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1

View File

@@ -38,6 +38,8 @@ BUILD_ARCHS = $(EPICS_HOST_ARCH) $(CROSS1) $(CROSS2)
# otherwise override this in os/CONFIG_SITE.<host_arch>.Common
PERL = perl -CSD
PYTHON = python
#-------------------------------------------------------
# Check configure/RELEASE file for consistency
CHECK_RELEASE_YES = checkRelease
@@ -54,6 +56,7 @@ GNU_DIR = /usr
# Directories
INSTALL_LOCATION = $(TOP)
INSTALL_ABSOLUTE = $(abspath $(INSTALL_LOCATION))
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
INSTALL_LOCATION_BIN = $(INSTALL_LOCATION)/bin
@@ -69,21 +72,14 @@ INSTALL_DBD = $(INSTALL_LOCATION)/dbd
INSTALL_DB = $(INSTALL_LOCATION)/db
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
# Directory for OS independant build created files
COMMON_DIR = ../O.Common
# IOC's absolute path to $(TOP), may be overridden inside the application
IOCS_APPL_TOP = $(shell $(FULLPATHNAME) $(INSTALL_LOCATION))
#-------------------------------------------------------
# Silencing the build - suppress messages during 'make -s'
NOP = :
ECHO = @$(if $(findstring s,$(MFLAGS)),$(NOP),echo)
QUIET_FLAG := $(if $(findstring s,$(MFLAGS)),-q,)
# These are default settings that may be overridden later
#-------------------------------------------------------
# Convert 'make -q' flag into '-i' for genVersionHeader.pl
QUESTION_FLAG := $(if $(findstring q,$(MFLAGS)),-i,)
# Eventual install path (to be compiled into binaries)
FINAL_LOCATION = $(INSTALL_ABSOLUTE)
# IOC's view of install path
IOCS_APPL_TOP = $(INSTALL_ABSOLUTE)
#-------------------------------------------------------
ifdef T_A
@@ -129,6 +125,8 @@ LIB_SUFFIX =
SHRLIB_PREFIX = $(LIB_PREFIX)
DLLSTUB_PREFIX = $(LIB_PREFIX)
DLLSTUB_SUFFIX = $(LIB_SUFFIX)
LOADABLE_SHRLIB_PREFIX = $(SHRLIB_PREFIX)
LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX)
BUILDLIB_PREFIX_YES = $(DLLSTUB_PREFIX)
BUILDLIB_PREFIX_NO = $(LIB_PREFIX)
@@ -140,20 +138,23 @@ BUILDLIB_SUFFIX = $(BUILDLIB_SUFFIX_$(SHARED_LIBRARIES))
#--------------------------------------------------
# vpath directories
POSIX_YES = os/posix
OS_IMPL_DIRS = $(if $(OS_API),os/$(OS_CLASS)-$(OS_API),) os/$(OS_CLASS)
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
$(addprefix $(dir)/, $(OS_IMPL_DIRS) $(POSIX_$(POSIX)) os/default ))
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
#--------------------------------------------------
# Directory for OS independant build created files
COMMON_DIR = ../O.Common
# compile line include directories
INSTALL_INCLUDES += \
-I$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS) \
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS) \
-I$(INSTALL_INCLUDE)
SRC_INCLUDES = -I$(COMMON_DIR) $(addprefix -I, $(wildcard $(ALL_SRC_DIRS)))
INSTALL_INCLUDE_DIRS = $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS) \
$(INSTALL_INCLUDE)/os/$(OS_CLASS) $(INSTALL_INCLUDE)
INSTALL_INCLUDES += $(addprefix -I, $(INSTALL_INCLUDE_DIRS))
SRC_INCLUDES = $(addprefix -I, $(COMMON_DIR) $(wildcard $(ALL_SRC_DIRS)))
#--------------------------------------------------
# Target filename definitions
@@ -167,23 +168,27 @@ TESTSHRLIBNAME = $(TESTSHRLIBNAME_$(SHARED_LIBRARIES))
#--------------------------------------------------
# obj files
TARGET_OBJS = $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS) $($*_SRCS)))
TARGET_OBJS = $($*_LDOBJS) $(addsuffix $(OBJ), \
$(basename $($*_OBJS) $($*_SRCS)))
PRODUCT_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(USR_OBJS) $(PROD_OBJS)))
PRODUCT_OBJS = $(addsuffix $(OBJ), \
$(basename $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(USR_OBJS) $(PROD_OBJS)))
PROD_LD_OBJS = $(TARGET_OBJS) $(PRODUCT_OBJS)
LIBRARY_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(LIBSRCS) $(USR_OBJS) $(LIB_OBJS)))
LIBRARY_OBJS = $(addsuffix $(OBJ), \
$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(LIBSRCS) $(USR_OBJS) $(LIB_OBJS)))
LIBRARY_LD_OBJS = $(TARGET_OBJS) $(LIBRARY_OBJS)
#--------------------------------------------------
# Windows resource files
TARGET_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $($*_RCS))),)
TARGET_RESS = $(if $(RES), $(addsuffix $(RES), $(basename $($*_RCS))))
PROD_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(PROD_RCS))),)
PROD_RESS = $(if $(RES), $(addsuffix $(RES), $(basename $(RCS) $(PROD_RCS))))
PROD_LD_RESS = $(TARGET_RESS) $(PROD_RESS)
LIBRARY_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS))),)
LIBRARY_RESS = $(if $(RES), $(addsuffix $(RES), \
$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS))))
LIBRARY_LD_RESS = $(TARGET_RESS) $(LIBRARY_RESS)
#--------------------------------------------------
@@ -252,27 +257,28 @@ WARN_CXXFLAGS = $(WARN_CXXFLAGS_$($(BUILD_CLASS)_WARN))
OPT_CPPFLAGS = $(OPT_CPPFLAGS_$($(BUILD_CLASS)_OPT))
OPT_CFLAGS = $(OPT_CFLAGS_$($(BUILD_CLASS)_OPT))
OPT_CXXFLAGS = $(OPT_CXXFLAGS_$($(BUILD_CLASS)_OPT))
OPT_LDFLAGS = $(OPT_LDFLAGS_$($(BUILD_CLASS)_OPT))
# Static build flags
STATIC_CFLAGS = $(STATIC_CFLAGS_$(STATIC_BUILD))
STATIC_CXXCFLAGS = $(STATIC_CXXFLAGS_$(STATIC_BUILD))
STATIC_CXXFLAGS = $(STATIC_CXXFLAGS_$(STATIC_BUILD))
STATIC_LDFLAGS = $(STATIC_LDFLAGS_$(STATIC_BUILD))
STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
#--------------------------------------------------
# cflags for shared library src files (from SHRLIB_CFLAGS)
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY),$($(lib)_OBJSNAME) $(LIBRARY_OBJS)))
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
# cflags for shared library src files
LIBRARY_SRCS = $(basename $(foreach lib, \
$(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY), \
$($(lib)_OBJSNAME) $(LIBRARY_OBJS)))
LIBRARY_SRC_CFLAGS = $(if $(findstring $*, $(LIBRARY_SRCS)), $(SHRLIB_CFLAGS))
#--------------------------------------------------
# prefix, suffix, and ldflags for loadable shared libraries
TARGET_LIB_LDFLAGS=$($(patsubst $*,LOADABLE_,$(findstring $*,$(LOADABLE_LIBRARY)))SHRLIB_LDFLAGS)
LOADABLE_SHRLIB_PREFIX=$(SHRLIB_PREFIX)
LOADABLE_SHRLIB_SUFFIX=$(SHRLIB_SUFFIX)
# ldflags for loadable and shared libraries
TARGET_LIB_LDFLAGS = $(if $(findstring $*, $(LOADABLE_LIBRARY)), \
$(LOADABLE_SHRLIB_LDFLAGS), $(SHRLIB_LDFLAGS))
#--------------------------------------------------
# Command-line input support default
COMMANDLINE_LIBRARY = EPICS
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
@@ -280,31 +286,31 @@ RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
#--------------------------------------------------
# Flags
INCLUDES = -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
$(TARGET_INCLUDES) $(USR_INCLUDES) $(CMD_INCLUDES) $(OP_SYS_INCLUDES)\
$($(BUILD_CLASS)_INCLUDES)
INCLUDES = -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES) \
$(TARGET_INCLUDES) $(USR_INCLUDES) $(CMD_INCLUDES) $(OP_SYS_INCLUDES) \
$($(BUILD_CLASS)_INCLUDES)
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS)\
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS) \
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS) \
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS) \
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS) \
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) \
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) \
$(STATIC_CXXFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS) \
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) \
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
$(GNU_LDLIBS_$(GNU))
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS) \
$(GNU_LDLIBS_$(GNU))
CPPFLAGS = $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
CPPFLAGS = $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS) \
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) \
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS) \
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS) $(API_CPPFLAGS)
#--------------------------------------------------
# ar definition default
@@ -376,14 +382,14 @@ PATH_FILTER = $(1)$(warning PATH_FILTER is deprecated; used for $(1))
# each list starts with the destination directory name(s)
# to make sure it's there
INSTALL_PROD= $(PRODNAME:%= $(INSTALL_BIN)/%)
INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_MUNCHS= $(MUNCHNAME:%=$(INSTALL_BIN)/%)
INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
INSTALL_LOADABLE_SHRLIBS= $(LOADABLE_SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
INSTALL_DLLSTUB_LIBS=$(DLLSTUB_LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
INSTALL_PROD = $(PRODNAME:%= $(INSTALL_BIN)/%)
INSTALL_LIBS = $(LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_MUNCHS = $(MUNCHNAME:%=$(INSTALL_BIN)/%)
INSTALL_SHRLIBS = $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
INSTALL_LOADABLE_SHRLIBS = $(LOADABLE_SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
INSTALL_DLLSTUB_LIBS = $(DLLSTUB_LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_TCLLIBS = $(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
INSTALL_TCLINDEX = $(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
INSTALL_OBJS = $(OBJSNAME:%= $(INSTALL_BIN)/%)
@@ -391,7 +397,7 @@ INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
INSTALL_TEMPLATE = $(addprefix $(INSTALL_TEMPLATES_SUBDIR)/, \
$(subst $(CONFIG),top/configure,$(TEMPLATES)))
$(subst $(CONFIG),top/configure,$(TEMPLATES)))
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
INSTALL_BIN_INSTALLS = $(addprefix $(INSTALL_BIN)/,$(notdir $(BIN_INSTALLS)))
@@ -399,9 +405,9 @@ INSTALL_LIB_INSTALLS = $(addprefix $(INSTALL_LIB)/,$(notdir $(LIB_INSTALLS)))
#---------------------------------------------------------------
# Installed file permissions
BIN_PERMISSIONS = 555
LIB_PERMISSIONS = 444
SHRLIB_PERMISSIONS = 555
BIN_PERMISSIONS = 755
LIB_PERMISSIONS = 644
SHRLIB_PERMISSIONS = 755
INSTALL_PERMISSIONS = 444
#---------------------------------------------------------------
@@ -426,42 +432,46 @@ INSTALL_INC += $(foreach inc, $(INC), \
$(CMPLR_INSTALL_INC) \
$(OS_INSTALL_INC) \
$(GENERIC_INSTALL_INC) \
$(GENERATED_INSTALL_INC) ) )
INSTALL_INC += $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INC_$(OS_CLASS)) )
$(GENERATED_INSTALL_INC)))
INSTALL_INC += $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INC_$(OS_CLASS)))
#
# Rule 0
#
CMPLR_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/, $(INSTALL_INC_jjj) )
INSTALL_INC_jjj = $(foreach dir, $(CMPLR_SRC_DIRS), $(INSTALL_INC_iii) )
INSTALL_INC_iii = $(subst $(dir)/, , $(INSTALL_INC_hhh) )
INSTALL_INC_hhh = $(wildcard $(addsuffix /$(inc), $(dir)) )
CMPLR_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/, \
$(foreach dir, $(CMPLR_SRC_DIRS), \
$(subst $(dir)/,, $(wildcard $(addsuffix /$(inc), $(dir))))))
#
# Rule 1
#
OS_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INSTALL_INC_ggg) )
INSTALL_INC_ggg = $(foreach dir, $(OS_SRC_DIRS), $(INSTALL_INC_fff) )
INSTALL_INC_fff = $(subst $(dir)/, , $(INSTALL_INC_eee) )
INSTALL_INC_eee = $(wildcard $(addsuffix /$(inc), $(dir)) )
OS_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, \
$(foreach dir, $(OS_SRC_DIRS), \
$(subst $(dir)/,, $(wildcard $(addsuffix /$(inc), $(dir))))))
#
# Rule 2
#
GENERIC_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/, $(INSTALL_INC_ccc) )
INSTALL_INC_ccc = $(foreach dir, .. $(SRC_DIRS), $(INSTALL_INC_bbb) )
INSTALL_INC_bbb = $(subst $(dir)/, , $(INSTALL_INC_aaa) )
INSTALL_INC_aaa = $(wildcard $(addsuffix /$(inc), $(dir)) )
GENERIC_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/, \
$(foreach dir, .. $(SRC_DIRS), \
$(subst $(dir)/,, $(wildcard $(addsuffix /$(inc), $(dir))))))
#
# Rule 3
#
GENERATED_INSTALL_INC = $(INSTALL_INCLUDE)/$(inc)
COMMON_INC += $(filter $(COMMON_DIR)/%, $(foreach file, $(INC), \
$(firstword $(SOURCE_INC) $(COMMON_DIR)/$(file) ) ) )
SOURCE_INC = $(wildcard $(file) $(SOURCE_INC_bbb) )
SOURCE_INC_bbb = $(foreach dir, $(ALL_SRC_DIRS), $(SOURCE_INC_aaa) )
SOURCE_INC_aaa = $(addsuffix /$(file), $(dir) )
#---------------------------------------------------------------
# Files listed in INC that must first be created in O.Common
COMMON_INC += $(filter $(COMMON_DIR)/%, \
$(foreach file, $(INC), \
$(firstword $(wildcard $(file) \
$(foreach dir, $(ALL_SRC_DIRS), \
$(addsuffix /$(file), $(dir)))) $(COMMON_DIR)/$(file))))
COMMON_DOCS += $(filter $(COMMON_DIR)/%, \
$(foreach file, $(DOCS), \
$(firstword $(wildcard $(file) \
$(foreach dir, $(ALL_SRC_DIRS), \
$(addsuffix /$(file), $(dir)))) $(COMMON_DIR)/$(file))))
endif

View File

@@ -0,0 +1,36 @@
#*************************************************************************
# Copyright (c) 2017 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Installed perl scripts and dependent modules that have
# a significant effect on the script's output
DBDEXPAND_pl = $(EPICS_BASE_HOST_BIN)/dbdExpand.pl
DBDTORECTYPEH_pl = $(EPICS_BASE_HOST_BIN)/dbdToRecordtypeH.pl
DBDTORECTYPEH_dep = $(DBDTORECTYPEH_pl) $(call FIND_PM,DBD/Rec*.pm)
DBDTOMENUH_pl = $(EPICS_BASE_HOST_BIN)/dbdToMenuH.pl
DBDTOMENUH_dep = $(DBDTOMENUH_pl) $(call FIND_PM,DBD/Menu.pm)
DBDTOMD_pl = $(EPICS_BASE_HOST_BIN)/dbdToMD.pl
DBDTOHTML_pl = $(EPICS_BASE_HOST_BIN)/dbdToHtml.pl
DBDTOHTML_dep = $(DBDTOHTML_pl) $(call FIND_PM,EPICS/Pod*Html.pm)
REGRECDEVDRV_pl = $(EPICS_BASE_HOST_BIN)/registerRecordDeviceDriver.pl
REGRECDEVDRV_dep = $(REGRECDEVDRV_pl)
# Commands for running scripts in recipes
DBEXPAND = $(PERL) $(DBDEXPAND_pl)
DBTORECORDTYPEH = $(PERL) $(DBDTORECTYPEH_pl)
DBTOMENUH = $(PERL) $(DBDTOMENUH_pl)
DBDTOMD = $(PERL) $(DBDTOMD_pl)
DBDTOHTML = $(PERL) $(DBDTOHTML_pl)
REGISTERRECORDDEVICEDRIVER = $(PERL) $(REGRECDEVDRV_pl)
# Installed binary executables, quoted for running on Windows
MAKEBPT = "$(EPICS_BASE_HOST_BIN)/makeBpt$(HOSTEXE)"
MSI3_15 = "$(EPICS_BASE_HOST_BIN)/msi$(HOSTEXE)"
# Libraries needed to link a basic IOC
EPICS_BASE_IOC_LIBS = dbRecStd dbCore ca Com
HAS_registerAllRecordDeviceDrivers=YES

View File

@@ -0,0 +1,12 @@
# Version number for the database APIs and shared library
EPICS_DATABASE_MAJOR_VERSION = 3
EPICS_DATABASE_MINOR_VERSION = 24
EPICS_DATABASE_MAINTENANCE_VERSION = 0
# Development flag, set to zero for release versions
EPICS_DATABASE_DEVELOPMENT_FLAG = 0
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1

View File

@@ -3,9 +3,8 @@
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Author: Andrew Johnson
# Date: 20 April 1995
@@ -54,8 +53,3 @@ EPICS_IOC_IGNORE_SERVERS=""
# EPICS_IOC_LOG_PORT Log server port number etc.
EPICS_IOC_LOG_PORT=7004
# Other services:
EPICS_CMD_PROTO_PORT=
EPICS_AR_PORT=7002

View File

@@ -5,18 +5,11 @@
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Set EPICS_LIBCOM if necessary
ifndef EPICS_LIBCOM
EPICS_LIBCOM = $(if $(BUILDING_LIBCOM),$(INSTALL_LOCATION),$(EPICS_BASE))
# Paths to tools built here
EPICS_LIBCOM_HOST_BIN ?= $(EPICS_LIBCOM)/bin/$(EPICS_HOST_ARCH)
endif
# Set location of locally generated tools
YACC = $(abspath $(EPICS_LIBCOM_HOST_BIN))/antelope$(HOSTEXE)
LEX = $(abspath $(EPICS_LIBCOM_HOST_BIN))/e_flex$(HOSTEXE) \
-S$(EPICS_LIBCOM)/include/flex.skel.static
# Our locally-built tools
# Windows can need these paths to be quoted
YACC = "$(EPICS_BASE_HOST_BIN)/antelope$(HOSTEXE)"
LEX = "$(EPICS_BASE_HOST_BIN)/e_flex$(HOSTEXE)" \
-S$(EPICS_BASE)/include/flex.skel.static
# Default stack size for osiThread
OSITHREAD_USE_DEFAULT_STACK = NO

View File

@@ -0,0 +1,12 @@
# Version number for the libcom APIs and shared library
EPICS_LIBCOM_MAJOR_VERSION = 3
EPICS_LIBCOM_MINOR_VERSION = 24
EPICS_LIBCOM_MAINTENANCE_VERSION = 0
# Development flag, set to zero for release versions
EPICS_LIBCOM_DEVELOPMENT_FLAG = 0
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1

View File

@@ -17,11 +17,11 @@
# Currently Supporting:
# cygwin-x86 (cygwin compiler used for host builds)
# cygwin-x86_64 (cygwin compiler used for host builds)
# darwin-ppc (PowerPC based Apple running OSX)
# darwin-ppcx86 (Universal binaries for both CPUs)
# darwin-x86 (Intel based Apple running OSX)
# darwin-aarch64 (M1 based Apple using CLANG compiler)
# darwin-x86 (Intel based Apple using CLANG compiler)
# freebsd-x86 (GNU compiler used for host builds)
# freebsd-x86_64 (GNU compiler used for host builds)
# linux-aarch64 (GNU compiler used for host builds)
# linux-arm (GNU compiler used for host builds)
# linux-ppc (GNU compiler used for host builds)
# linux-ppc64 (GNU compiler used for host builds)
@@ -51,7 +51,6 @@
# windows-x64-debug (MS Visual C++ compiler with debug option for host builds)
# EPICS_HOST_ARCH is a required environment variable
# Do not set EPICS_HOST_ARCH in this file.
# Use base/startup files to set EPICS_HOST_ARCH or
# provide EPICS_HOST_ARCH on the GNU make command line.
@@ -62,23 +61,11 @@
# ios-arm (darwin-x86 host)
# ios-386 (darwin-x86 host)
# linux-386 (linux-x86 host)
# linux-486 (linux-x86 host)
# linux-586 (linux-x86 host)
# linux-686 (linux-x86 host)
# linux-arm (linux-x86 or -x86_64 host)
# linux-arm_eb (linux-x86 host)
# linux-arm_el (linux-x86 host)
# linux-athlon (linux-x86 host)
# linux-cris (Axis GNU crosscompiler on linux-x86 host)
# linux-cris_v10 (Axis GNU crosscompiler on linux-x86 host)
# linux-cris_v32 (Axis GNU crosscompiler on linux-x86 host)
# linux-aarch64 (linux-x86_64 host)
# linux-microblaze
# linux-xscale_be
# vxWorks-486
# vxWorks-68040
# vxWorks-68040lc
# vxWorks-68060
# vxWorks-pentium
# vxWorks-ppc32 (32-bit PowerPC CPUs with full FPU)
# vxWorks-ppc32sf (32-bit PowerPC CPUs without FPU)
@@ -89,18 +76,20 @@
# vxWorks-ppc604_altivec
# vxWorks-mpc8540
# vxWorks-mpc8548
# RTEMS-at91rm9200ek
# RTEMS-beagleboneblack
# RTEMS-beatnik
# RTEMS-gen68360
# RTEMS-mcp750
# RTEMS-mvme167
# RTEMS-mvme2100
# RTEMS-mvme2700
# RTEMS-mvme3100
# RTEMS-mvme5500
# RTEMS-pc386
# RTEMS-psim
# RTEMS-pc386 (RTEMS 4)
# RTEMS-pc386-qemu (RTEMS 4)
# RTEMS-pc686 (RTEMS 5)
# RTEMS-pc686-qemu (RTEMS 5)
# RTEMS-qoriq_e500
# RTEMS-uC5282
# RTEMS-xilinx-zynq-a9_qemu
# RTEMS-xilinx_zynq_zedboard
# win32-x86-mingw (linux-x86 or -x86_64 host)
#
@@ -108,7 +97,6 @@
# Definitions in configure/os/CONFIG_SITE.<host>.Common
# may override this setting.
CROSS_COMPILER_TARGET_ARCHS=
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32
# If only some of your host architectures can compile the
# above CROSS_COMPILER_TARGET_ARCHS specify those host
@@ -155,6 +143,14 @@ CROSS_WARN=YES
# different location then uncomment and set this.
#INSTALL_LOCATION=<fullpathname>
# The location from which files placed in INSTALL_LOCATION will actually run.
# This path is compiled into executables, and so should be an absolute.
# May be used to achieve the effect of autotools. eg.
# ./configure --prefix=<FINAL_LOCATION>
# make DESTDIR=<INSTALL_LOCATION>
# Defaults to the absolute expansion of $(INSTALL_LOCATION)
#FINAL_LOCATION=
# Use POSIX thread priority scheduling (if available).
# Must be either YES or NO
USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
@@ -169,10 +165,18 @@ EPICS_SITE_VERSION =
GCC_PIPE = NO
# Set RPATH when linking executables and libraries.
# Must be either YES or NO. If you set this to NO you must also provide a
# Must be either YES, NO, or ORIGIN. If you set this to NO you must also provide a
# way for Base executables to find their shared libraries when they are
# run at build-time, e.g. set the LD_LIBRARY_PATH environment variable.
# ORIGIN is a feature of the ELF executable format used by Linux, freebsd, and solaris.
LINKER_USE_RPATH = YES
# Only used when LINKER_USE_RPATH=ORIGIN
# The build time root(s) of the relocatable tree (separate multiple w/ ':').
# Linking to libraries under any root directory will be relative.
# Linking to libraries outside of this root will be absolute.
# All root directories are considered to be the same.
LINKER_ORIGIN_ROOT = $(INSTALL_LOCATION)
# Overrides for the settings above may appear in a CONFIG_SITE.local file
-include $(CONFIG)/CONFIG_SITE.local

View File

@@ -24,40 +24,40 @@
# Site-specific environment settings
# Time service:
# EPICS_TIMEZONE
# Local timezone info for vxWorks and RTEMS. The format is
# <name>::<minutesWest>:<startDST>:<endDST>
# where <name> is only used by strftime() for %Z conversions,
# and <startDST> and <endDST> are mmddhh - that is month,day,hour
# e.g. for ANL in 2018: EPICS_TIMEZONE=CUS::360:031102:110402
# The future dates below assume the rules don't get changed;
# see http://www.timeanddate.com/time/dst/2018.html to check.
#
# DST for 2019 US: Mar 10 - Nov 03
# EU: Mar 31 - Oct 27
EPICS_TIMEZONE = CUS::360:031002:110302
#EPICS_TIMEZONE = MET::-60:033102:102703
#
# DST for 2020 US: Mar 08 - Nov 01
# EU: Mar 29 - Oct 25
#EPICS_TIMEZONE = CUS::360:030802:110102
#EPICS_TIMEZONE = MET::-60:032902:102503
#
# DST for 2021 US: Mar 14 - Nov 07
# EU: Mar 28 - Oct 31
#EPICS_TIMEZONE = CUS::360:031402:110702
#EPICS_TIMEZONE = MET::-60:032802:103103
#
# DST for 2022 US: Mar 13 - Nov 06
# EU: Mar 27 - Oct 30
#EPICS_TIMEZONE = CUS::360:031302:110602
#EPICS_TIMEZONE = MET::-60:032702:103003
#
# DST for 2023 US: Mar 13 - Nov 06
# EU: Mar 27 - Oct 30
#EPICS_TIMEZONE = CUS::360:031202:110502
#EPICS_TIMEZONE = MET::-60:032602:102903
## Time service:
# EPICS_TZ
# Local timezone rules for vxWorks and RTEMS. The value follows the Posix
# TZ environment variable's Mm.n.d/h format (see the IBM link below for
# details). If TZ hasn't already been set when the osdTime timeRegister()
# C++ static constructor runs, this parameter will be copied into the TZ
# environment variable. Once the OS clock has been synchronized to NTP the
# routine tz2timezone() will be run to convert TZ into the TIMEZONE
# variable format that VxWorks needs.
# https://developer.ibm.com/articles/au-aix-posix/
# Japan Standard Time, no DST:
#EPICS_TZ = "JST-9"
# Central European (Summer) Time:
#EPICS_TZ = "CET-1CEST,M3.5.0/2,M10.5.0/3"
# Greenwich Mean/British Summer Time:
#EPICS_TZ = "GMT0BST,M3.5.0/1,M10.5.0/2"
# US Eastern Standard/Daylight Time:
#EPICS_TZ = "EST5EDT,M3.2.0/2,M11.1.0/2"
# US Central Standard/Daylight Time:
EPICS_TZ = "CST6CDT,M3.2.0/2,M11.1.0/2"
# US Mountain Standard/Daylight Time:
#EPICS_TZ = "MST7MDT,M3.2.0/2,M11.1.0/2"
# US Pacific Standard/Daylight Time:
#EPICS_TZ = "PST8PDT,M3.2.0/2,M11.1.0/2"
# US Hawaiian Standard Time, no DST:
#EPICS_TZ = "HST10"
# EPICS_TS_NTP_INET
# NTP time server ip address for VxWorks and RTEMS.
@@ -92,3 +92,6 @@ EPICS_IOC_LOG_FILE_NAME=
EPICS_IOC_LOG_FILE_COMMAND=
EPICS_IOC_LOG_FILE_LIMIT=1000000
# Set to 'YES' to call abort() rather than suspend the current thread
# when an assert() fails
EPICS_ABORT_ON_ASSERT=NO

View File

@@ -15,10 +15,28 @@ include $(TOP)/configure/CONFIG
TOOLS = $(TOP)/src/tools
CONFIGS += $(subst ../,,$(wildcard ../CONFIG*))
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG.*))
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG_SITE.*))
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
CFG += CONFIG_LIBCOM_MODULE
CFG += CONFIG_LIBCOM_VERSION
CFG += CONFIG_CA_MODULE
CFG += CONFIG_CA_VERSION
CFG += CONFIG_DATABASE_MODULE
CFG += CONFIG_DATABASE_VERSION
CFG += TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
include $(TOP)/configure/RULES
ifeq ($(GNU),YES)
# Pass compiler flags to preprocessor to enable _FORTIFY_SOURCE
TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): CPPFLAGS += $(CFLAGS)
endif
TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): toolchain.c
$(PREPROCESS.cpp)

View File

@@ -17,7 +17,7 @@ TEMPL_SUFFIX ?= .template
# vpath
vpath %.pm $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
vpath %.pod $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
vpath %.pod $(USR_VPATH) $(SRC_DIRS) .. $(dir $(DBD))
vpath %.dbd $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
vpath %.db $(USR_VPATH) $(SRC_DIRS) $(dir $(DB))
vpath %.vdb $(USR_VPATH) $(SRC_DIRS) $(dir $(DB))
@@ -161,13 +161,13 @@ actionArchTargets = $(foreach action, $(ACTIONS), \
$(foreach arch, $(BUILD_ARCHS), $(action)$(DIVIDER)$(arch)))
cleanArchTargets = $(foreach arch, $(BUILD_ARCHS), clean$(DIVIDER)$(arch))
-include $(TOP)/configure/CONFIG_APP_INCLUDE
include $(CONFIG)/CONFIG_APP_INCLUDE
all: install
install: buildInstall
buildInstall : build
buildInstall: build
rebuild: clean install
@@ -196,53 +196,53 @@ endif
#---------------------------------------------------------------
# build dependancies, clean rule
inc : $(COMMON_INC) $(INSTALL_INC)
inc: $(COMMON_INC) $(INSTALL_INC) $(COMMON_DBDS) $(COMMON_DBDCATS) \
$(INSTALL_DBDS) $(INSTALL_DBD_INSTALLS) $(COMMON_DOCS)
build : $(COMMON_DBDS) $(COMMON_DBS) $(COMMON_DBDCATS) \
$(INSTALL_DBDS) $(INSTALL_DBS) \
build: $(COMMON_DBS) $(INSTALL_DBS) \
$(DBDDEPENDS_FILES) $(TARGETS) \
$(INSTALL_DB_INSTALLS) $(INSTALL_DBD_INSTALLS)
$(INSTALL_DB_INSTALLS)
clean: db_clean
db_clean :
db_clean:
@$(RM) $(COMMONS) $(DBDDEPENDS_FILES)
@$(RM) *_registerRecordDeviceDriver.cpp
@$(RM) $(TARGETS)
.PHONY : db_clean
.PHONY: db_clean
realclean: clean
#---------------------------------------------------------------
# Dependency files
%Record.h$(DEP): $(COMMON_DIR)/%Record.dbd
%Record.h$(DEP): $(COMMON_DIR)/%Record.dbd $(DBDTORECTYPEH_dep)
@$(RM) $@
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
%Record.h$(DEP): %Record.dbd
%Record.h$(DEP): %Record.dbd $(DBDTORECTYPEH_dep)
@$(RM) $@
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
%Record.h$(DEP): ../%Record.dbd
%Record.h$(DEP): ../%Record.dbd $(DBDTORECTYPEH_dep)
@$(RM) $@
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
menu%.h$(DEP): $(COMMON_DIR)/menu%.dbd
menu%.h$(DEP): $(COMMON_DIR)/menu%.dbd $(DBDTOMENUH_dep)
@$(RM) $@
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
menu%.h$(DEP): menu%.dbd
menu%.h$(DEP): menu%.dbd $(DBDTOMENUH_dep)
@$(RM) $@
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
menu%.h$(DEP): ../menu%.dbd
menu%.h$(DEP): ../menu%.dbd $(DBDTOMENUH_dep)
@$(RM) $@
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
@@ -261,7 +261,7 @@ menu%.h$(DEP): ../menu%.dbd
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
%.dbd$(DEP):
%.dbd$(DEP): $($*_DBD)
@$(RM) $@
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $($*_DBD) > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
@@ -330,32 +330,32 @@ $(INSTALL_DB)/%$(TEMPL_SUFFIX): ../%$(TEMPL_SUFFIX)
#---------------------------------------------------------------
# INC files
$(COMMON_DIR)/%Record.h: $(COMMON_DIR)/%Record.dbd
$(COMMON_DIR)/%Record.h: $(COMMON_DIR)/%Record.dbd $(DBDTORECTYPEH_dep)
@$(RM) $(notdir $@)
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%Record.h: %Record.dbd
$(COMMON_DIR)/%Record.h: %Record.dbd $(DBDTORECTYPEH_dep)
@$(RM) $(notdir $@)
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%Record.h: ../%Record.dbd
$(COMMON_DIR)/%Record.h: ../%Record.dbd $(DBDTORECTYPEH_dep)
@$(RM) $(notdir $@)
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/menu%.h: $(COMMON_DIR)/menu%.dbd
$(COMMON_DIR)/menu%.h: $(COMMON_DIR)/menu%.dbd $(DBDTOMENUH_dep)
@$(RM) $(notdir $@)
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/menu%.h: menu%.dbd
$(COMMON_DIR)/menu%.h: menu%.dbd $(DBDTOMENUH_dep)
@$(RM) $(notdir $@)
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/menu%.h: ../menu%.dbd
$(COMMON_DIR)/menu%.h: ../menu%.dbd $(DBDTOMENUH_dep)
@$(RM) $(notdir $@)
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
@@ -366,6 +366,7 @@ $(COMMON_DIR)/menu%.h: ../menu%.dbd
# DBD files
$(COMMON_DIR)/bpt%.dbd: bpt%.data
$(ECHO) "Converting data from $<"
@$(RM) $(notdir $@)
$(MAKEBPT) $< $(notdir $@)
@$(MV) $(notdir $@) $@
@@ -389,7 +390,7 @@ $(COMMON_DIR)/%.dbd: ../%Include.dbd
# Make DBDCAT file x depend on x_DBD source files
define DBDCAT_template
$$(COMMON_DIR)/$(1).dbd : ../Makefile $$(foreach file, $$($(1)_DBD),$$(DBDCAT_SOURCE) )
$$(COMMON_DIR)/$(1).dbd: ../Makefile $$(foreach file, $$($(1)_DBD),$$(DBDCAT_SOURCE) )
endef
$(foreach name,$(subst .dbd,,$(DBDCAT)), $(eval $(call DBDCAT_template,$(name))))
@@ -399,7 +400,7 @@ $(COMMON_DBDCATS):$(COMMON_DIR)/%.dbd:
$(DBDCAT_COMMAND)
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.dbd:
$(COMMON_DIR)/%.dbd: $($*_DBD)
$(ECHO) "Creating dbd file $(notdir $@)"
@$(RM) $(notdir $@)
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $($*_DBD)
@@ -418,7 +419,7 @@ $(INSTALL_DBD)/%: ../%
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
define DBD_INSTALLS_template
$$(INSTALL_DBD)/$$(notdir $(1)) : $(1)
$$(INSTALL_DBD)/$$(notdir $(1)): $(1)
$(ECHO) "Installing $$@"
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DBD)
endef
@@ -426,41 +427,61 @@ $(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file))))
.PRECIOUS: $(COMMON_DBDS) $(COMMON_DIR)/%.dbd
#---------------------------------------------------------------
# Markdown files
$(COMMON_DIR)/%.md: %.dbd.pod $(DBDTOMD_pl)
@$(RM) $(notdir $@)
$(DBDTOMD) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.md: %.pod $(PODTOMD_pl)
@$(RM) $(notdir $@)
$(PODTOMD) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.md: ../%.pl $(PODTOMD_pl)
@$(RM) $(notdir $@)
$(PODTOMD) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
.PRECIOUS: $(COMMON_DIR)/%.md
#---------------------------------------------------------------
# HTML files
$(COMMON_DIR)/%.html: %.dbd.pod
$(COMMON_DIR)/%.html: %.dbd.pod $(DBDTOHTML_pl)
@$(RM) $(notdir $@)
$(DBDTOHTML) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: %.pod
$(COMMON_DIR)/%.html: %.pod $(PODTOHTML_dep)
@$(RM) $(notdir $@)
$(PODTOHTML) -s -s -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: %.pm $(PODTOHTML_dep)
@$(RM) $(notdir $@)
$(PODTOHTML) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: %.pm
@$(RM) $(notdir $@)
$(PODTOHTML) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: ../%.pm
$(COMMON_DIR)/%.html: ../%.pm $(PODTOHTML_dep)
@$(RM) $(notdir $@)
$(PODTOHTML) -s -o $(notdir $@) $<
@$(MKDIR) $(dir $@)
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: ../%.pl
$(COMMON_DIR)/%.html: ../%.pl $(PODTOHTML_dep)
@$(RM) $(notdir $@)
$(PODTOHTML) -s -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
.PRECIOUS: $(COMMON_DIR)/%.html %.html
.PRECIOUS: $(COMMON_DIR)/%.html
#---------------------------------------------------------------
# DB files
$(COMMON_DIR)/%.db: $(COMMON_DIR)/%.edf
$(COMMON_DIR)/%.db: $(COMMON_DIR)/%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $*.VAR $<
@$(REPLACEVAR) < $*.VAR > $@
@$(RM) $*.VAR
@@ -514,7 +535,7 @@ $(INSTALL_DB)/%.db: $(COMMON_DIR)/%.db
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
define DB_INSTALLS_template
$$(INSTALL_DB)/$$(notdir $(1)) : $(1)
$$(INSTALL_DB)/$$(notdir $(1)): $(1)
$(ECHO) "Installing $$@"
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DB)
endef
@@ -526,17 +547,19 @@ $(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
#---------------------------------------------------------------
# register record,device,driver support
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd $(REGRECDEVDRV_dep)
@$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ \
$< $(basename $@) $(IOCS_APPL_TOP)
%_registerRecordDeviceDriver.cpp: %.dbd
%_registerRecordDeviceDriver.cpp: %.dbd $(REGRECDEVDRV_dep)
@$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ \
$< $(basename $@) $(IOCS_APPL_TOP)
%_registerRecordDeviceDriver.cpp: ../%.dbd
%_registerRecordDeviceDriver.cpp: ../%.dbd $(REGRECDEVDRV_dep)
@$(RM) $@
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ \
$< $(basename $@) $(IOCS_APPL_TOP)
.PRECIOUS: %_registerRecordDeviceDriver.cpp

View File

@@ -22,7 +22,8 @@ vpath %.cpp $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.rc $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.h $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.hpp $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.html $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.html $(USR_VPATH) $(ALL_SRC_DIRS) $(COMMON_DIR)
vpath %.md $(USR_VPATH) $(ALL_SRC_DIRS) $(COMMON_DIR)
vpath %.skel.static $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.y $(USR_VPATH) $(ALL_SRC_DIRS)
vpath %.l $(USR_VPATH) $(ALL_SRC_DIRS)
@@ -32,12 +33,12 @@ vpath %.l $(USR_VPATH) $(ALL_SRC_DIRS)
include $(CONFIG)/CONFIG_ADDONS
#---------------------------------------------------------------
# Set PROD, TESTPROD, OBJS, and LIBRARY
SCRIPTS_HOST += $(PERL_SCRIPTS)
# PERL_SCRIPTS are installed into existing $(INSTALL_BIN) for Host systems
ifeq ($(findstring Host,$(VALID_BUILDS)),Host)
# Host targets can compile and run programs
ifneq (,$(findstring Host,$(VALID_BUILDS)))
LIBRARY += $(LIBRARY_HOST)
LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_HOST)
OBJS += $(OBJS_HOST)
@@ -49,7 +50,21 @@ TESTSCRIPTS += $(TESTSCRIPTS_HOST)
TESTPROD += $(TESTPROD_HOST)
endif
ifeq ($(findstring Ioc,$(VALID_BUILDS)),Ioc)
# Command targets have a command line and support main()
ifneq (,$(findstring Command,$(VALID_BUILDS)))
LIBRARY += $(LIBRARY_CMD)
LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_CMD)
OBJS += $(OBJS_CMD)
PROD += $(PROD_CMD)
SCRIPTS += $(SCRIPTS_CMD)
TARGETS += $(TARGETS_CMD)
TESTLIBRARY += $(TESTLIBRARY_CMD)
TESTSCRIPTS += $(TESTSCRIPTS_CMD)
TESTPROD += $(TESTPROD_CMD)
endif
# Ioc targets can run IOCs
ifneq (,$(findstring Ioc,$(VALID_BUILDS)))
LIBRARY += $(LIBRARY_IOC)
LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_IOC)
OBJS += $(OBJS_IOC)
@@ -75,7 +90,7 @@ HTMLS_DIR ?= .
# First target
all: install
ifeq ($(EPICS_HOST_ARCH),$T_A)
ifeq ($(EPICS_HOST_ARCH),$(T_A))
host: install
else
# Do nothing
@@ -89,17 +104,20 @@ include $(CONFIG)/RULES.Db
#---------------------------------------------------------------
# Include defines and rules for prod, library and test* targets
#ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY) ))
ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) \
$(LOADABLE_LIBRARY)))
include $(CONFIG)/RULES_TARGET
#endif
endif
#---------------------------------------------------------------
# Read dependency files
ifneq ($(filter-out inc,$(strip $(MAKECMDGOALS))),)
ifneq (,$(strip $(HDEPENDS_FILES)))
$(filter-out $(wildcard *$(DEP)), $(HDEPENDS_FILES)): | $(COMMON_INC)
-include $(HDEPENDS_FILES)
endif
endif
#---------------------------------------------------------------
# Products and Object libraries
@@ -108,17 +126,17 @@ PRODTARGETS += $(PRODNAME) $(MUNCHNAME) $(CTDT_SRCS) $(CTDT_OBJS) $(NMS)
TESTPRODTARGETS += $(TESTPRODNAME) $(TESTMUNCHNAME)
#---------------------------------------------------------------
# Test specifications and test result files
# Test result files
#
ifneq (,$(strip $(TESTS)))
TARGETS += testspec
endif
# Enable testing if this host can run tests on the current target
ifneq (,$(findstring $(T_A),$(EPICS_HOST_ARCH) $(CROSS_COMPILER_RUNTEST_ARCHS)))
# Enable testing if this host can run tests for the current target
ifneq (,$(filter $(T_A), $(EPICS_HOST_ARCH) $(CROSS_COMPILER_RUNTEST_ARCHS)))
RUNTESTS_ENABLED = YES
TAPFILES += $(TESTSCRIPTS:.t=.tap)
JUNITFILES += $(TAPFILES:.tap=.xml)
TESTSCRIPTS.t = $(filter %.t, $(TESTSCRIPTS))
TAPFILES.t += $(TESTSCRIPTS.t:.t=.tap)
JUNITFILES.t += $(TESTSCRIPTS.t:.t=-results.xml)
TAPFILES += $(TAPFILES.t)
JUNITFILES += $(JUNITFILES.t)
endif
#---------------------------------------------------------------
@@ -147,14 +165,14 @@ build: inc
build: $(OBJSNAME) $(LIBTARGETS) $(PRODTARGETS) $(TESTPRODTARGETS) \
$(TARGETS) $(TESTSCRIPTS) $(INSTALL_LIB_INSTALLS)
inc : $(COMMON_INC) $(INSTALL_INC) $(INSTALL_CONFIGS)
inc: $(COMMON_INC) $(INSTALL_INC) $(INSTALL_CONFIGS) $(INSTALLS_CFG) \
$(INSTALL_HTMLS) $(INSTALLS_PERL_MODULES) $(INSTALL_SCRIPTS) \
$(INSTALL_DOCS)
buildInstall : \
$(INSTALL_SCRIPTS) $(INSTALL_PROD) $(INSTALL_MUNCHS) \
buildInstall: \
$(INSTALL_PROD) $(INSTALL_MUNCHS) \
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
$(INSTALL_OBJS) \
$(INSTALL_DOCS) \
$(INSTALL_HTMLS) \
$(INSTALL_TEMPLATE) \
$(INSTALL_BIN_INSTALLS)
@@ -174,9 +192,9 @@ ifdef RES
@$(RM) *$(RES)
endif
# Sort mkdir targets to remove duplicates & make parents first
$(DIRECTORY_TARGETS):
$(MKDIR) $(sort $@)
# Sort directories to remove duplicates & make parents first
$(sort $(DIRECTORY_TARGETS)):
$(MKDIR) $@
# Install LIB_INSTALLS libraries before linking executables
$(TESTPRODNAME) $(PRODNAME): | $(INSTALL_LIB_INSTALLS)
@@ -196,6 +214,13 @@ ifeq ($(EPICS_HOST_ARCH),$(T_A))
$(info Warning: RELEASE file consistency checks have been disabled)
endif
# $(FINAL_DIR) signals eventual install locations to makeRPath script
$(TESTPRODNAME): FINAL_DIR=.
$(PRODNAME): FINAL_DIR=$(INSTALL_BIN)
$(TESTSHRLIBNAME): FINAL_DIR=.
$(SHRLIBNAME): FINAL_DIR=$(INSTALL_SHRLIB)
$(LOADABLE_SHRLIBNAME): FINAL_DIR=$(INSTALL_SHRLIB)
#---------------------------------------------------------------
# The order of the following rules is
# VERY IMPORTANT !!!!
@@ -207,7 +232,7 @@ $(TESTPRODNAME) $(PRODNAME): %$(EXE): | $(INSTALL_LIB)
$(LINK.cpp)
$(MT_EXE_COMMAND)
%_ctdt$(OBJ) : %_ctdt.c
%_ctdt$(OBJ): %_ctdt.c
@$(RM) $@
$(COMPILE.ctdt) $<
@@ -225,9 +250,9 @@ $(TESTPRODNAME) $(PRODNAME): %$(EXE): | $(INSTALL_LIB)
# Cancel GNUMake's built-in rules, which don't have our _INC
# dependencies so could get used in some circumstances (gdd)
%.o : %.c
%.o : %.cc
%.o : %.cpp
%.o: %.c
%.o: %.cc
%.o: %.cpp
# Include files are order-only prerequisites for compilation:
%$(OBJ): %.c | $(COMMON_INC) $(INSTALL_INC)
@@ -261,7 +286,7 @@ YACCOPT ?= $($*_YACCOPT)
# must be a separate rule since when not using '-d' the
# prefix for .h will be different then .c
%.h : %.c %.y
%.h: %.c %.y
%.c: %.l
@$(RM) $@
@@ -348,23 +373,26 @@ $(MODNAME): %$(MODEXT): %$(EXE)
#---------------------------------------------------------------
# Automated testing
runtests: $(TESTSCRIPTS)
runtests: run-tap-tests
run-tap-tests: | build
ifneq ($(TESTSCRIPTS.t),)
ifdef RUNTESTS_ENABLED
-$(PERL) -MTest::Harness -e 'runtests @ARGV if @ARGV;' $^
$(ECHO) "$(PROVE) $(TESTSCRIPTS.t)"
@$(PROVE) $(TESTSCRIPTS.t) || $(PROVE_FAILURE)
endif
endif
testspec: $(TESTSCRIPTS)
@$(RM) $@
@echo OS-class: $(OS_CLASS) > $@
@echo Target-arch: $(T_A) >> $@
$(if $^, @echo Tests: $^ >> $@)
$(if $(TESTFILES), @echo Files: $(TESTFILES) >> $@)
$(if $(TESTSPEC_$(OS_CLASS)), @echo "Harness: $(TESTSPEC_$(OS_CLASS))" >> $@)
tapfiles: $(TAPFILES)
junitfiles: $(JUNITFILES)
# prevent deletion of partial output from failing tests
.PRECIOUS: $(TAPFILES) $(JUNITFILES)
test-results: tapfiles
ifneq ($(TAPFILES),)
test-results: tap-results
tap-results: $(TAPFILES)
ifneq ($(strip $(TAPFILES)),)
ifdef RUNTESTS_ENABLED
prove --failures --ext .tap --exec "$(CAT)" --color $(TAPFILES)
$(ECHO) "$(PROVE.tap) $(TAPFILES)"
@$(PROVE.tap) $(TAPFILES) || $(PROVE_FAILURE)
endif
CURRENT_TAPFILES := $(wildcard $(TAPFILES))
@@ -372,23 +400,21 @@ CURRENT_JUNITFILES := $(wildcard $(JUNITFILES))
endif
clean-tests:
ifneq ($(CURRENT_TAPFILES),)
$(RM) $(CURRENT_TAPFILES)
ifneq ($(CURRENT_TAPFILES)$(TAPS_FAILED_LOG),)
$(RM) $(CURRENT_TAPFILES) $(TAPS_FAILED_LOG)
endif
ifneq ($(CURRENT_JUNITFILES),)
$(RM) $(CURRENT_JUNITFILES)
endif
tapfiles: $(TESTSCRIPTS) $(TAPFILES)
junitfiles: $(JUNITFILES)
# A .tap file is the output from running the associated test script
%.tap: %.t
$(TAPFILES.t): %.tap: %.t | build
ifdef RUNTESTS_ENABLED
-$(PERL) $< -tap > $@
$(ECHO) "$(PERL) $< -tap > $@"
@$(PERL) $< -tap > $@ || $(TAPFILE_FAILURE)
endif
%.xml: %.tap
$(JUNITFILES.t): %-results.xml: %.tap
$(TAPTOJUNIT) --puretap --output $@ --input $< $*
# If there's a perl test script (.plt) available, use it
@@ -403,6 +429,23 @@ endif
$(PERL) $(TOOLS)/makeTestfile.pl $(T_A) $(EPICS_HOST_ARCH) $@ $<
#---------------------------------------------------------------
# Generate $(API_HEADER) files on request (%API.h)
ifdef API_HEADER
# Install them
INC += $(API_HEADER)
# Ensure we generate them early enough
INSTALL_API_HEADERS = $(addprefix $(INSTALL_INCLUDE)/,$(API_HEADER))
$(filter-out $(INSTALL_API_HEADERS), $(INSTALL_INC)) $(HDEPENDS_FILES): \
| $(INSTALL_API_HEADERS)
# How to make one
$(COMMON_DIR)/%API.h: $(TOOLS)/makeAPIheader.pl
@$(RM) $@
$(PERL) $(TOOLS)/makeAPIheader.pl -o $@ $(@:$(COMMON_DIR)/%API.h=%)
endif
# Generate header with version number from VCS
ifneq ($(GENVERSION),)
@@ -414,14 +457,14 @@ endif
# Install rules for BIN_INSTALLS and LIB_INSTALLS
define BIN_INSTALLS_template
$$(INSTALL_BIN)/$$(notdir $(1)) : $(1)
$$(INSTALL_BIN)/$$(notdir $(1)): $(1)
$(ECHO) "Installing $$(<F)"
@$$(INSTALL) -d -m $$(BIN_PERMISSIONS) $$^ $$(INSTALL_BIN)
endef
$(foreach file, $(BIN_INSTALLS), $(eval $(call BIN_INSTALLS_template, $(file))))
define LIB_INSTALLS_template
$$(INSTALL_LIB)/$$(notdir $(1)) : $(1)
$$(INSTALL_LIB)/$$(notdir $(1)): $(1)
$(ECHO) "Installing $$(<F)"
@$$(INSTALL) -d -m $$(LIB_PERMISSIONS) $$^ $$(INSTALL_LIB)
endef
@@ -490,29 +533,33 @@ endif # LOADABLE_SHRLIB_SUFFIX
ifneq ($(INSTALL_CONFIGS),)
$(INSTALL_CONFIG)/%: %
$(ECHO) "Installing config file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $(abspath $< $(@D))
$(INSTALL_CONFIG)/%: ../%
$(ECHO) "Installing config file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $(abspath $< $(@D))
endif
$(INSTALL_INCLUDE)/% : $(COMMON_DIR)/%
$(INSTALL_INCLUDE)/%: $(COMMON_DIR)/%
$(ECHO) "Installing generated generic include file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_INCLUDE)/% : %
$(INSTALL_INCLUDE)/%: %
$(ECHO) "Installing generic include file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/% : %
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/%: %
$(ECHO) "Installing OS dependent include file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/% : %
$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/%: %
$(ECHO) "Installing compiler dependent include file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_DOC)/%: $(COMMON_DIR)/%
$(ECHO) "Installing generated doc $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_DOC)/%: %
$(ECHO) "Installing doc $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
@@ -521,6 +568,10 @@ $(INSTALL_DOC)/%: ../%
$(ECHO) "Installing doc $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: $(COMMON_DIR)/%
$(ECHO) "Installing generated html $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
$(ECHO) "Installing html $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
@@ -529,10 +580,6 @@ $(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
$(ECHO) "Installing html $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: $(COMMON_DIR)/%
$(ECHO) "Installing generated html $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
$(INSTALL_TEMPLATES_SUBDIR)/%: ../%
$(ECHO) "Installing $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
@@ -547,12 +594,12 @@ include $(CONFIG)/RULES_EXPAND
.PRECIOUS: $(COMMON_INC)
.PHONY: all host inc build install clean rebuild buildInstall build_clean
.PHONY: runtests tapfiles clean-tests test-results junitfiles
.PHONY: checkRelease warnRelease noCheckRelease FORCE
.PHONY: runtests run-tap-tests tapfiles junitfiles test-results tap-results
.PHONY: clean-tests checkRelease warnRelease noCheckRelease FORCE
include $(CONFIG)/RULES_COMMON
else
$(warning RULES_BUILD included more than once. \
Use 'make show-makefiles' to work out why.)
$(warning Warning: Base configure/RULES_BUILD file included more than once. \
Does configure/RELEASE have multiple pointers to $(EPICS_BASE)?)
endif # BASE_RULES_BUILD

View File

@@ -8,16 +8,18 @@
# These rules show the set of Makefiles, config files and
# rules files loaded by GNUmake.
# Protect against filenames containing colons (Windows)
SAFE_MAKEFILES = $(subst :,__colon__,$(MAKEFILE_LIST))
SHOW_MAKEFILES = $(SAFE_MAKEFILES:%=show-makefile.%)
show-makefiles: $(SHOW_MAKEFILES)
show-makefiles::
@echo
@echo Makefiles read:
define SHOW_MAKEFILE_template
show-makefiles::
@echo " $(1)"
endef
$(foreach file,$(MAKEFILE_LIST), \
$(eval $(call SHOW_MAKEFILE_template,$(file))))
# The sort prevents warnings about duplicate targets:
$(sort $(SHOW_MAKEFILES)): show-makefile.%:
@echo " $(subst __colon__,:,$(@:show-makefile.%=%))"
.PHONY: show-makefiles
.PHONY: show-makefiles show-makefile.%
# These rules support printing a Makefile variable values.
# Many variables are only set inside an O.<arch> build directory.
@@ -25,11 +27,22 @@ $(sort $(SHOW_MAKEFILES)): show-makefile.%:
PRINT_Var = $(@:PRINT.%=%)
PRINT.%:
@echo $(PRINT_Var) = '$($(PRINT_Var))'
@+echo $(PRINT_Var) = '$($(PRINT_Var))'
.PHONY: PRINT PRINT.%
# Clean rules for recursively deleting editor backup files
# and dependency (.d) files from CWD and below.
cvsclean:
$(PERL) $(CVSCLEAN)
depclean:
$(PERL) $(DEPCLEAN)
.PHONY: cvsclean depclean
# User specific rules
#
-include $(HOME)/configure/RULES_USER

View File

@@ -4,7 +4,7 @@
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
# in the file LICENSE that is included with this distribution.
#*************************************************************************
ARCHS += $(BUILD_ARCHS)
@@ -54,7 +54,7 @@ $(foreach dir, $(DIRS), \
define DEP_template2
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
$$(addsuffix $$(DIVIDER)$(2),$$(ddir))) | before-$(2)
endef
$(foreach action, $(ACTIONS), \
$(foreach dir, $(DIRS), \
@@ -79,15 +79,22 @@ $(foreach arch, $(ARCHS), \
dirPart = $(join $(dir $@), $(word 1, $(subst $(DIVIDER), ,$(notdir $@))))
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$(notdir $@))), \
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$(notdir $@)))))
$(DIRS) $(dirActionTargets) $(dirArchTargets) $(dirActionArchTargets) :
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$(notdir $@)))))
$(DIRS) $(dirActionTargets) $(dirArchTargets) $(dirActionArchTargets):
$(MAKE) -C $(dirPart) $(actionArchPart)
# before-action rules are run once prior to recursing through the
# list of subdirectories and running the action rule in each one.
# See DEP_template2 above for how that rule ordering is achieved.
beforeActions = $(addprefix before-,$(ACTIONS))
$(beforeActions):
$(ARCHS) $(ACTIONS) $(actionArchTargets) :%: \
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
.PHONY : $(DIRS) all host rebuild
.PHONY : $(ARCHS) $(ACTIONS)
.PHONY : $(ARCHS) $(ACTIONS) $(beforeActions)
.PHONY : $(dirActionTargets) $(dirArchTargets)
.PHONY : $(dirActionArchTargets)
.PHONY : $(actionArchTargets)

View File

@@ -12,28 +12,67 @@
vpath %@ $(USR_VPATH) $(ALL_SRC_DIRS)
#---------------------------------------------------------------
# Variable expansion
# Template variable expansion
# This feature allows you to instantiate simple template files at
# build-time, replacing macros spelled @NAME@ with values provided
# by the Makefile. The template filename must end with an @ sign,
# which is removed to create the expanded filename.
# Makefiles can use this variable expansion as follows:
#
# 1. Add the template filename (with the trailing @ sign) to either
# the EXPAND or EXPAND_COMMON variable, for example:
# EXPAND_COMMON += myVersion.h@
# Use EXPAND_COMMON for templates that don't depend on the
# target architecture (these will be generated in O.Common).
# 2. There are 2 ways of defining template macros. The simplest
# is to add a NAME=VALUE string to the EXPAND_VARS variable for
# the desired macros, e.g.:
# EXPAND_VARS += MY_MAJOR_VERSION=$(MY_MAJOR_VERSION)
# EXPAND_VARS += MY_MINOR_VERSION=$(MY_MINOR_VERSION)
# These values may not contain spaces, even if inside quotes.
# 3. A better way in the above case is to add the names of any
# Makefile variables that should be provided as macros to the
# variable EXPAND_ME, like this:
# EXPAND_ME += MY_MAJOR_VERSION
# EXPAND_ME += MY_MINOR_VERSION
# The values of these variables may contain spaces.
# 4. The macros TOP and ARCH will be set by the build system.
# TOP is the value of $(INSTALL_LOCATION) for this module.
# ARCH is the target architecture $(T_A), but is only set
# while expanding files in EXPAND
# 5. Add the expanded filename to some other variable that will
# cause it to be created and used, such as INC here:
# INC += myVersion.h
# Default settings
EXPAND_TOOL ?= $(PERL) $(TOOLS)/expandVars.pl
EXPAND_TOOL ?= $(PERL) $(TOOLS)/expandVars.pl $(QUIET_FLAG)
EXPANDFLAGS += -t $(INSTALL_LOCATION) -a $(T_A)
EXPANDFLAGS += $(addprefix -D ,$(EXPAND_VARS))
EXPANDARCH = -a $(T_A)
EXPANDFLAGS += -t $(INSTALL_LOCATION)
EXPANDFLAGS += $(addprefix -D ,$(EXPAND_VARS) $($@_EXPAND_VARS))
EXPANDFLAGS += $(foreach var, $(EXPAND_ME) $($@_EXPAND_ME), \
-D$(var)="$(strip $($(var)))")
# The names of files to be expanded must end with '@'
# Output files
EXPANDED = $(EXPAND:%@=%)
EXPANDED_COMMON = $(EXPAND_COMMON:%@=$(COMMON_DIR)/%)
$(EXPANDED): %: %@
$(ECHO) "Expanding $< to $@"
@$(RM) $@
@$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
$(EXPAND_TOOL) $(EXPANDARCH) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
$(EXPANDED_COMMON): $(COMMON_DIR)/%: %@
$(ECHO) "Expanding $< to $(COMMON_DIR)/$@"
$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
clean: expand_clean
expand_clean:
@$(RM) $(EXPANDED)
@$(RM) $(EXPANDED) $(EXPANDED_COMMON)
.PRECIOUS: $(EXPANDED)
.PRECIOUS: $(EXPANDED) $(EXPANDED_COMMON)
.PHONY: expand_clean
#---------------------------------------------------------------
@@ -42,8 +81,10 @@ expand_clean:
ASSEMBLE_TOOL ?= $(PERL) $(TOOLS)/assembleSnippets.pl
define COMMON_ASSEMBLY_template
ifneq '$$($1_PATTERN)' ''
$1_SNIPPETS += $$(foreach dir, .. $$(SRC_DIRS), \
$$(wildcard $$(dir)/$$($1_PATTERN)))
endif
$(COMMON_DIR)/$1: $$($1_SNIPPETS)
$(ECHO) "Assembling common file $$@ from snippets"
@$(RM) $1
@@ -54,8 +95,10 @@ $(foreach asy, $(COMMON_ASSEMBLIES), \
$(eval $(call COMMON_ASSEMBLY_template,$(strip $(asy)))))
define ASSEMBLY_template
ifneq '$$($1_PATTERN)' ''
$1_SNIPPETS += $$(foreach dir, .. $$(SRC_DIRS), \
$$(wildcard $$(dir)/$$($1_PATTERN)))
endif
$1: $$($1_SNIPPETS)
$(ECHO) "Assembling file $$@ from snippets"
@$(RM) $$@
@@ -70,4 +113,3 @@ $1$(DEP):
endef
$(foreach asy, $(sort $(COMMON_ASSEMBLIES) $(ASSEMBLIES)), \
$(eval $(call ASSEMBLY_DEP_template,$(strip $(asy)))))

55
configure/RULES_MODULES Normal file
View File

@@ -0,0 +1,55 @@
#*************************************************************************
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Support modules can use these rules to build submodules too.
#
# The requirements to do so are:
# 1. Create a file CONFIG_SITE.local in the same directory as the
# Makefile, which defines these variables (the last one is empty):
# PARENT_MODULE - The name submodules call their parent
# INSTALL_LOCATION := $($(PARENT_MODULE))
# CONFIG_INSTALLS =
# 2. The Makefile must set TOP and include $(TOP)/configure/CONFIG and
# CONFIG_SITE.local
# 3. Submodules are added to the SUBMODULES variable in the Makefile
# 4. Dependencies between submodules must be set using
# <name>_DEPEND_DIRS = <prerequisites>
# 5. The Makefile must end by including $(TOP)/configure/RULES_MODULES
# 6. Submodules must have a configure/RELEASE file that contains
# -include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
# 7. Submodules must have a configure/CONFIG_SITE file that contains
# -include $(TOP)/../CONFIG_SITE.local
# Add checked-out submodules to DIRS, unless INSTALL_LOCATION is empty
LIVE_SUBMODULES = $(subst /Makefile,, \
$(wildcard $(addsuffix /Makefile, $(SUBMODULES))))
live = $(if $(wildcard $(INSTALL_CONFIG)/RULES_TOP),LIVE,DEAD)
DIRS += $($(live)_SUBMODULES)
include $(CONFIG)/RULES_DIRS
RELEASE_LOCAL := RELEASE.$(EPICS_HOST_ARCH).local
# Ensure that RELEASE.<host>.local exists before doing anything else
all host $(DIRS) $(ARCHS) $(ACTIONS) $(dirActionTargets) $(dirArchTargets) \
$(dirActionArchTargets) $(actionArchTargets): | $(RELEASE_LOCAL)
# Convenience target
RELEASE.host: $(RELEASE_LOCAL)
$(RELEASE_LOCAL): Makefile $(CONFIG)/CONFIG_SITE \
$(wildcard $(CONFIG)/CONFIG_SITE.local)
$(ECHO) Creating $@ with
$(ECHO) " $(PARENT_MODULE) = $(INSTALL_ABSOLUTE)"
@echo $(PARENT_MODULE) = $(INSTALL_ABSOLUTE)> $@
.PHONY: RELEASE.host
# Testing: Combine test failure logs from the live submodules
TESTS_FAILED_LOGS = $(wildcard $(addsuffix /$(TESTS_FAILED_LOG), \
$(LIVE_SUBMODULES)))
runtests test-results: % : | $(addsuffix $(DIVIDER)%, $(LIVE_SUBMODULES))
$(if $(TESTS_FAILED_LOGS), \
@$(CAT) $(TESTS_FAILED_LOGS)>> $(TESTS_FAILED_PATH))

View File

@@ -21,7 +21,6 @@ $(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRA
#-----------------------------------------------------------------------
# This define block requires GNU make 3.81
define PROD_template
ifeq ($$(strip $$($(1)_OBJS) $$($(1)_SRCS) $$(PRODUCT_OBJS)),)
$(1)_OBJS = $(1)$$(OBJ)
@@ -95,12 +94,20 @@ $(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS), \
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_DEPLIBS)
ifneq ($$($(1)_API),)
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX): API_CPPFLAGS += -DBUILDING_$$($(1)_API)_API
endif
ifeq ($$(SHARED_LIBRARIES),YES)
ifdef SHRLIB_SUFFIX
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
ifneq ($$($(1)_API),)
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX): API_CPPFLAGS += -DBUILDING_$$($(1)_API)_API
endif
endif
endif
@@ -141,6 +148,11 @@ $(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS),\
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
ifneq ($$($(1)_API),)
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX): \
API_CPPFLAGS += -DBUILDING_$$($(1)_API)_API
endif
endef
$(foreach target, $(LOADABLE_LIBRARY), \

View File

@@ -9,90 +9,120 @@
include $(CONFIG)/RULES_DIRS
distclean: realclean cvsclean realuninstall
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
cvsclean:
$(PERL) $(CVSCLEAN)
DEPCLEAN = $(call FIND_TOOL,depclean.pl)
depclean:
$(PERL) $(DEPCLEAN)
realuninstall: uninstallDirs
$(RMDIR) $(INSTALL_LOCATION_BIN)
$(RMDIR) $(INSTALL_LOCATION_LIB)
UNINSTALL_DIRS += $(INSTALL_DBD) $(INSTALL_INCLUDE) $(INSTALL_DOC) \
$(INSTALL_HTML) $(INSTALL_TEMPLATES) $(INSTALL_DB) $(DIRECTORY_TARGETS)
ifneq ($(INSTALL_LOCATION),$(TOP))
ifneq ($(INSTALL_LOCATION),$(EPICS_BASE))
UNINSTALL_DIRS += $(INSTALL_CONFIG)
# Disable most top rules when installing into a parent's tree, indicated
# by PARENT_MODULE being set in the modules/CONFIG_SITE.local file and
# INSTALL_LOCATION pointing to the the same place as in the parent.
ifeq ($(origin PARENT_MODULE),file)
ifeq ($(INSTALL_LOCATION),$($(PARENT_MODULE)))
DISABLE_TOP_RULES=YES
endif
endif
endif
uninstallDirs:
ifndef DISABLE_TOP_RULES
#
# Rules for a regular application top directory
#
# When run by 'make distclean' the realuninstall target also
# removes any modules/RELEASE.<host>.local files
distclean: realclean cvsclean realuninstall
realuninstall: uninstallDirs
$(RMDIR) $(INSTALL_LOCATION_BIN) $(INSTALL_LOCATION_LIB)
ifeq (modules,$(filter modules,$(DIRS)))
ifeq (distclean,$(filter distclean,$(MAKECMDGOALS)))
$(RM) $(wildcard modules/RELEASE.*.local)
endif
endif
UNINSTALL_DIRS += $(INSTALL_DB) $(INSTALL_DBD) $(INSTALL_DOC) $(INSTALL_HTML)
UNINSTALL_DIRS += $(INSTALL_INCLUDE) $(INSTALL_TEMPLATES) $(DIRECTORY_TARGETS)
ifneq ($(INSTALL_LOCATION),$(TOP))
UNINSTALL_DIRS += $(INSTALL_CONFIG)
endif
uninstallDirs:
$(RMDIR) $(UNINSTALL_DIRS)
uninstall: archuninstall uninstallDirs
# Remove the bin and lib directories if they have no sub-directories
#
EMPTY_INSTALL_DIRS = \
$(if $(wildcard $(INSTALL_LOCATION_BIN)/*),,$(INSTALL_LOCATION_BIN)) \
$(if $(wildcard $(INSTALL_LOCATION_LIB)/*),,$(INSTALL_LOCATION_LIB))
uninstall: archuninstall uninstallDirs
$(RMDIR) $(EMPTY_INSTALL_DIRS)
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS)) | cleandirs
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
uninstall$(DIVIDER)%:
$(RMDIR) $(INSTALL_LOCATION_BIN)/$(archPart)
$(RMDIR) $(INSTALL_LOCATION_LIB)/$(archPart)
uninstall$(DIVIDER)%:
$(RMDIR) $(addsuffix /$(subst uninstall$(DIVIDER),,$@), \
$(INSTALL_LOCATION_BIN) $(INSTALL_LOCATION_LIB))
cleandirs:
@$(NOP)
ifeq ($(wildcard $(INSTALL_LOCATION_BIN)/*),)
$(RMDIR) $(INSTALL_LOCATION_BIN)
endif
ifeq ($(wildcard $(INSTALL_LOCATION_LIB)/*),)
$(RMDIR) $(INSTALL_LOCATION_LIB)
endif
# Only run this at the top of the parent
runtests test-results:
@$(SHOWTESTFAILURES)
else
#
# Using a disabled rule aborts
#
distclean uninstall realuninstall archuninstall:
$(error Target '$@' not available in a submodule)
endif # DISABLE_TOP_RULES
# Clean out old results
before-runtests before-test-results: rm-failure-file
rm-failure-file:
$(RM) $(TESTS_FAILED_PATH)
help:
@echo "Usage: gnumake [options] [target] ..."
@echo "Targets supported by all Makefiles:"
@echo " all - Same as install (default rule)"
@echo " inc - Installs header files"
@echo " inc - Installs header, dbd and html files"
@echo " build - Builds and installs all targets"
@echo " install - Builds and installs all targets"
@echo " buildInstall - Same as install (deprecated)"
@echo " clean - Removes the O.<arch> dirs created by running make"
@echo " In O.<arch> dir, clean removes build created files"
@echo " realclean - Removes ALL O.<arch> dirs"
@echo " Cannot be used within an O.<arch> dir"
@echo " rebuild - Same as clean install"
@echo " archclean - Removes O.<arch> dirs but not O.Common dir"
@echo " runtests - Run self-tests, summarize results"
@echo " depclean - Removes .d files from all O.<arch> dirs."
@echo " cvsclean - Removes backup files etc. from all dirs below"
@echo " runtests - Run self-tests, summarize results immediately"
@echo " tapfiles - Run self-tests, save to O.<arch>/*.tap files"
@echo " test-results - Summarize all O.<arch>/*.tap files"
@echo " clean-tests - Removes all O.<arch>/*.tap files"
@echo "\"Partial\" build targets supported by Makefiles:"
@echo " host - Builds and installs $(EPICS_HOST_ARCH) only."
@echo " inc$(DIVIDER)<arch> - Installs <arch> only header files."
@echo " build$(DIVIDER)<arch> - Builds and installs <arch> only."
@echo " install$(DIVIDER)<arch> - Builds and installs <arch> only."
@echo " clean$(DIVIDER)<arch> - Cleans <arch> binaries in O.<arch> dirs only."
@echo " uninstall$(DIVIDER)<arch> - Remove bin & lib directories for <arch> only."
@echo "Targets supported by top level Makefile:"
ifndef DISABLE_TOP_RULES
@echo " archuninstall - Remove bin & lib directories created by this hostarch."
@echo " uninstall$(DIVIDER)<arch> - Remove bin & lib directories for <arch> only."
@echo " uninstall - Remove install directories created by this hostarch."
@echo " realuninstall - Removes ALL install dirs"
@echo " distclean - Same as realclean cvsclean realuninstall."
@echo " depclean - Removes all .d files from O.<arch> directories."
@echo " cvsclean - Removes cvs .#* files in all dirs of directory tree"
@echo " distclean - Does realclean cvsclean realuninstall and deletes any"
@echo " generated modules/RELEASE.<host>.local files"
endif
@echo " help - Prints this list of valid make targets "
@echo "Indiv. object targets are supported by O.<arch> level Makefile .e.g"
@echo "Object targets are supported by the O.<arch> level Makefile .e.g"
@echo " xxxRecord.o"
.PHONY: cleandirs distclean cvsclean depclean
.PHONY: distclean uninstall rm-failure-file help
.PHONY: realuninstall archuninstall uninstallDirs
.PHONY: uninstall help
# Include <top>/cfg/TOP_RULES* files from tops defined in RELEASE* files
#
RELEASE_CFG_TOP_RULES = $(foreach top, $(RELEASE_TOPS), \
$(wildcard $($(top))/cfg/TOP_RULES*))
ifneq ($(RELEASE_CFG_TOP_RULES),)
include $(RELEASE_CFG_TOP_RULES)
ifndef DISABLE_TOP_RULES
# Include <top>/cfg/TOP_RULES* files from tops defined in RELEASE* files
#
RELEASE_CFG_TOP_RULES = $(foreach top, $(RELEASE_TOPS), \
$(wildcard $($(top))/cfg/TOP_RULES*))
ifneq ($(RELEASE_CFG_TOP_RULES),)
include $(RELEASE_CFG_TOP_RULES)
endif
endif

View File

@@ -3,8 +3,8 @@
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# SPDX-License-Identifier: EPICS
# EPICS Base is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Makefile for base/src/sample

View File

@@ -28,12 +28,13 @@ ifneq ($(CONFIG),$(TOP)/configure)
endif
#--------------------------------------------------
# Set RTEMS_BSP from T_A if not already done
# Set RTEMS_BSP and GNU_TARGET if not already done
RTEMS_BSP ?= $(subst RTEMS-,,$(T_A))
GNU_TARGET ?= $(RTEMS_TARGET_CPU)-rtems
#-------------------------------------------------------
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.
include $(RTEMS_BASE)/$(RTEMS_TARGET_CPU)-rtems$(RTEMS_VERSION)/$(RTEMS_BSP)/Makefile.inc
include $(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/$(RTEMS_BSP)/Makefile.inc
include $(RTEMS_CUSTOM)
include $(CONFIG.CC)
@@ -41,7 +42,7 @@ include $(CONFIG.CC)
# RTEMS cross-development tools
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
CCC = $(RTEMS_TOOLS)/bin/$(CXX)
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E $(GCCSPECS)
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r
@@ -62,9 +63,9 @@ CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
$(STATIC_CXXFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
LDFLAGS += $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
@@ -76,7 +77,10 @@ CPPFLAGS += $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
ECHO = @$(if $(findstring s,$(MFLAGS)),$(NOP),echo)
ECHO = @$(if $(make-s),$(NOP),echo)
# Originally set in os/CONFIG.UnixCommon.Common
MKDIR = mkdir -p
#--------------------------------------------------
# Although RTEMS uses gcc, it wants to use gcc its own way
@@ -95,20 +99,71 @@ MODEXT=.obj
OS_CLASS = RTEMS
#--------------------------------------------------
# Operating system flags
OP_SYS_LDLIBS += -lrtemsCom -lc -lrtemscpu -lCom -lnfs -lm
OP_SYS_LDFLAGS += $(CPU_CFLAGS) -u Init \
# Operating system compile & link flags
OP_SYS_CFLAGS += -D__LINUX_ERRNO_EXTENSIONS__
# Has RTEMS been built with the internal legacy stack?
ifeq ($(RTEMS_LEGACY_NETWORKING_INTERNAL),yes)
RTEMS_HAS_NETWORKING = yes
RTEMS_NETWORKING = legacy_internal
endif
# Has RTEMS been built with the legacy stack as a separate package?
ifeq ($(RTEMS_LEGACY_NETWORKING),yes)
RTEMS_HAS_NETWORKING = yes
RTEMS_NETWORKING = legacy
endif
# Has RTEMS been built with the libbsd stack as a separate package?
ifeq ($(RTEMS_BSD_NETWORKING),yes)
RTEMS_HAS_NETWORKING = yes
RTEMS_NETWORKING = bsd
endif
RTEMS_LEGACY_NET_LIB_no=
# Legacy network with RTEMS 5 and earlier
RTEMS_NET_LIB_legacy_internal=-lnfs
OP_SYS_CFLAGS_NET_legacy_internal = -DRTEMS_LEGACY_STACK
# Legacy network with RTEMS 6 is a separate package and library
RTEMS_NET_LIB_legacy=-lnfs -lnetworking -lnfs
OP_SYS_CFLAGS_NET_legacy = -DRTEMS_LEGACY_STACK
# LibBSD network with RTEMS 5 and 6 is a separate package and library
RTEMS_NET_LIB_bsd=-lbsd
OP_SYS_CFLAGS_NET_bsd = -DRTEMS_LIBBSD_STACK
# Set the networking flags
OP_SYS_CFLAGS += $(OP_SYS_CFLAGS_NET_$(RTEMS_NETWORKING))
POSIX_CPPFLAGS_posix = -D_GNU_SOURCE -D_DEFAULT_SOURCE
POSIX_CPPFLAGS = $(POSIX_CPPFLAGS_$(OS_API))
OP_SYS_LDLIBS_posix_NET_yes = -ltftpfs -lz -ltelnetd
OP_SYS_LDLIBS_posix_NET_yes += $(RTEMS_NET_LIB_$(RTEMS_NETWORKING))
OP_SYS_LDLIBS_posix_NET_no = -ltftpfs -lz
OP_SYS_LDLIBS_score_NET_yes = -lnfs
OP_SYS_LDLIBS_score_NET_no = -lnfs
OP_SYS_LDLIBS += -lrtemsCom -lCom
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(OS_API)_NET_$(RTEMS_HAS_NETWORKING))
OP_SYS_LDLIBS += -lrtemscpu -lc -lm
OP_SYS_LDFLAGS_posix = -u POSIX_Init
OP_SYS_LDFLAGS_score = -u Init \
$(PROJECT_RELEASE)/lib/no-dpmem.rel \
$(PROJECT_RELEASE)/lib/no-mp.rel \
$(PROJECT_RELEASE)/lib/no-part.rel \
$(PROJECT_RELEASE)/lib/no-signal.rel \
$(PROJECT_RELEASE)/lib/no-rtmon.rel
OP_SYS_LDFLAGS += $(CPU_CFLAGS) $(OP_SYS_LDFLAGS_$(OS_API))
# Settings for GeSys
MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib
# Do not link against libraries which are part of the Generic Image
GESYS_LIBS += -lgcc
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++ -lbspExt
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub

View File

@@ -1,14 +0,0 @@
#
# CONFIG.Common.RTEMS-at91rm9200ek
# Author: Ralf Hartmann
# BESSY
# Ralf.Hartmann@bessy.de
#
# Atmel AT91RM9200-EK evaluation kit
# using the AT91RM9200 ARM9-based 32-bit RISC microcontroller
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_BSP = at91rm9200ek
RTEMS_TARGET_CPU = arm
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -0,0 +1,18 @@
#
# CONFIG.Common.RTEMS-beaglebineblack
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
#
# All RTEMS targets use the same Makefile fragment
#
#EXE = .elf
RTEMS_BSP = beagleboneblack
RTEMS_TARGET_CPU = arm
GNU_TARGET = arm-rtems
OP_SYS_LDLIBS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/beagleboneblack/lib/
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -8,14 +8,16 @@ EXE = .elf
RTEMS_BSP = beatnik
RTEMS_TARGET_CPU = powerpc
GNU_TARGET = powerpc-rtems
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
# optimization trouble in postfix.c
ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
#will use bootp
#ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
OP_SYS_LDLIBS += -lbspExt
MUNCH_SUFFIX = .boot
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
endef

View File

@@ -1,10 +0,0 @@
#
# Author: W. Eric Norum
# Canadian Light Source
# eric@cls.usask.ca
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_BSP = gen68360
RTEMS_TARGET_CPU = m68k
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -1,10 +0,0 @@
#
# Author: W. Eric Norum
# Canadian Light Source
# eric@cls.usask.ca
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_BSP = mcp750
RTEMS_TARGET_CPU = ppc
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -1,10 +0,0 @@
#
# Author: W. Eric Norum
# Canadian Light Source
# eric@cls.usask.ca
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_BSP = mvme167
RTEMS_TARGET_CPU = m68k
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -11,8 +11,6 @@ GNU_TARGET = powerpc-rtems
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
OP_SYS_LDLIBS += -lbspExt
MUNCH_SUFFIX = .boot
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
@@ -21,6 +19,7 @@ define MUNCH_CMD
$(PROJECT_RELEASE)/lib/bootloader.o \
--just-symbols=$< \
-b binary rtems.gz \
--no-warn-mismatch \
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
-Map $<.map
rm -f rtems.gz

View File

@@ -1,7 +1,6 @@
#
# Author: Matt Rippa
#
RTEMS_BSP = mvme2700
RTEMS_TARGET_CPU = powerpc
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
@@ -11,15 +10,21 @@ MUNCH_SUFFIX = .boot
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
gzip -f9 rtems
$(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -o $@ \
$(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -o $@.elf \
$(PROJECT_RELEASE)/lib/bootloader.o \
--just-symbols=$< \
-b binary rtems.gz \
--no-warn-mismatch \
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
-Map $<.map
rm -f rtems.gz
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $@.elf $@
rm -f rtems.gz $@.elf
endef
OP_SYS_LDLIBS += -lbspExt
include $(CONFIG)/os/CONFIG.Common.RTEMS
ifeq ($(shell test $(RTEMS_VERSION) -ge 5; echo $$?),0)
RTEMS_BSP = mvme2700
else
RTEMS_BSP = mvme2307
endif

View File

@@ -13,8 +13,6 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
OP_SYS_LDLIBS += -lbspExt
MUNCH_SUFFIX = .boot
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@

View File

@@ -14,13 +14,9 @@ ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
OP_SYS_LDLIBS += -lbspExt
MUNCH_SUFFIX = .boot
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
endef
OP_SYS_LDLIBS += -lbspExt
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -1,12 +1,13 @@
# CONFIG.Common.RTEMS-pc386
#
# Author: W. Eric Norum
# Canadian Light Source
# eric@cls.usask.ca
#
# All RTEMS targets use the same Makefile fragment
# Definitions for the RTEMS-pc386 target, RTEMS 4.x only
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc386
#
#-------------------------------------------------------
RTEMS_BSP = pc386
RTEMS_TARGET_CPU = i386
GNU_TARGET = i386-rtems
MUNCH_SUFFIX = .boot
define MUNCH_CMD
@@ -22,3 +23,10 @@ include $(CONFIG)/os/CONFIG.Common.RTEMS
# Put text segment where it will work with etherboot
#
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
# This check must appear after the above include
ifeq ($(shell test $(RTEMS_VERSION) -ge 5; echo $$?),0)
$(info *** This target is not compatible with the configured RTEMS version.)
$(info *** Build the RTEMS-pc686 (-qemu) target for RTEMS 5.x)
$(error Can't continue)
endif

View File

@@ -6,6 +6,7 @@
#-------------------------------------------------------
# Include definitions from RTEMS-pc386
# For Tests overwrite it with pc686
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc386
RTEMS_QEMU_FIXUPS = YES

View File

@@ -0,0 +1,39 @@
# CONFIG.Common.RTEMS-pc686
#
# Definitions for the RTEMS-pc686 target, RTEMS 5.x only
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc686
#
#-------------------------------------------------------
#
# Author: W. Eric Norum
# Canadian Light Source
# eric@cls.usask.ca
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_BSP = pc686
RTEMS_TARGET_CPU = i386
GNU_TARGET = i386-rtems
MUNCH_SUFFIX = .boot
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
endef
OP_SYS_LDLIBS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/pc686/lib/
include $(CONFIG)/os/CONFIG.Common.RTEMS
#
# Put text segment where it will work with etherboot
#
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
# This check must appear after the above include
ifeq ($(shell test $(RTEMS_VERSION) -lt 5; echo $$?),0)
$(info *** This target is not compatible with the configured RTEMS version.)
$(info *** Build the RTEMS-pc386 (-qemu) target for RTEMS 4.x)
$(error Can't continue)
endif

View File

@@ -0,0 +1,11 @@
# CONFIG.Common.RTEMS-pc686-qemu
#
# Definitions for the RTEMS-pc686-qemu target
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc686-qemu
#
#-------------------------------------------------------
# Include definitions from RTEMS-pc686
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc686
RTEMS_QEMU_FIXUPS = YES

View File

@@ -1,10 +0,0 @@
#
# Author: W. Eric Norum
# University of Saskatchewan
# eric.norum@usask.ca
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_BSP = psim
RTEMS_TARGET_CPU = ppc
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -0,0 +1,48 @@
#
# CONFIG.Common.RTEMS-qoriq_e500
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
#
# All RTEMS targets use the same Makefile fragment
#
EXE = .elf
RTEMS_BSP = qoriq_e500
RTEMS_TARGET_CPU = powerpc
GNU_TARGET = powerpc-rtems
# optimization trouble in postfix.c
ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
#will use bootp
#ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
#ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
#ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
#netbsdlib
#ARCH_DEP_CFLAGS += -I$(RTEMS_BASE)/powerpc-rtems5/qoriq_e500/lib/include
#OP_SYS_LDLIBS += -lbspExt #does not use posix stuff ... want to ignore
OP_SYS_LDLIBS += -Wl,--gc-sections
#ARCH_DEP_LDFLAGS = -mcpu=8540 -meabi -msdata=sysv -mstrict-align -mspe -mabi=spe -mfloat-gprs=double
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/$(RTEMS_BSP)/lib
MUNCH_SUFFIX = .img
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
gzip -9 -f $@
$(RTEMS_TOOLS)/bin/mkimage.py -A ppc -O linux -T kernel -a 0x4000 -e 0x4000 -n $* -d $@.gz $*.img
endef
include $(CONFIG)/os/CONFIG.Common.RTEMS
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
%.sym: %$(EXE)
$(XSYMS) $^ $@
%.bin: %$(EXE)
$(OBJCOPY) -Obinary $^ $@
#PRODTARGETS+=$(INSTALL_RTEMSSYMS) $(INSTALL_RTEMSIMGS)

View File

@@ -9,6 +9,10 @@ RTEMS_BSP = uC5282
RTEMS_TARGET_CPU = m68k
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
# Hopefully a temporary fix:
ARCH_DEP_CXXFLAGS_5 = -std=c++98
ARCH_DEP_CXXFLAGS += $(ARCH_DEP_CXXFLAGS_$(RTEMS_VERSION))
MUNCH_SUFFIX = .boot
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@

View File

@@ -0,0 +1,20 @@
#
# CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
#
# All RTEMS targets use the same Makefile fragment
#
#EXE = .elf
RTEMS_BSP = xilinx_zynq_a9_qemu
RTEMS_TARGET_CPU = arm
GNU_TARGET = arm-rtems
#use dhcp/bootp
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
OP_SYS_LDLIBS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_a9_qemu/lib/
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -0,0 +1,19 @@
#
# CONFIG.Common.RTEMS-xilinx_zynq_zedboard
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
#
# All RTEMS targets use the same Makefile fragment
#
#EXE = .elf
RTEMS_BSP = xilinx_zynq_zedboard
RTEMS_TARGET_CPU = arm
GNU_TARGET = arm-rtems
OP_SYS_LDLIBS += -Wl,--gc-sections
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_zedboard/lib/
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -8,7 +8,7 @@
#-------------------------------------------------------
# Unix valid build types
VALID_BUILDS = Host Ioc
VALID_BUILDS = Host Ioc Command
#-------------------------------------------------------
# Unix prefix and suffix definitions
@@ -56,7 +56,7 @@ SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS)) \
SHRLIB_DEPLIB_DIRS = $(foreach word, \
$(sort $(INSTALL_LIB)/ $(dir $($*_DEPLIBS) $(SHRLIB_DEPLIBS))), \
$(shell $(FULLPATHNAME) $(word)))
$(abspath $(word)))
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-L%)
@@ -85,7 +85,7 @@ PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
PROD_DEPLIB_DIRS = $(foreach word, \
$(sort $(INSTALL_LIB)/ $(dir $($*_DEPLIBS) $(PROD_DEPLIBS))), \
$(shell $(FULLPATHNAME) $(word)))
$(abspath $(word)))
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-L%)

View File

@@ -1,14 +1,14 @@
# CONFIG.Common.darwin-ppc
# CONFIG.Common.darwin-aarch64
#
# This file is maintained by the build community.
#
# Definitions for darwin-ppc target builds
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppc
# Definitions for darwin-aarch64 target builds
# Sites may override these definitions in CONFIG_SITE.Common.darwin-aarch64
#-------------------------------------------------------
#
# To build universal binaries, configure ARCH_CLASS
# in the file CONFIG_SITE.Common.darwin-ppc
# in the file CONFIG_SITE.Common.darwin-aarch64
# Include definitions common to all Darwin targets
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon

View File

@@ -1,14 +0,0 @@
# CONFIG.Common.darwin-ppcx86
#
# This file is maintained by the build community.
#
# Definitions for Darwin universal PowerPC + x86 target builds
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppcx86
#-------------------------------------------------------
#
# To build universal binaries, configure ARCH_CLASS
# in the file CONFIG_SITE.Common.darwin-ppcx86
# Include definitions common to all Darwin targets
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon

View File

@@ -7,6 +7,10 @@
# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.UnixCommon
GNU = NO
CMPLR_CLASS = clang
CC = clang
CCC = clang++
OS_CLASS = freebsd

View File

@@ -42,12 +42,6 @@ ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
OP_SYS_CFLAGS += -isysroot $(SDK_DIR)
OP_SYS_LDFLAGS += -isysroot $(SDK_DIR)
#--------------------------------------------------
# Always compile in debugging symbol table information
#
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
#-------------------------------------------------------
# Compiler definitions:
@@ -77,7 +71,7 @@ OP_SYS_LDFLAGS += -dynamic -Z -L$(SDK_DIR)/usr/lib -L$(SDK_DIR)/usr/lib/system
# Shared libraries
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
-install_name $(abspath $(INSTALL_LIB))/$@ \
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
-current_version $(SHRLIB_VERSION)
SHRLIB_SUFFIX_BASE = .dylib

View File

@@ -1,21 +0,0 @@
# CONFIG.Common.linux-386
#
# This file is maintained by the build community.
#
# Definitions for linux-386 target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-386
#-------------------------------------------------------
# Include definitions common to all linux x86 targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS = -march=i386
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
# e.g. i386-pc-linux-gnu-gcc, put a GNU_TARGET definition in
# CONFIG_SITE.<host>.linux-386 file, e.g. GNU_TARGET=i386-pc-linux-gnu

View File

@@ -1,19 +0,0 @@
# CONFIG.Common.linux-486
#
# Definitions for linux-486 target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-486
#-------------------------------------------------------
# Include definitions common to all linux x86 targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS = -march=i486
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
# e.g. i486-pc-linux-gnu-gcc, put a GNU_TARGET definition in
# CONFIG_SITE.<host>.linux-486 file, e.g. GNU_TARGET=i486-pc-linux-gnu

View File

@@ -1,21 +0,0 @@
# CONFIG.Common.linux-586
#
# Definitions for linux-586 target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-586
#-------------------------------------------------------
# Include definitions common to all linux x86 targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
# i586 is equivalent to pentium
ARCH_DEP_CFLAGS = -march=i586
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
# e.g. i586-pc-linux-gnu-gcc, put a GNU_TARGET definition in
# CONFIG_SITE.<host>.linux-586 file, e.g. GNU_TARGET=i586-pc-linux-gnu

View File

@@ -1,20 +0,0 @@
# CONFIG.Common.linux-686
#
# Definitions for linux-686 target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-686
#-------------------------------------------------------
# Include definitions common to all linux x86 targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
# i686 is euivalent to pentiumpro
ARCH_DEP_CFLAGS = -march=i686
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
# e.g. i686-pc-linux-gnu-gcc, put a GNU_TARGET definition in
# CONFIG_SITE.<host>.linux-686 file, e.g. GNU_TARGET=i686-pc-linux-gnu

View File

@@ -0,0 +1,11 @@
# CONFIG.Common.linux-aarch64
#
# Definitions for linux-arm target builds
# Override these settings in CONFIG_SITE.Common.linux-aarch64
#-------------------------------------------------------
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = aarch64

View File

@@ -1,9 +0,0 @@
# CONFIG.Common.linux-arm_eb
#
# Definitions for linux-arm_eb (big endian) target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_eb
#-------------------------------------------------------
# Include definitions common to all Linux-arm targets
include $(CONFIG)/os/CONFIG.Common.linux-arm

View File

@@ -1,9 +0,0 @@
# CONFIG.Common.linux-arm_el
#
# Definitions for linux-arm_el (little endian) target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_el
#-------------------------------------------------------
# Include definitions common to all linux-arm targets
include $(CONFIG)/os/CONFIG.Common.linux-arm

View File

@@ -1,19 +0,0 @@
# CONFIG.Common.linux-athlon
#
# Definitions for linux-athlon target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-athlon
#-------------------------------------------------------
# Include definitions common to all linux x86 targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS += -march=athlon-mp -mfpmath=sse
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
# e.g. athlon-pc-linux-gnu-gcc, put a GNU_TARGET definition in
# CONFIG_SITE.<host>.linux-athlon file, e.g. GNU_TARGET=athlon-pc-linux-gnu

View File

@@ -1,58 +0,0 @@
# CONFIG.Common.linux-cris
#
# Author: Peter Zumbruch
# GSI
# P.Zumbruch@gsi.de
#
# Definitions for linux-cris target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-cris
#-------------------------------------------------------
# Include definitions common to all linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = cris
ifeq ($(BUILD_CLASS),CROSS)
GNU_TARGET = cris-axis-linux-gnu
# prefix of compiler tools
CMPLR_SUFFIX =
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
# CROSS_TOP_DIR
# usually AXIS_TOP_DIR is defined via
# the init_env script of the SDK provided by Axis
#
## AXIS_TOP_DIR defined? Make missing mandatory variable visible
AXIS_TOP_DIR?=UNDEFINED_ENV__AXIS_TOP_DIR
AXIS_SDK_DIR?=$(AXIS_TOP_DIR)
# CROSS_INCLUDES
AXIS_SDK_TARGET_INCLUDE_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/include
AXIS_SDK_TARGET_INCLUDE_DIR +=$(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/include
CROSS_INCLUDES = $(addprefix -isystem ,$(AXIS_SDK_TARGET_INCLUDE_DIR))
# CROSS_LDFLAGS
AXIS_SDK_TARGET_LIB_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/lib
AXIS_SDK_TARGET_LIB_DIR += $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/lib
CROSS_LDFLAGS = $(addprefix -L,$(AXIS_SDK_TARGET_LIB_DIR))
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-cris
ifeq ($(EPICS_HOST_ARCH), linux-x86)
-include $(CONFIG)/os/CONFIG.linux-x86.linux-cris
-include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-cris
endif
endif
SHARED_LIBRARIES=NO
STATIC_BUILD=YES
ARCH_DEP_CFLAGS += -mno-mul-bug-workaround
OP_SYS_CFLAGS += -mlinux
ARCH_DEP_CPPFLAGS += -D_cris_ -mlinux
#uncomment CRIS_COMPILER_DEBUG for debugging cris-compiled code
#CRIS_COMPILER_DEBUG

View File

@@ -15,7 +15,7 @@ include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = microblaze
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
GNU_TARGET = microblazeel-unknown-linux-gnu
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
endif

View File

@@ -13,7 +13,7 @@ include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = xscale
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
GNU_TARGET = xscale_be
CMPLR_PREFIX = $(GNU_TARGET:%=%-)

View File

@@ -23,15 +23,17 @@ STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
# Set runtime path for shared libraries if USE_RPATH=YES and STATIC_BUILD=NO
SHRLIBDIR_RPATH_LDFLAGS_YES_NO = $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
# Set runtime path for shared libraries if LINKER_USE_RPATH=YES
SHRLIBDIR_RPATH_LDFLAGS_YES = $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
SHRLIBDIR_RPATH_LDFLAGS_ORIGIN = $(shell $(MAKERPATH) -O '\$$ORIGIN' -F $(FINAL_DIR) -R $(LINKER_ORIGIN_ROOT) $(SHRLIB_DEPLIB_DIRS))
SHRLIBDIR_LDFLAGS += \
$(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)_$(STATIC_BUILD))
$(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Set runtime path for products if USE_RPATH=YES and STATIC_BUILD=NO
PRODDIR_RPATH_LDFLAGS_YES_NO = $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
# Set runtime path for products if LINKER_USE_RPATH=YES
PRODDIR_RPATH_LDFLAGS_YES = $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
PRODDIR_RPATH_LDFLAGS_ORIGIN = $(shell $(MAKERPATH) -O '\$$ORIGIN' -F $(FINAL_DIR) -R $(LINKER_ORIGIN_ROOT) $(PROD_DEPLIB_DIRS))
PRODDIR_LDFLAGS += \
$(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH)_$(STATIC_BUILD))
$(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Link libraries controlled by COMMANDLINE_LIBRARY
# The newest Linux versions only need readline, older ones need both

View File

@@ -0,0 +1,21 @@
# CONFIG.Common.vxWorks-e500v2
#
# Definitions for vxWorks-e500v2 target archs (MVME2500)
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-e500v2
#-------------------------------------------------------
# Include definitions common to all vxWorks target archs
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CFLAGS += -te500v2 -mhard-float
ARCH_DEP_CPPFLAGS += -DCPU=PPC85XX
ARCH_DEP_CFLAGS += -DCPU_VARIANT=_ppc85XX_e500v2
ARCH_DEP_CFLAGS += -mlongcall
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -12,7 +12,7 @@ ARCH_CLASS = x86
POSIX = NO
# Definitions used when COMMANDLINE_LIBRARY is READLINE
LDLIBS_READLINE = -lreadline -lcurses
LDLIBS_READLINE = -lreadline -ltermcap
ARCH_DEP_CFLAGS += -m32
ARCH_DEP_LDFLAGS += -m32
@@ -30,7 +30,7 @@ ARCH_DEP_LDFLAGS += -m32
# Compiler does not define __unix __unix__ unix
# Override for -DUNIX from CONFIG.Common.UnixCommon
OP_SYS_CPPFLAGS = -D_MINGW
OP_SYS_CPPFLAGS = -D_MINGW -D__USE_MINGW_ANSI_STDIO
EXE = .exe
RES = .coff

View File

@@ -11,6 +11,7 @@ RM = rm -f
MKDIR = mkdir -p
RMDIR = rm -rf
CAT = cat
TOUCH = touch
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.UnixCommon.Common

View File

@@ -0,0 +1,11 @@
# CONFIG.darwin-aarch64-debug.Common
#
# Definitions for darwin-aarch64-debug host builds - darwin-aarch64 target build with debug compiler flags
# Sites may override these definitions in CONFIG_SITE.darwin-aarch64-debug.Common
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.darwin-aarch64.Common
# Removes -O optimization and adds -g compile option
HOST_OPT=NO

View File

@@ -0,0 +1,8 @@
# CONFIG.darwin-aarch64.Common
#
# Definitions for darwin-aarch64 host builds
# Sites may override these definitions in CONFIG_SITE.darwin-aarch64.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -0,0 +1,14 @@
# CONFIG.darwin-aarch64.darwin-aarch64-debug
#
# Definitions for darwin-aarch64 host - darwin-aarch64-debug target build with debug compiler flags
# Sites may override these definitions in CONFIG_SITE.darwin-aarch64.darwin-aarch64-debug
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.Common.darwin-aarch64
-include $(CONFIG)/os/CONFIG.darwin-aarch64.darwin-aarch64
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-aarch64
-include $(CONFIG)/os/CONFIG_SITE.darwin-aarch64.darwin-aarch64
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -1,8 +0,0 @@
# CONFIG.darwin-ppc.Common
#
# Definitions for darwin-ppc host builds
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -1,13 +0,0 @@
# CONFIG.darwin-ppc.darwin-ppc-debug
#
# Definitions for darwin-ppc host - darwin-ppc-debug target build with debug compiler flags
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.darwin-ppc-debug
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.Common.darwin-ppc
-include $(CONFIG)/os/CONFIG.darwin-ppc.darwin-ppc
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-ppc
-include $(CONFIG)/os/CONFIG_SITE.darwin-ppc.darwin-ppc
BUILD_CLASS=HOST
HOST_OPT = NO

View File

@@ -1,8 +0,0 @@
# CONFIG.darwin-ppcx86.Common
#
# Definitions for Darwin universal PowerPC + x86 host builds
# Sites may override these definitions in CONFIG_SITE.darwin-ppcx86.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -0,0 +1,11 @@
# CONFIG.darwin-x86-debug.Common
#
# Definitions for darwin-x86-debug host builds - darwin-x86 target build with debug compiler flags
# Sites may override these definitions in CONFIG_SITE.darwin-x86-debug.Common
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.darwin-x86.Common
# Removes -O optimization and adds -g compile option
HOST_OPT=NO

View File

@@ -3,6 +3,6 @@
# Definitions for darwin-x86 host builds
# Sites may override these definitions in CONFIG_SITE.darwin-x86.Common
#-------------------------------------------------------
#support for IPv6 etc.
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -30,6 +30,7 @@ ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
#
# Special flags for Darwin
# No common blocks (as required when using shared libraries)
# OS provides socket address length
#
OP_SYS_CFLAGS += -fno-common
@@ -38,12 +39,6 @@ OP_SYS_CFLAGS += -fno-common
#
OP_SYS_CPPFLAGS += -Ddarwin
#
# Always compile in debugging symbol table information
#
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
#
# Libraries for command-line editing.
#
@@ -65,8 +60,8 @@ GNU = NO
#
# Darwin shared libraries
#
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined dynamic_lookup \
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace \
-install_name $(abspath $(INSTALL_LIB))/$@ \
$(addprefix -compatibility_version , $(SHRLIB_VERSION)) \
$(addprefix -current_version , $(SHRLIB_VERSION))
SHRLIB_SUFFIX_BASE = .dylib

View File

@@ -5,3 +5,4 @@
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common
CMPLR_CLASS = clang

View File

@@ -2,6 +2,7 @@
# Definitions for freebsd-x86 host - freebsd-x86 target builds
# Sites may override these definitions in CONFIG_SITE.freebsd-x86.freebsd-x86
#-------------------------------------------------------
GNU_DIR=/usr/local
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon

View File

@@ -2,12 +2,23 @@
# Definitions for freebsd-x86_64 host - freebsd-x86_64 target builds
# Sites may override these definitions in CONFIG_SITE.freebsd-x86_64.freebsd-x86_64
#-------------------------------------------------------
GNU_DIR=/usr
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
GNU_BIN = $(GNU_DIR)/bin
GNU_LIB = $(GNU_DIR)/lib
CMPLR_CLASS = clang
CC = $(GNU_BIN)/$(CMPLR_PREFIX)cc$(CMPLR_SUFFIX)
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)c++$(CMPLR_SUFFIX)
CPP = $(CC) -x c -E
GNU_LDLIBS_YES =
STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
STATIC_LDLIBS_NO=

View File

@@ -1,10 +0,0 @@
# CONFIG.linux-386.Common
#
# Definitions for linux-386 host builds
# Sites may override these definitions in CONFIG_SITE.linux-386.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common
WIND_HOST_TYPE = x86-linux2

View File

@@ -1,8 +0,0 @@
# CONFIG.linux-386.linux-386
#
# Definitions for linux-386 host - linux-386 target builds
# Sites may override these definitions in CONFIG_SITE.linux-386.linux-386
#-------------------------------------------------------
# Include linux-x86 compiler definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,10 +0,0 @@
# CONFIG.linux-486.Common
#
# Definitions for linux-486 host builds
# Sites may override these definitions in CONFIG_SITE.linux-486.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common
WIND_HOST_TYPE = x86-linux2

View File

@@ -1,9 +0,0 @@
# CONFIG.linux-486.linux-486
#
# Definitions for linux-486 host - linux-486 target builds
# Sites may override these definitions in CONFIG_SITE.linux-486.linux-486
#-------------------------------------------------------
# Include linux-x86 compiler definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,10 +0,0 @@
# CONFIG.linux-586.Common
#
# Definitions for linux-586 host builds
# Sites may override these definitions in CONFIG_SITE.linux-586.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common
WIND_HOST_TYPE = x86-linux2

Some files were not shown because too many files have changed in this diff Show More