Compare commits

...

1549 Commits
3.16 ... R7.0.6

Author SHA1 Message Date
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
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
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
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
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
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
Ralph Lange
2a14647eec Change -DEV to be based on next patch release number 2019-03-28 16:43:50 -07:00
Michael Davidsaver
597393a8ee libCom: drop CLOCK_MONOTONIC_RAW
Turns out this is ~10x slower to query than CLOCK_MONOTONIC
2019-03-28 09:59:24 -07:00
Andrew Johnson
bad8b25e4e Prevent submodules from cleaning the EPICS_BASE/configure directory 2019-03-20 16:12:14 -05:00
Andrew Johnson
7fe8373c32 Changes after creating the 7.0.2.1 tag 2019-03-20 15:28:37 -05:00
Andrew Johnson
72be690fec Set Base version to 7.0.2.1 (final) 2019-03-20 15:24:51 -05:00
Andrew Johnson
a5b3157ec1 Update version numbers for libcom and database 2019-03-20 15:18:05 -05:00
Andrew Johnson
9a062cd6a1 Update submodules 2019-03-20 15:16:55 -05:00
Andrew Johnson
592b935146 Document the macOS -flat_namespace flag change 2019-03-20 13:46:47 -05:00
Andrew Johnson
638391249d Update EPICS_TIMEZONE settings in CONFIG_SITE_ENV
Deleted 2018, added 2023.
2019-03-20 13:44:02 -05:00
Michael Davidsaver
cde682f7ba nonEpicsThreadPriorityTest is Linux only 2019-03-18 16:08:20 -07:00
Michael Davidsaver
89da4130fc make-tar.sh allow HEAD for testing 2019-03-18 13:49:25 -07:00
Michael Davidsaver
1d2637a04e update submodules 2019-03-18 13:26:47 -07:00
Michael Davidsaver
a2123db9fb Merge branch 'fix_1816841_only' into 7.0
* fix_1816841_only:
  Another hack to deal with RTEMS which is POSIX but still different
  stripped-down fix for 1816841 only
2019-03-17 18:43:34 -07:00
till straumann
7f55bb0386 Another hack to deal with RTEMS which is POSIX but still different 2019-03-14 11:47:52 -07:00
till straumann
511a541f31 stripped-down fix for 1816841 only 2019-03-14 10:36:55 -07:00
Michael Davidsaver
394c39da51 update release notes 2019-03-13 18:17:57 -07:00
Michael Davidsaver
632d1f45c8 Merge branch 'putf-pact' into 7.0
* putf-pact:
  RPRO/PUTF log instead of assert()
  RPRO/PUTF test all three link types
  RPRO/PUTF rename
  RPRO/PUTF also handle self link case
  fix RPRO/PUTF regression
  test for RPRO/PUTF regression
  dbRec2Pvt()
  Remove Warning: 'blah.PUTF' found true with PACT false
  dbNotify set PUTF
2019-03-13 18:04:18 -07:00
Michael Davidsaver
0f75e0aa7f RPRO/PUTF log instead of assert() 2019-03-13 17:57:41 -07:00
Michael Davidsaver
c93ec231a2 update PVD and PVA 2019-03-11 19:45:37 -07:00
Michael Davidsaver
d1149a0ba9 iocsh epicsMutexShowAll accepts 2 arguments 2019-03-11 17:53:51 -07:00
Andrew Johnson
8c3c5a9731 Restore the -flat_namespace linker flag on macOS
Latest versions of Apple XCode require it.
2019-03-11 16:00:54 -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
Andrew Johnson
44510f2fb2 Merge 3.15 branch into 7.0 2019-03-07 12:56:57 -06: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
Andrew Johnson
933733465e Improve timeout diagnostics from netget.plt 2019-02-13 16:02:16 -06:00
Michael Davidsaver
688f32cff0 RPRO/PUTF test all three link types
Shouldn't be any difference, but check IN_LINK
and FWD_LINK to be sure.
2019-02-06 16:07:40 -08:00
Michael Davidsaver
d3feb1e2f9 RPRO/PUTF rename 2019-02-04 16:37:20 -08:00
Michael Davidsaver
62c11c22c9 RPRO/PUTF also handle self link case 2019-02-02 15:34:59 -08:00
Andrew Johnson
736075daf6 Document macOS Mojave fix 2019-02-01 16:49:11 -06:00
Andrew Johnson
9ef3b77348 Fix ca/client/perl/Makefile for macOS Mojave
... in which Apple moved the Perl headers into XCode.
This should also make the build a little more forgiving on other
architectures that have incomplete Perl installations; it gives up
trying to build the Perl bindings with a warning if perl.h is missing.
2019-02-01 16:14:45 -06:00
Andrew Johnson
d15c8093ec Extract dbEntryToAddr() from dbChannelCreate() & dbNameToAddr() 2019-02-01 15:26:35 -06:00
Andrew Johnson
0211698b69 Move dbAccess prototypes to the correct header file 2019-02-01 12:02:41 -06:00
Michael Davidsaver
e860617389 fix RPRO/PUTF regression 2019-01-31 20:16:09 -08:00
Michael Davidsaver
e918994704 test for RPRO/PUTF regression 2019-01-31 20:16:06 -08:00
Michael Davidsaver
5eb7da4595 dbRec2Pvt() 2019-01-31 20:16:03 -08:00
Andrew Johnson
2206934ae2 Fix MacOS build warning
The MacOS ld linker complains if a -L option points to
a directory that doesn't exist, so create that directory
before running the linker. Might be unnecessary, but...
2019-01-21 16:08:29 -06:00
Andrew Johnson
318fc96912 dbStatic: Removed old DCT_ macros and routines 2019-01-15 16:21:32 -06:00
Andrew Johnson
a58cc37a5e Fix dbhcr before iocInit 2019-01-15 16:03:17 -06:00
Andrew Johnson
b5e041b991 Update Release Notes version number to 7.0.3 2019-01-15 16:01:55 -06:00
Andrew Johnson
5e1bad2b34 dbStatic parser: Reject empty object names 2019-01-10 14:45:18 -06:00
Andrew Johnson
0ae50485cf Fix int64inRecord::get_units() 2019-01-08 14:42:43 -06: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
bc7ee94e2c Remove Warning: 'blah.PUTF' found true with PACT false 2019-01-03 20:34:12 -08:00
Michael Davidsaver
3fb10b6d59 dbNotify set PUTF 2019-01-03 20:34:12 -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
Andrew Johnson
a8fdf2efeb realclean rule must delete all RELEASE.<host>.local files 2018-12-18 15:43:18 -06:00
Andrew Johnson
c9eda3ca48 Reset snapshot to -DEV after tagging 2018-12-17 17:42:57 -06:00
Andrew Johnson
b3f785964e Set snapshot for final 7.0.2 release 2018-12-17 17:40:49 -06:00
Andrew Johnson
bb4b23f658 Reminder to read external submodule release notes too 2018-12-17 17:39:31 -06:00
Andrew Johnson
8b31fba8cb Update version numbers of embedded modules 2018-12-17 17:20:01 -06:00
Andrew Johnson
8481ae3787 Set embedded modules' SHRLIB_VERSION from CONFIG variables 2018-12-17 17:19:10 -06:00
Andrew Johnson
46535bde64 Update git submodules 2018-12-17 16:47:36 -06:00
Andrew Johnson
6ee928109c Update Release Checklist
Remove To Do list (which didn't get discussed).
Add stuff about submodule versions and pushing tags.
List invididual module version number files to be updated at
final release time.
2018-12-17 16:39:09 -06:00
Andrew Johnson
cff13b9aa7 Update version numbers in documentation 2018-12-14 17:11:47 -06:00
Andrew Johnson
58aa30ab0a Merge 3.15 branch into 7.0
First direct merge since 3.16 branch closed.
2018-12-14 17:05:59 -06:00
Andrew Johnson
5f46d6dcee Release notes updated 2018-12-14 16:58:43 -06:00
Eric Norum
d41355e0fc Add error checking to the copy-back loop in truncateFile() 2018-12-14 16:06:38 -06:00
Eric Norum
a5aa5459e3 Drop extraneous extern "C" 2018-12-14 16:06:37 -06:00
Eric Norum
6201d37756 Remove epicsTempName() routine
It's unsafe and generates obnoxious warnings on modern compilers.
This also replaces internal useage with epicsTempFile().
There appears to be no external code that calls this routine.
2018-12-14 16:06:36 -06:00
Andrew Johnson
67599e54e4 Add ENABLE_ASAN mechanism for developer use 2018-12-13 16:31:05 -06:00
Michael Davidsaver
f5194b2274 older binutils compat 2018-12-13 11:22:07 -08:00
Andrew Johnson
7bc0d6922b Merge 3.16 branch into 7.0
Final merge from 3.16?
2018-12-12 17:38:55 -06:00
Andrew Johnson
02d7304b3f Build modules/database/test/std/link directory too 2018-12-12 17:02:02 -06:00
Andrew Johnson
6d5f57daf1 Merge 3.16 branch into 7.0 2018-12-12 15:17:02 -06:00
Michael Davidsaver
d8d14b11db update PVA 2018-12-10 16:23:16 -08:00
Ralph Lange
0649a2f13f configure: silence tr1 namespace deprecation warnings on MSVC 2018-11-30 16:58:23 +01:00
Andrew Johnson
5e10b98a99 Added timeout to netget script
Not tested on Windows.
2018-11-29 13:17:01 -06:00
Andrew Johnson
fc90d347d1 Added EPICS_BASE_HOST_LIBS variable to pkg-config files 2018-11-29 12:59:52 -06:00
Andrew Johnson
64a4c556b4 Move pkg-config file creation to modules/database
Needed so EPICS_BASE_IOC_LIBS has been defined.
2018-11-29 12:55:47 -06:00
Andrew Johnson
34115f83ba Adjustment to netget test port settings, not a full fix though 2018-11-28 23:50:35 -06:00
Andrew Johnson
a38c1d07f5 Update PVA modules with Windows symbol fixes 2018-11-28 23:41:14 -06:00
Michael Davidsaver
79690940b7 update PVA modules 2018-11-27 10:30:43 -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
383b6b1c36 add aslibtest 2018-11-14 19:46:59 -08:00
Michael Davidsaver
bb19bd519e asLib add asInitMem() 2018-11-14 19:46:54 -08:00
Michael Davidsaver
d70bfed75b RTEMS: add zoneset() 2018-11-14 09:57:15 -08:00
Michael Davidsaver
3c2fe264cd epicsThreadRealtimeLock: clarify errors
give some more descriptive, linux specific, error messages
2018-11-14 09:55:19 -08:00
Michael Davidsaver
716f102dd6 rsrv: avoid redundant getpeername()
also do some extra, and redundant checks,
on accepted sockets.
2018-11-14 09:55:09 -08:00
Michael Davidsaver
cae597d21c ca: suppress repeated UDP error messages 2018-11-14 09:43:14 -08:00
Michael Davidsaver
c23012d081 rsrv: suppress repeated UDP error messages 2018-11-14 09:43:14 -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
Michael Davidsaver
30268e3577 ioc/db: dbRegisterServer() only warn on actual redefinition
avoid noise when simply run twice.
2018-11-04 20:04:05 -08:00
Michael Davidsaver
ebe7cf046e libCom: iocshRegisterVariable() only warn on actual redefinition
Avoid noise if simply called twice.
2018-11-04 19:32:48 -08:00
Andrew Johnson
00d937cc02 Don't parallelize test-results 2018-11-02 17:49:59 -05:00
Andrew Johnson
560f43b561 Use private server ports in netget test 2018-11-02 17:01:00 -05:00
Andrew Johnson
301ded2dc1 Fix detail in Release Checklist 2018-11-01 15:12:06 -05:00
Andrew Johnson
d3927dea91 Update version to -rc1-DEV after tagging. 2018-11-01 14:28:59 -05:00
Andrew Johnson
b80ce4883d Set version to 7.0.2-rc1 2018-11-01 14:27:11 -05:00
Andrew Johnson
924c1a21f9 Documentation updates before 7.0.2-rc1 2018-11-01 14:26:17 -05:00
Andrew Johnson
6fb98c07b0 Last attempt with the netget test before I disable it 2018-11-01 11:56:43 -05:00
Andrew Johnson
7bd55cb233 Protect IOC.pm against <PIPE> errors
These can happen if the IOC dies prematurely.
2018-10-31 17:57:26 -05:00
Andrew Johnson
5f0b8eb064 Merge 'netget' tests into 7.0 2018-10-31 17:14:17 -05:00
Michael Davidsaver
f6391ee702 update PVA modules with pvtools rework 2018-10-31 13:47:24 -07:00
Andrew Johnson
d129af29c2 netget test: Configure environment to keep traffic local 2018-10-30 17:24:32 -05:00
Andrew Johnson
36c2f78355 Adjust pvget regexp for newer output 2018-10-30 17:23:31 -05:00
Andrew Johnson
464e8a4f14 Added Perl EPICS::IOC module and netget test program 2018-10-30 11:35:03 -05:00
Andrew Johnson
f0bbae1767 Merge Dirk's FixShellCommands branch into 7.0 2018-10-30 09:51:02 -05:00
Andrew Johnson
fbbd2369e9 Update submodules 2018-10-30 09:44:35 -05:00
Michael Davidsaver
78537fbb80 update all PVA modules 2018-10-28 19:04:18 -07:00
Michael Davidsaver
78b6312f49 fix mingw build 2018-10-28 19:03:42 -07:00
Andrew Johnson
818e6c236d Rework epicsMakeMemFs.pl script to use higher level constructs 2018-10-26 17:07:29 -05:00
Andrew Johnson
23d9176772 Clean-up of aai and waveform record sources 2018-10-26 17:05:40 -05:00
Andrew Johnson
2efe56c6d1 Merge 3.16 (after 3.16.2-rc1) into 7.0 2018-10-26 17:04:53 -05:00
4190f38db0 add macro IOCSH_STATIC_FUNC to avoid '#ifdef vxWorks' in code 2018-10-23 17:51:46 +02:00
Andrew Johnson
c08b1ef5d1 Add new 'depclean' make target at top level
It deletes all dependency (.d) files in the O.arch directories.
This is useful when headers get moved or removed; recreating just
the dependency data is much faster than rebuilding the whole tree.
It is also possible to run the depclean.pl script manually when
only part of the tree needs its dependencies regenerating.
2018-10-20 22:20:03 -05:00
Andrew Johnson
5f68d62f40 Merge branch 'fixups/move_initHooks' into 7.0 2018-10-20 21:38:04 -05:00
Michael Davidsaver
6f29a00ead update PVD, PVA, and P2P 2018-10-08 10:23:46 -07:00
9b328a0ca4 Removed usage messages from epicsEnvSet except for vxWorks but kept the check for NULL. For vxWorks removed the () from usage message. 2018-09-28 11:38:29 +02:00
e8e013d65f removed () from uage messages 2018-09-28 11:36:59 +02:00
b2f3bafa64 Removed usage message from dbStateCreate because it is not only a shell function but an API as well. But kept check for NULL. Added check for NULL in dbStateFind as well. 2018-09-28 11:36:02 +02:00
d44f5616a9 add missing command line functions to vxWorks shell 2018-09-27 13:35:45 +02:00
1cb0c5b4d0 Fix command line functions: print error if required arguments are missing 2018-09-27 13:35:10 +02:00
Andrew Johnson
9a454bea68 Restore the ability to write to mbbi/mbbo *VL fields
Fixes lp: #1794196
2018-09-25 10:56:57 -05:00
Michael Davidsaver
7c5892adbf update PVD/PVA 2018-09-20 08:50:23 -07:00
Andrew Johnson
5c6d275001 Update the linux-x86.linux-arm tool-set used for APS cross-builds 2018-08-06 16:10:57 -05:00
Andrew Johnson
dd1e63d1f4 Update submodules 2018-08-04 15:11:35 -05:00
Andrew Johnson
504ae922c6 Merge 3.16 branch into 7.0 2018-08-04 14:53:43 -05:00
Andrew Johnson
0eaa343c90 Merge 3.16 into 7.0 2018-07-14 18:29:33 -05:00
Andrew Johnson
6a03679057 Update submodules 2018-07-14 17:37:54 -05:00
Andrew Johnson
57c0d26c4d Drop R3.13 VxWorks-only OBJLIBS build targets and rules 2018-07-14 17:34:11 -05:00
Michael Davidsaver
b4ce30cfe5 update modules/pvAccess 2018-07-06 16:31:50 -07:00
Michael Davidsaver
dc310a4238 move initHooks to libCom 2018-06-27 18:00:14 -07:00
Michael Davidsaver
d77a96d23d update PVA modules 2018-06-27 16:55:32 -07:00
Andrew Johnson
1b6ec2676c Document branch recombination 2018-06-21 00:30:02 -05:00
Andrew Johnson
7e598c60cc Merge changes from 3.16 branch into 7.0 2018-06-20 23:27:49 -05:00
Ralph Lange
0248570123 Merge branch 'database/master' back 2018-06-20 09:32:23 +02:00
Ralph Lange
cdd8f610ec Merge branch 'ca/master' back 2018-06-20 08:57:14 +02:00
Ralph Lange
4441399dcb Merge branch 'libcom/master' back 2018-06-19 16:52:24 +02:00
Ralph Lange
893fbae559 Remove EPICS Base submodules 2018-06-19 11:49:10 +02:00
Ralph Lange
e165567234 Move all under modules/ca 2018-06-19 11:33:25 +02:00
Ralph Lange
568c405165 Move all under modules/database 2018-06-19 11:31:13 +02:00
Ralph Lange
833648c977 Move all under modules/libcom 2018-06-19 11:25:46 +02:00
Michael Davidsaver
2797233858 update PVA modules 2018-04-24 13:51:52 -07:00
Andrew Johnson
f712f85765 Update PVA submodules 2018-03-22 23:32:19 -05:00
Andrew Johnson
5fb3ee27ba Update modules merged with 3.16 2018-03-22 23:30:58 -05:00
Andrew Johnson
0014853b99 Merge 3.16 into core/master 2018-03-22 23:27:26 -05:00
Andrew Johnson
e613d685fd Merge 3.16 into database/master 2018-03-22 23:25:56 -05:00
Andrew Johnson
c0cb1a9cac Merge 3.16 into ca/master 2018-03-22 23:22:24 -05:00
Andrew Johnson
49f42945b9 Merge 3.16 into libcom/master (no changes) 2018-03-22 23:20:35 -05:00
Andrew Johnson
a3c01bbf77 Merge 3.16 into 3.17 2018-03-22 18:07:25 -05:00
Michael Davidsaver
940e1e11d2 drop unused epicsSingletonBase.cpp 2018-03-21 20:27:17 -07:00
Michael Davidsaver
387b536a46 update PVD and PVA to drop rtemsConfig.c
more issues with the RTEMS test harness executables.
2018-03-19 09:32:18 -07:00
Ralph Lange
32eaf1030b appveyor-ci: remove depth limit on submodules 2018-03-14 14:35:52 +01:00
Ralph Lange
4ab6183ab2 appveyor-ci: set depth=50 for submodules 2018-03-14 13:58:45 +01:00
Michael Davidsaver
f5f35dd825 update PVD, PVA, and pvDatabase with RTEMS test harness fixes 2018-03-13 18:58:06 -07:00
Ralph Lange
562d74fb6a appveyor-ci: set clone depth to 50 2018-03-13 17:06:21 +01:00
Michael Davidsaver
2a9c602a35 updates to PVD, PVA, and P2P
PVD

* rename RTEMS test harness executable to avoid clash
* cleanup

PVA

* rename RTEMS test harness executable to avoid clash
* Fix *NULL in Get2PutProxy
* pvlist output remove comma
* pvput handle enum_t
* Fix *NULL with getRequester() may return NULL
* cleanup

P2P

* Fix pvif NULL check
* include group names in reported channel list
* update doc
2018-03-12 10:01:34 -07:00
Andrew Johnson
2d0d914485 Create a ModuleDirs file & adjust template scripts to use it 2018-02-26 15:28:21 -06:00
Andrew Johnson
0be3798b0e Move the perl client scripts into a new caPerlApp template 2018-02-26 15:28:19 -06:00
Michael Davidsaver
d0a5a985f3 forgot to update .gitattributes 2018-02-26 11:37:26 -08:00
Michael Davidsaver
3f5c48d942 rename .ci/make-tar.sh -> .tools/make-tar.sh 2018-02-26 10:43:47 -08:00
Andrew Johnson
57acac8fb8 Update all PVA modules to branch tip 2018-02-25 00:49:09 -06:00
Andrew Johnson
ca9e57cc3a Merge 3.16 into core/master and other modules 2018-02-25 00:39:49 -06:00
Andrew Johnson
0e0a919567 Merge 3.16 into database/master 2018-02-25 00:28:39 -06:00
Andrew Johnson
1beafdf7e5 Merge 3.16 into ca/master 2018-02-25 00:23:00 -06:00
Andrew Johnson
ca0149ab92 Merge 3.16 into libcom/master 2018-02-25 00:17:37 -06:00
Andrew Johnson
cfdd689000 Merge 3.16 into 3.17 2018-02-25 00:07:45 -06:00
Andrew Johnson
d550b9d55c Merge 3.16 into core/master and related master branches 2018-02-05 13:59:12 -06:00
Andrew Johnson
a4f072238a Merge 3.16 into database/master 2018-02-05 13:29:29 -06:00
Andrew Johnson
eb683aa8ad Merge 3.16 into ca/master 2018-02-05 13:25:36 -06:00
Andrew Johnson
dd15a270bc Merge 3.16 into libcom/master 2018-02-05 13:21:19 -06:00
Andrew Johnson
6603d778cb Merge 3.16 into 3.17 2018-02-05 12:51:06 -06:00
Andrew Johnson
3174e22faf Merge 3.16 into 3.17 2018-01-21 00:50:16 -06:00
Andrew Johnson
a5e58829fd Merge up changes from below 2018-01-20 19:17:35 -06:00
Ralph Lange
88be36002a Merge changes from 3.16 into core/master 2018-01-04 09:11:08 +01:00
Andrew Johnson
e43c6634d0 Update patch level and snapshot after tagging release 2017-12-15 12:48:28 -06:00
Andrew Johnson
37d103f9cd Clear SNAPSHOT in Base version for 7.0.1.1 2017-12-15 12:44:20 -06:00
Andrew Johnson
78c7e5d032 Update version numbers in documentation to 7.0.1.1
Also recreated README.1st from README.html
2017-12-15 12:41:25 -06:00
Andrew Johnson
2e964c8bb8 Added tag checking to make-tar.sh
Modified the default values for filename and tar prefix.
Also allows omitting the leading 'R' from a tag-name, so it will not
be included in the generated default filename and prefix values.
The combination of these changes is that it is now possible to make a
standard release tarfile just by running 'make-tar.sh 7.0.1.1'.
2017-12-15 12:33:27 -06:00
Andrew Johnson
6bf0b5247c Merge bug-fix from 3.16 branch into core/master 2017-12-15 11:47:56 -06:00
Andrew Johnson
b0f6451c6e Set SNAPSHOT after tagging release 2017-12-14 19:10:10 -06:00
Andrew Johnson
269f5fc58a Clear SNAPSHOT in Base version for 7.0.1 2017-12-14 19:07:09 -06:00
Andrew Johnson
7ee0f95a47 Update all submodules to tagged versions 2017-12-14 19:04:24 -06:00
Andrew Johnson
07e8cf162d Update version number after tagging release 2017-12-14 16:16:21 -06:00
Andrew Johnson
610f008529 Reset DEVELOPMENT_FLAG for database-3.17.0 release 2017-12-14 16:14:05 -06:00
Andrew Johnson
801c37394f Update version number after tagging release 2017-12-14 16:11:48 -06:00
Andrew Johnson
524ceee2c8 Reset DEVELOPMENT_FLAG for ca-4.13.1 release 2017-12-14 16:10:24 -06:00
Andrew Johnson
37e6c875ba Update version number in CAref.
Also removed Amaya and validator stuff.
2017-12-14 16:09:57 -06:00
Andrew Johnson
5877b3ca70 Update libcom version number after tagging release 2017-12-14 15:59:14 -06:00
Andrew Johnson
8ce980f663 Reset DEVELOPMENT_FLAG for libcom-3.17.0 release 2017-12-14 15:54:07 -06:00
Andrew Johnson
bdb57feb73 Do build config checks instead of crashing 2017-12-14 15:52:07 -06:00
Ralph Lange
1c03e615f1 template: add circle.db to exampleApp for pdbGroup 2017-12-14 17:21:44 +01:00
Ralph Lange
efee52b6d7 template: fix compiler warning in dev...Version.c 2017-12-14 17:07:05 +01:00
Ralph Lange
0f9d5cb5c1 template: add qsrv (if available) to exampleApp 2017-12-14 14:50:18 +01:00
Ralph Lange
b90014183b appveyor-ci: remove VS 2008, add VS 2017 2017-12-12 12:58:40 +01:00
Ralph Lange
bc522357a5 appveyor-ci: use curl for download of make.zip 2017-12-11 10:41:18 +01:00
Ralph Lange
683e803154 appveyor-ci: add submodule clone, set clone depth to 10 2017-12-11 10:33:27 +01:00
Andrew Johnson
5e0b80f462 Started updating Release Checklist for EPICS 7
Incomplete, needs instructions on updating and tagging submodules,
maybe other things too.
This uses version number 7.1.1 instead of 7.0.1, which was deliberate.
2017-12-11 00:33:56 -06:00
Andrew Johnson
fc52dfb2d7 Update pva2pva submodule 2017-12-11 00:28:28 -06:00
Andrew Johnson
28a8c06075 Set EPICS_HOST_ARCH in the environment, not just locally
This is essential for submodules, which now need that value to load
the right modules/RELEASE.<host>.local file which gives them their
path to EPICS_BASE (they can't set it for themselves without knowing
that path because the startup directory is part of core!).
2017-12-07 18:01:09 -06:00
Andrew Johnson
c9ca39ce70 Display rule activity in modules/Makefile 2017-12-07 14:44:26 -06:00
Andrew Johnson
933082c1c0 Another libcom fix, for separate module builds. 2017-12-07 11:59:14 -06:00
Andrew Johnson
f1c694c27c Fix envData.c rule for separate module configurations 2017-12-07 11:57:02 -06:00
Andrew Johnson
28c96e2b8e libcom dependency fix 2017-12-07 11:24:30 -06:00
Andrew Johnson
981b1136fc Add missing dependency 2017-12-07 11:23:08 -06:00
Andrew Johnson
488e9cb6b1 Update libcom with cross-build fix 2017-12-07 11:01:38 -06:00
Andrew Johnson
f904df2c7f Install bldEnvData.pl and libcomModuleDirs.pm
Fixes last night's breakage.

Installation is needed so bldEnvData.pl can find libcomModuleDirs.pm
and hence the EPICS::Path and EPICS::Release modules while doing
cross-builds. We'll need it to be installed eventually anyway so
support modules can add their own environment parameters.
2017-12-07 11:00:23 -06:00
Andrew Johnson
008ac76313 Fixes for sharing a build tree between Windows + Unix
Rename modules/RELEASE.local to RELEASE.<host>.local
Modify all submodule configure/RELEASE files to include that, and
update the template configure/RELEASE file to match.

Install Perl *ModuleDirs.pm files into bin/<host> since they contain
absolute paths which may be different on different host arch's.
Scripts that need a ModuleDirs module have been adjusted to look in
their bin/<host> directory for it.

Some additional submodule updates were also incorporated.
2017-12-06 23:27:38 -06:00
Andrew Johnson
796279cc0d Move CA version numbers into cfg/CONFIG_CA_VERSION 2017-12-06 22:26:31 -06:00
Andrew Johnson
ee10014a62 Install caModuleDirs.pm into bin/<host>
Adjust capr.pl to use it from there.
Host arch's may use different absolute paths to the same Base directory,
so they can't share a single copy of that module.
2017-12-06 22:22:26 -06:00
Andrew Johnson
f44bfd897e Install databaseModuleDirs.pm into bin/<host>
Adjust all scripts to use it from there.
Host arch's may use different absolute paths to the same Base directory,
so they can't share a single copy of that module.
2017-12-06 22:09:49 -06:00
Andrew Johnson
90de8efd54 Don't install libcomModuleDirs.pm
It's only needed by bldEnvData.pl which is never installed.
Make it a dependency so it gets built, and use it from O.<host>
2017-12-06 21:35:30 -06:00
Andrew Johnson
7d105aec9e Include <top>/../RELEASE.<host>.local 2017-12-06 20:33:19 -06:00
Andrew Johnson
7a6fff0334 Include <top>/../RELEASE.<host>.local 2017-12-06 20:32:07 -06:00
Andrew Johnson
cc0a44d8f0 Include <top>/../RELEASE.<host>.local 2017-12-06 20:28:17 -06:00
Andrew Johnson
20312f82ed Merge Release.pm fix from 3.16 into 3.17 2017-12-06 16:55:51 -06:00
Andrew Johnson
0867af4654 Set snapshot to -rc1-DEV after tagging 2017-11-30 17:56:17 -06:00
Andrew Johnson
8b97e78bc3 Set version snapshot to -rc1 2017-11-30 17:53:14 -06:00
Andrew Johnson
28b4a0c80a Some wording about the source reorganization 2017-11-30 17:52:09 -06:00
Andrew Johnson
0d28984932 Version number updates in secondary documents 2017-11-30 17:51:38 -06:00
Andrew Johnson
cfe5cfa9ca Merge 'ignore-siml-failure' and document. 2017-11-30 17:25:21 -06:00
Andrew Johnson
eac8865b7f Merge 'ignore-siml-failure' into database/master 2017-11-30 17:16:01 -06:00
Andrew Johnson
6635e3f8dc Restore behaviour when no getValue() method exists 2017-11-30 17:07:07 -06:00
Andrew Johnson
e43fb954ce Remove poptions arg from dbTryGetLink() 2017-11-30 17:02:15 -06:00
Andrew Johnson
5cd98a0356 Submodule cleanup updates
Unify .gitignore files
Use 'make test-results' in travis-build scripts
2017-11-30 14:17:03 -06:00
Andrew Johnson
ca8942ecb5 Housekeeping in .ci
Cleanup of make-tar.sh script
Added new checkout-modules.sh script
2017-11-30 14:14:20 -06:00
Ralph Lange
2ae721c268 test/rec: add tests for new SIML fetch failure behavior 2017-11-30 14:40:59 +01:00
Ralph Lange
a59abe82f4 db: don't set record INVALID if fetching SIML fails 2017-11-30 14:39:53 +01:00
Andrew Johnson
6b0e4d5d2b Merged PR for libcom from Bruce Hill 2017-11-29 17:52:30 -06:00
Andrew Johnson
bf7d4f5c96 Submodule updates. 2017-11-29 17:23:52 -06:00
Andrew Johnson
09328e42c9 Allow for a modules/Makefile.local
This permits other submodules to be integrated into a build
without having to edit the Makefile itself.
2017-11-29 17:22:48 -06:00
Bruce Hill
3ca5c20907 perl 5.8 compatibility fix
Many of our host machines are running perl 5.8.8 and throw an error for the possesive quantifiers in this regex.
Support for the ++ and *+ possesive quantifiers wasn't added till perl 5.10 and the epics docs still say perl 5.8.1 is the requirement.
They don't appear to be needed in this regex and removing them generated the same errSymTbl.c in my tests.
2017-11-29 01:17:04 -08:00
Andrew Johnson
fae4d58de6 Add spinlock_pt.hpp for older VxWorks versions 2017-11-27 11:19:33 -06:00
Andrew Johnson
f3d0ce0fb9 Merge 3.16 into core/master and submodules 2017-11-18 13:55:24 -06:00
Andrew Johnson
d1a1832968 Merge 3.16 into database/master 2017-11-18 13:47:52 -06:00
Andrew Johnson
ab555a280b Merge 3.16 into 3.17 2017-11-18 13:32:59 -06:00
Michael Davidsaver
ba8bbbd098 update make-tar.sh 2017-11-16 18:27:57 -06:00
Andrew Johnson
df4c8b4935 Set snapshot to -pre1-DEV, post-tag
This seems illogical, shouldn't it now be -rc1-DEV now?
2017-11-16 12:03:51 -06:00
Andrew Johnson
e785d8748f Set version 7.0.1-pre1 in CONFIG_BASE_VERSION 2017-11-16 11:55:09 -06:00
Andrew Johnson
8c074d0ecf Final submodule update before 7.0.1-pre1 2017-11-16 11:49:05 -06:00
Andrew Johnson
7afb789b41 Module updates 2017-11-15 23:35:56 -06:00
Andrew Johnson
73c7b8224d Merge changes from 3.16 into database/master 2017-11-15 23:32:48 -06:00
Andrew Johnson
527a49bfc1 Merge branch 3.16 into 3.17 2017-11-15 22:23:32 -06:00
Andrew Johnson
e64fe15abc Update submodule 2017-11-15 10:30:54 -06:00
Andrew Johnson
260d43b9bc Adjust RELEASE.local generation for Windows
On Windows, neither the shell nor echo will strip double-quote
characters from the command-line, so just leave them out.
2017-11-15 10:30:14 -06:00
Andrew Johnson
b690e5abbd Move tool configs into module cfg/CONFIG* files 2017-11-14 23:41:20 -06:00
Andrew Johnson
56b6644b87 Export tool configurations as cfg/CONFIG_* files 2017-11-14 23:34:25 -06:00
Andrew Johnson
ea7802a838 Export tool configurations as cfg/CONFIG_* files 2017-11-14 23:30:59 -06:00
Andrew Johnson
5dfd1fc0f0 Export tool configurations as cfg/CONFIG_* files 2017-11-14 21:47:40 -06:00
Andrew Johnson
ba2ff4993f Submodule updates 2017-11-14 21:39:32 -06:00
Andrew Johnson
33852b1e90 Adjust pvAccess dependencies 2017-11-14 21:36:40 -06:00
Andrew Johnson
2be750a2a0 Update epicsInstallDir.h after any CONFIG_SITE* change
INSTALL_LOCATION changes should trigger an update.
2017-11-14 21:20:39 -06:00
Andrew Johnson
202fbe4ffb Submodule build configuration fixes
Remove modules/RELEASE.local from repository,
create it at run-time instead of RELEASE.base.
2017-11-14 20:49:54 -06:00
Michael Davidsaver
7b71cbee7a modules/pva2pva: enable string array and fit put 2017-11-14 14:25:39 -06:00
Michael Davidsaver
a1f633fe27 add make-tar.sh 2017-11-14 13:29:00 -06:00
Andrew Johnson
75cdab3c17 Update modules 2017-11-12 00:29:12 -06:00
Andrew Johnson
0a5e6ba69a RELEASE file must define EPICS_BASE when building modules 2017-11-11 23:55:16 -06:00
Andrew Johnson
c3a6cfcf0d RELEASE file must define EPICS_BASE when building modules 2017-11-11 23:54:36 -06:00
Andrew Johnson
e2e0dc2687 RELEASE file must define EPICS_BASE when building modules 2017-11-11 23:52:57 -06:00
Andrew Johnson
b71ec8c781 Set path to msi in CONFIG for individual module builds
This approach doesn't solve the problem of how to get to these
tools for the next module in the chain though, we need to install
a CFG file with these definitions in them, in place of the central
CONFIG_BASE file. This fixes it for now though.
2017-11-11 23:51:11 -06:00
Andrew Johnson
5b66efb0e4 Merge installEpics.pl change into core/master 2017-11-11 18:42:37 -06:00
Andrew Johnson
f36ce8ca3d Merge 3.16 into 3.17 2017-11-11 18:17:54 -06:00
Andrew Johnson
2462e09319 Update modules 2017-11-10 15:29:36 -06:00
Andrew Johnson
491ab52c98 Remove spurious files from configure 2017-11-10 15:28:20 -06:00
Andrew Johnson
9ac5f7fbc1 Remove spurious files from configure 2017-11-10 15:27:59 -06:00
Andrew Johnson
269b072cec Remove spurious files from configure 2017-11-10 15:27:11 -06:00
Andrew Johnson
1d732b3a92 Update modules 2017-11-07 22:44:04 -06:00
Andrew Johnson
cb7b77b63d Copy Darwin version of osdMonitonic.c to iOS 2017-11-07 22:41:23 -06:00
Andrew Johnson
716d297c85 Merge development branches into core/master 2017-11-07 21:28:01 -06:00
Andrew Johnson
c528ca5ae4 Merge development branches into database/master 2017-11-07 21:26:10 -06:00
Andrew Johnson
7b7abaea05 Merge development branches into libcom/master 2017-11-07 21:24:06 -06:00
Andrew Johnson
c4c7bff625 Update PVA modules 2017-11-07 20:20:35 -06:00
Andrew Johnson
5e5e56b39a Restore dbVerify() to dbStaticLib 2017-11-07 17:54:50 -06:00
Michael Davidsaver
ed43284bce update PVD, PVA, and P2P
PVA fixes server issue with async getField() and lots of cleanup.

P2P fixes lock order issue with PDB monitor lists
2017-11-06 18:29:58 -06:00
Andrew Johnson
782b15ff4f Update modules pvData and pva2pva 2017-11-03 11:03:44 -05:00
Andrew Johnson
e569730acc modules/Makefile fix: Replace spaces with tab character
Also adds modules/RELEASE.base to .gitignore
2017-11-03 11:00:49 -05:00
Ralph Lange
75479e1a10 modules: fix creation of absolute EPICS_BASE (d7cda55d) 2017-11-03 09:26:28 +01:00
Andrew Johnson
94628f59f2 Merge branch 'monotonictime' into 3.17 2017-11-02 17:32:46 -05:00
Andrew Johnson
924e11a8bc rsrv: Fix include list for Windows builds
For some reason epicsExport.h doesn't work here, we have to
explicitly define epicsExportSharedSymbols and them pull in
epicsExport.h separately later. Must be something to do with
the #undef and redef that goes on in server.h
2017-11-02 17:08:42 -05:00
Andrew Johnson
2237061c85 Merge branch 'impr-sim-mode-2' into 3.17 2017-11-02 16:37:42 -05:00
Andrew Johnson
7fc6639bfa Merged branch 'rsrv-register' into 3.17 2017-11-02 14:45:05 -05:00
Andrew Johnson
2abb168e23 Removed modules/example from .gitmodules for now
Jenkins can't build Base-7.0 with the example in this Zombie state.
2017-11-02 09:48:41 -05:00
Andrew Johnson
82efcc3969 Update modules to latest
This combination builds for Linux, RTEMS 4.10 and VxWorks 6.9
2017-11-01 16:23:55 -05:00
Andrew Johnson
d5fc85a451 Merge changes from 3.16 branch and below into database/master
Also removes some extraneous template files
2017-11-01 16:16:07 -05:00
Andrew Johnson
2ebd193681 Merge changes from 3.16 branch and below into ca/master 2017-11-01 16:14:53 -05:00
Andrew Johnson
222162bcb6 Add vxWorks directory with Boost smart_ptr headers
This is the minimal set of files needed, copied from pvCommonCPP.
2017-11-01 16:14:00 -05:00
Andrew Johnson
824c91d70c Merge changes from 3.16 and below into libcom/master 2017-11-01 16:11:58 -05:00
Andrew Johnson
52a117c35a Merge changes from 3.16 and below into core/master 2017-11-01 16:11:04 -05:00
Andrew Johnson
a50dddbd7b Move base.plt into test/tools and adjust lib path 2017-11-01 11:30:15 -05:00
Andrew Johnson
75ae143361 Update pva2pva module 2017-10-31 15:31:24 -05:00
Andrew Johnson
49d638be97 VxWorks osdMonotonic implementation
PowerPC time-base frequencies are 32-bit.
Adjust when warnings are printed.
Use long double to calculate time from time-base.
2017-10-27 15:17:38 -05:00
Andrew Johnson
77de87cfb0 dbServer: Only call client() and report() methods when running
Also adjusts the tests to confirm that behaviour.
2017-10-26 13:02:20 -05:00
Andrew Johnson
a1d2f337f4 Initial VxWorks support code
Implemented for both PowerPC and i86.
Builds, but not tested yet.
2017-10-23 11:30:29 -05:00
Andrew Johnson
62db42bf35 Delete unused variable 2017-10-23 11:27:51 -05:00
Ralph Lange
862451b1a8 Update submodules 2017-10-20 17:09:16 +02:00
Ralph Lange
d27b222347 Merge branch 3.16 into libcom/master 2017-10-20 17:07:26 +02:00
Ralph Lange
269e93d284 Merge 3.16 into database/master 2017-10-20 17:05:16 +02:00
Ralph Lange
b6c78adaaa Merge 3.16 into ca/master 2017-10-20 17:01:44 +02:00
Ralph Lange
077ff94f9f Merge from 3.16 branch 2017-10-20 16:55:36 +02:00
Andrew Johnson
11d2a64507 Clarify release entry wording 2017-10-18 20:12:20 -05:00
Andrew Johnson
2b15bc5f70 Can't dbUnregisterServer() if stopped & no stop() method
Unregistration is allowed if we're still registering though.
This allows for cases like rsrv, which doesn't have a stop method.
However the semantics of restarting servers after they have been
stopped hasn't been defined, and rsrv probably wouldn't work if
you tried that anyway, so I'm not convinced this is useful.
2017-10-18 19:12:50 -05:00
Andrew Johnson
fb5a2d8475 Added dbUnregisterServer() routine, plus tests 2017-10-18 18:12:21 -05:00
Andrew Johnson
0406ecebe9 Ignore dbServer registrations after init
Actually store all server states, and display it in dbsr()
2017-10-18 17:35:37 -05:00
Andrew Johnson
a939324270 Added call to dbStopServers() in iocShutdown()
Renamed buildRSRV => buildServers.
Don't call other dbXxxServers() routines or announce their related
initHook states when in buildIsolated mode.
2017-10-18 17:13:46 -05:00
Ralph Lange
85712c5825 modules: remove example submodule 2017-10-17 11:48:51 +02:00
Ralph Lange
16b7a413df doc: add simulation mode changes to release notes 2017-10-17 11:28:02 +02:00
Ralph Lange
f482ee6fe1 rec: add tests for simulation mode 2017-10-16 17:15:36 +02:00
Ralph Lange
4541551211 rec: improve and streamline simulation mode 2017-10-16 17:15:01 +02:00
Ralph Lange
597c93681f db: add utility functions for simulation mode 2017-10-16 17:13:24 +02:00
Ralph Lange
c623715604 dbstatic: allow initial value of 65535 for MENU fields 2017-10-13 13:15:21 +02:00
Ralph Lange
d7cda55d80 modules: make RELEASE.local use an absolute Base path 2017-10-02 09:36:43 +02:00
Ralph Lange
d3387c16c3 travis-ci: fix scripts (executable bit, CONFIG_SITE location) 2017-09-28 16:25:34 +02:00
Ralph Lange
63cd93a5a4 modules: add pva2pva, example 2017-09-28 15:13:37 +02:00
Michael Davidsaver
d8d52e433c rsrv: epicsExport.h is last import 2017-09-27 17:11:58 -05:00
Michael Davidsaver
06b2d4bb76 db/test: dbStressTest use monotonic
Conflicts:
	src/ioc/db/test/dbStressLock.c
2017-09-27 16:36:54 -05:00
Michael Davidsaver
1c00e79b6b monotonic: fix osx 2017-09-27 16:01:54 -05:00
Michael Davidsaver
cccab7437f move EPICS_EXPOSE_LIBCOM_MONOTONIC_PRIVATE before all local includes 2017-09-27 16:01:54 -05:00
Michael Davidsaver
6aec8d9bcb libCom/osi: fetch monotonic time 2017-09-27 16:01:54 -05:00
Ralph Lange
47c1bff49d Update submodules 2017-09-27 15:44:24 +02:00
Ralph Lange
d71262b458 modules: add normativeTypes, pvaClient, pvDatabase 2017-09-27 15:16:00 +02:00
Ralph Lange
b27cd36e41 travis-ci: add ca and database as dependencies for pvAccess 2017-09-26 15:42:43 +02:00
Ralph Lange
e7a8ac6c38 modules: add pvData, pvAccess 2017-09-26 13:39:04 +02:00
Andrew Johnson
0818267371 Update submodules 2017-09-22 14:41:28 -05:00
Andrew Johnson
b6027d33bd Use 'make test-results' target 2017-09-22 14:40:20 -05:00
Andrew Johnson
a866ead649 Use 'make test-results' target 2017-09-22 14:39:43 -05:00
Andrew Johnson
ed7798ba08 Use 'make test-results' target 2017-09-22 14:39:18 -05:00
Andrew Johnson
33ebd72d43 Use 'make test-results' target 2017-09-22 14:38:41 -05:00
Andrew Johnson
8843d20bc6 Update comments in RELEASE file 2017-09-22 14:36:36 -05:00
Andrew Johnson
abb8136817 Update comments in RELEASE file 2017-09-22 14:36:24 -05:00
Andrew Johnson
6d4f58fd9b Update comments in RELEASE file 2017-09-22 14:35:40 -05:00
Andrew Johnson
cd8d8e6890 ModuleDirs files don't need TOP any more 2017-09-22 14:29:43 -05:00
Andrew Johnson
c56fbc84b0 dbExpand.pl needs databaseModuleDirs
When built stand-alone, needs it to locate EPICS::Getopts
2017-09-22 14:28:55 -05:00
Andrew Johnson
044b7a31ef Use @TOP@ and @ARCH@ in .plt files
No need for msi-copy(.exe) as a result.
Tests should now work with INSTALL_LOCATION set, and
don't need to use databaseModuleDirs either.
2017-09-22 14:27:14 -05:00
Andrew Johnson
186a9f5329 Move maclib.pm to libcom 2017-09-22 14:21:36 -05:00
Andrew Johnson
9be4d01e8a Move macLib.plt to libcom 2017-09-22 14:21:34 -05:00
Andrew Johnson
33f503722e Add caModuleDirs.pm, needed for capr.pl 2017-09-22 14:15:27 -05:00
Andrew Johnson
ee4b3b9056 Move macLib.pm and macLib.plt here
Use @TOP@ in macLib.plt library path
2017-09-22 14:13:35 -05:00
Andrew Johnson
10849a0df3 RULES: Expand @TOP@ and @ARCH@ in .plt files
Use this in Snippets.plt
2017-09-22 14:05:37 -05:00
Ralph Lange
ec30e4ac84 travis-ci: fix RTEMS/qemu builds 2017-09-22 11:29:38 +02:00
Ralph Lange
722a4c4e38 travis-ci: fix RTEMS/qemu builds 2017-09-22 11:19:04 +02:00
Ralph Lange
79739f3eec travis-ci: fix RTEMS/qemu builds 2017-09-22 10:04:27 +02:00
Ralph Lange
bfefd9e16e ci: add defaults for location macros 2017-09-21 17:25:27 +02:00
Ralph Lange
c0742264e2 ci: simplify .travis.yml 2017-09-21 17:06:30 +02:00
Ralph Lange
7458569f10 ci: add single module build for Travis CI 2017-09-21 13:05:40 +02:00
Ralph Lange
f7fc668dda ci: add single module build for Travis CI 2017-09-21 12:56:30 +02:00
Ralph Lange
1b2e8f0be1 ci: add single module build for Travis CI 2017-09-21 11:19:49 +02:00
Ralph Lange
c31b91e24c Add submodules libcom ca database 2017-09-20 16:51:24 +02:00
Ralph Lange
c954032245 Freeze SONAME=3.17.0 2017-09-20 16:50:34 +02:00
Ralph Lange
c72294f99e Freeze SONAME=3.17.0 2017-09-20 16:50:13 +02:00
Ralph Lange
701309fc4a Freeze SONAME=4.13.1 2017-09-20 16:43:23 +02:00
Ralph Lange
6bf805c420 Add submodule context 2017-09-20 14:39:32 +02:00
Ralph Lange
2692c0698a tools: add local TOP/lib/perl to Perl include path 2017-09-20 14:39:17 +02:00
Ralph Lange
bc4957155b ci: consolidate file and directory names 2017-09-20 14:37:46 +02:00
Ralph Lange
81d3ac78aa configure: use $(abspath) for executables 2017-09-20 11:15:10 +02:00
Ralph Lange
4793b27a0c db: fix dbUnitTest for changes in error symbol table 2017-09-20 11:15:04 +02:00
Ralph Lange
f6c205dafe ioc: add module version numbering 2017-09-20 11:14:58 +02:00
Ralph Lange
6ab01f23c5 test: fix path to private db includes 2017-09-20 11:14:50 +02:00
Ralph Lange
a028de1e7b Perl scripts use perl module for RELEASE dependencies 2017-09-20 09:33:29 +02:00
Ralph Lange
3b469fec58 Change paths for tools from this module 2017-09-20 09:33:22 +02:00
Ralph Lange
7ad0210ef6 Structural changes to create database module 2017-09-20 09:32:53 +02:00
Andrew Johnson
a861760dbb Give dbRegisterServer a return value (0/-1)
Add tests to check registration failures.
2017-09-19 22:24:06 -05:00
Andrew Johnson
d1018d27a4 Fix check for double-registration, add test 2017-09-19 22:09:41 -05:00
Ralph Lange
765b53e3fd client: add module version numbering 2017-09-19 17:02:48 +02:00
Ralph Lange
c55fb421ce Structural changes to create ca module 2017-09-19 17:02:36 +02:00
Ralph Lange
2b688f8116 configure: use $(abspath) for running local executables 2017-09-19 15:38:35 +02:00
Ralph Lange
7660480a5f Perl scripts use perl module for RELEASE dependencies 2017-09-19 15:38:28 +02:00
Ralph Lange
0fdb995a0b error: errlog/errsym registration updates by Andrew 2017-09-19 15:38:18 +02:00
Ralph Lange
2627389788 test: fix include path for private header under src 2017-09-19 15:38:02 +02:00
Ralph Lange
3b733bc373 Add module version numbering 2017-09-19 15:37:49 +02:00
Ralph Lange
af7315065a Fix location of TOOLS in top Makefile 2017-09-19 15:10:43 +02:00
Ralph Lange
dd115b54b6 error: reduce error symbol table scope to local sources 2017-09-19 15:10:34 +02:00
Ralph Lange
2eb0ba9a8e error: remove fake dependency to dbDefs.h 2017-09-19 15:10:15 +02:00
Ralph Lange
f7fadc9312 Structural changes to create libcom module 2017-09-19 15:09:52 +02:00
Ralph Lange
a27d7440f3 Add Perl include path mechanism (by Andrew) 2017-09-19 12:02:14 +02:00
Ralph Lange
f2a899b92b configure: no implicit installation (overwrite) of config files 2017-09-19 12:02:14 +02:00
Ralph Lange
53000504d0 configure: remove cas/gdd from EPICS_BASE_HOST_LIBS 2017-09-19 12:02:14 +02:00
Ralph Lange
d9515dbabc configure: clean up INSTALL_LOCATION/configure unless installing in TOP 2017-09-19 12:02:14 +02:00
Ralph Lange
80efa20729 configure: set Base version to 7.0.1-DEV 2017-09-19 12:02:14 +02:00
Ralph Lange
fa27a9dabb Structural changes to create core module 2017-09-19 12:02:12 +02:00
Andrew Johnson
d1f60e4c8c dbRegisterServer: Don't ignore sub-string names
Also adjusts the tests to check we do it properly.
2017-07-29 01:30:45 -05:00
Andrew Johnson
7c6b037252 Add explicit "no servers" message to dbsr()
Make dbsr explicitly say so if no dbServer layers have been
registered with the dbServer API.
2017-07-29 00:51:31 -05:00
Andrew Johnson
461daadd5b Release Notes entry 2017-07-25 00:39:40 -05:00
Andrew Johnson
2cf997ddbf Test EPICS_IOC_IGNORE_SERVERS variable 2017-07-25 00:38:34 -05:00
Andrew Johnson
ba9763f551 Set test plan 2017-07-23 23:35:03 -05:00
Andrew Johnson
17e6060d16 Added some dbServer unit tests 2017-07-23 23:30:04 -05:00
Andrew Johnson
c2d22ed925 Added Doxygen comments for dbServer API 2017-06-24 00:04:20 -05:00
Andrew Johnson
6efe292494 Add EPICS_IOC_IGNORE_SERVERS environment variable
dbServers cannot be registered when their names appear in this
variable, so they should remain inactive. This feature is mainly
intended for debugging, so the crude name search should be OK.
2017-06-13 23:36:30 -05:00
Andrew Johnson
2d1d14e4b4 Make rsrv register itself using a DBD file
This allows the rsrv to be excluded by removing 'include rsrv.dbd'
from a local copy of the base.dbd file.
Server initialization, running and pausing are moved to new
methods of the dbServer object, and the existing registration
path is converted to just use the new rsrv.dbd file.
2017-06-06 23:18:55 -04:00
1924 changed files with 91972 additions and 89669 deletions

146
.appveyor.yml Normal file
View File

@@ -0,0 +1,146 @@
# 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 #
#---------------------------------#
# 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
# Skipping commits affecting only specific files
skip_commits:
files:
- 'documentation/*'
- 'startup/*'
- '.github/*'
- '.tools/*'
- '.gitattributes'
- '**/*.html'
- '**/*.md'
#---------------------------------#
# 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
# 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

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

@@ -0,0 +1,152 @@
# 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
# Skipping commits affecting only specific files
skip_commits:
files:
- 'documentation/*'
- 'startup/*'
- '.github/*'
- '.tools/*'
- '.gitattributes'
- '**/*.html'
- '**/*.md'
#---------------------------------#
# 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
# 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 d675de24e6

25
.gitattributes vendored Normal file
View File

@@ -0,0 +1,25 @@
.ci/ export-ignore
.tools/ export-ignore
.github/ export-ignore
.appveyor/ export-ignore
.appveyor.yml 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

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

@@ -0,0 +1,236 @@
# .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'
env:
SETUP_PATH: .ci-local:.ci
BASE: SELF
EPICS_TEST_IMPRECISE_TIMING: YES
jobs:
build-base:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
# Set environment variables from matrix parameters
env:
CMP: ${{ matrix.cmp }}
BCFG: ${{ matrix.configuration }}
WINE: ${{ matrix.wine }}
RTEMS: ${{ matrix.rtems }}
RTEMS_TARGET: ${{ matrix.rtems_target }}
EXTRA: ${{ matrix.extra }}
TEST: ${{ matrix.test }}
strategy:
fail-fast: false
matrix:
# Job names also name artifacts, character limitations apply
include:
- os: ubuntu-20.04
cmp: gcc
configuration: default
wine: "64"
name: "Ub-20 gcc-9 + MinGW"
- os: ubuntu-20.04
cmp: gcc
configuration: static
wine: "64"
name: "Ub-20 gcc-9 + MinGW, static"
- os: ubuntu-20.04
cmp: gcc
configuration: static
extra: "CMD_CXXFLAGS=-std=c++11"
name: "Ub-20 gcc-9 C++11, static"
- os: ubuntu-16.04
cmp: clang
configuration: default
name: "Ub-16 clang-9"
- os: ubuntu-20.04
cmp: clang
configuration: default
extra: "CMD_CXXFLAGS=-std=c++11"
name: "Ub-20 clang-10 C++11"
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "5"
rtems_target: RTEMS-pc686-qemu
test: NO
name: "Ub-20 gcc-9 + RT-5.1 pc686"
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "5"
rtems_target: RTEMS-beatnik
test: NO
name: "Ub-20 gcc-9 + RT-5.1 beatnik"
# Only build one RTEMS target per CPU family
# unless it's running the tests
#
# - os: ubuntu-20.04
# cmp: gcc
# configuration: default
# rtems: "5"
# rtems_target: RTEMS-mvme3100
# test: NO
# name: "Ub-20 gcc-9 + RT-5.1 mvme3100"
#
# - os: ubuntu-20.04
# cmp: gcc
# configuration: default
# rtems: "5"
# rtems_target: RTEMS-qoriq_e500
# test: NO
# name: "Ub-20 gcc-9 + RT-5.1 qoriq_e500"
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "5"
rtems_target: RTEMS-xilinx_zynq_a9_qemu
test: NO
name: "Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu"
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "5"
rtems_target: RTEMS-uC5282
test: NO
name: "Ub-20 gcc-9 + RT-5.1 uC5282"
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "4.10"
name: "Ub-20 gcc-9 + RT-4.10"
rtems_target: RTEMS-pc386-qemu
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "4.9"
name: "Ub-20 gcc-9 + RT-4.9"
rtems_target: RTEMS-pc386-qemu
- os: ubuntu-16.04
cmp: gcc-4.8
utoolchain: "4.8"
configuration: default
name: "Ub-16 gcc-4.8"
- os: ubuntu-16.04
cmp: gcc-4.9
utoolchain: "4.9"
configuration: default
name: "Ub-16 gcc-4.9"
- os: ubuntu-20.04
cmp: gcc-8
utoolchain: "8"
configuration: default
name: "Ub-20 gcc-8"
- os: ubuntu-20.04
cmp: gcc-9
utoolchain: "9"
configuration: default
name: "Ub-20 gcc-9"
- os: ubuntu-20.04
cmp: clang
configuration: default
name: "Ub-20 clang-10"
- os: macos-latest
cmp: clang
configuration: default
name: "MacOS clang-12"
- os: windows-2019
cmp: vs2019
configuration: default
name: "Win2019 MSC-19"
- os: windows-2019
cmp: vs2019
configuration: static
name: "Win2019 MSC-19, static"
- os: windows-2019
cmp: vs2019
configuration: debug
name: "Win2019 MSC-19, debug"
- os: windows-2019
cmp: gcc
configuration: default
name: "Win2019 mingw"
steps:
- uses: actions/checkout@v2
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: "apt-get install ${{ matrix.cmp }}"
run: |
sudo apt-get update
sudo apt-get -y install software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -y install g++-${{ matrix.utoolchain }}
if: matrix.utoolchain
- 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@v2
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

4
.gitignore vendored
View File

@@ -7,8 +7,12 @@
/include/
/templates/
/configure/*.local
/modules/RELEASE.*.local
/modules/Makefile.local
O.*/
/QtC-*
/.vscode/
*.orig
*.log
.*.swp
.DS_Store

28
.gitmodules vendored Normal file
View File

@@ -0,0 +1,28 @@
[submodule "modules/pvData"]
path = modules/pvData
url = https://github.com/epics-base/pvDataCPP
branch = master
[submodule "modules/pvAccess"]
path = modules/pvAccess
url = https://github.com/epics-base/pvAccessCPP
branch = master
[submodule "modules/normativeTypes"]
path = modules/normativeTypes
url = https://github.com/epics-base/normativeTypesCPP
branch = master
[submodule "modules/pvaClient"]
path = modules/pvaClient
url = https://github.com/epics-base/pvaClientCPP
branch = master
[submodule "modules/pvDatabase"]
path = modules/pvDatabase
url = https://github.com/epics-base/pvDatabaseCPP
branch = master
[submodule "modules/pva2pva"]
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

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())

168
.tools/make-tar.sh Executable file
View File

@@ -0,0 +1,168 @@
#!/bin/bash
#
# Make tar for git repo w/ one level of sub modules.
#
set -e
die() {
echo "$1" >&2
exit 1
}
maybedie() {
if [ "$DEVMODE" ]; then
echo "Warning: $1" >&2
else
echo "Error: $1" >&2
exit 1
fi
}
usage() {
cat <<EOF >&2
usage: $0 [-v] [-s] <rev> [<outfile> [<prefix>]]
<rev> may be any git revision spec. (tag, branch, or commit id).
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
}
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
"")
PREFIX="base-$TOPREV/"
;;
*/)
;;
*)
die "Prefix must end with '/'"
;;
esac
# Check for both <tag> and R<tag>
if ! [ `git tag -l $TOPREV` ]
then
if [ `git tag -l R$TOPREV` ]
then
TOPREV="R$TOPREV"
else
maybedie "No tags exist '$TOPREV' or 'R$TOPREV'"
fi
fi
# temporary directory w/ automatic cleanup
TDIR=`mktemp -d`
trap 'rm -rf "$TDIR"' EXIT INT QUIT TERM
mkdir "$TDIR"/tar
echo "Exporting revision $TOPREV as $FINALTAR with prefix $PREFIX"
# Use git-archive to copy files at the given revision into our temp. dir.
# Respects 'export-exclude' in .gitattributes files.
git archive --prefix=$PREFIX $TOPREV | tar -C "$TDIR"/tar -x
# use ls-tree instead of submodule-foreach to capture submodule revision associated with supermodule rev.
#
# sub-modules appear in tree as eg.:
# 160000 commit c3a6cfcf0dad4a4eeecf59b474710d06ff3eb68a modules/ca
git ls-tree -r $TOPREV | \
awk '/^[0-9]+ commit / && $4 != ".ci" {print $3, $4}' | \
while read HASH MODDIR
do
echo "Visiting $HASH $MODDIR"
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
(cd "$TDIR"/tar && find . -mindepth 1 -not -type d) > "$TDIR"/list.1
# Remove leading ./ from filenames
sed -i -e 's|^\./||' "$TDIR"/list.1
# Exclude files
sed \
-e '/\/\.ci\//d' \
-e '/\/\.ci-local\//d' \
-e '/\/\.tools\//d' \
-e '/\/jenkins\//d' \
-e '/\/\.git/d' \
-e '/\/\.hgtags$/d' \
-e '/\/\.cproject$/d' \
-e '/\/\.project$/d' \
-e '/\/\.travis\.yml$/d' \
-e '/\/\.appveyor\.yml$/d' \
-e '/\/\.readthedocs\.yml$/d' \
"$TDIR"/list.1 > "$TDIR"/list.2
if ! diff -U 0 "$TDIR"/list.1 "$TDIR"/list.2
then
echo "Excluding the files shown above"
fi
# Use the filtered list to build the final tar
tar -c $TAROPT -C "$TDIR"/tar -T "$TDIR"/list.2 -f "$FINALTAR"
echo "Wrote $FINALTAR"
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
die "Oops! Tarfile diff against plan shown above"
fi

View File

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

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 file LICENSE that is included with this distribution.
# in file LICENSE that is included with this distribution.
#*************************************************************************
TOP = .
@@ -14,8 +14,12 @@ include $(TOP)/configure/CONFIG
TOOLS = $(TOP)/src/tools
DIRS += configure src
src_DEPEND_DIRS = configure
include $(TOP)/configure/RULES_TOP
DIRS += test
test_DEPEND_DIRS = src
DIRS += modules
modules_DEPEND_DIRS = src
include $(TOP)/configure/RULES_TOP

3
README
View File

@@ -22,3 +22,6 @@ training materials, additional components, links to other
websites etc. is available on the EPICS home page at
https://epics.anl.gov/
$Format:%cD$
$Format:%H$
https://code.launchpad.net/epics-base

View File

@@ -1,85 +0,0 @@
# AppVeyor configuration for EPICS Base
# Ralph Lange <ralph.lange@gmx.de>
# Copyright (c) 2016-2017 ITER Organization
# Version format
version: base-{branch}-{build}
#---------------------------------#
# 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: 2
# Skipping commits affecting only specific files
skip_commits:
files:
- 'documentation/*'
- 'templates/*'
- '**/*.html'
- '**/*.md'
#---------------------------------#
# build matrix configuration #
#---------------------------------#
# Build Configurations: dll/static, regular/debug
configuration:
- dynamic
- static
- dynamic-debug
- static-debug
# Environment variables: compiler toolchain
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
# Platform: architecture
platform:
- x86
- x64
# Matrix configuration: allow specific failing jobs
matrix:
exclude:
# VS Express installs don't have the 64 bit compiler
- platform: x64
TOOLCHAIN: 10.0
#---------------------------------#
# building & testing #
#---------------------------------#
install:
- cmd: ci/appveyor-prepare.bat
build_script:
- cmd: ci/appveyor-make.bat
test_script:
- cmd: ci/appveyor-make.bat runtests
#---------------------------------#
# notifications #
#---------------------------------#
notifications:
- provider: Slack
incoming_webhook:
secure: RYOm3FIUYeZGjWKaeTVKwq+C3fzK54AKwbmAoECED45mex3lN+8HmrC845a6mg9xPUJ/ND51RopWVaKDD9/UzaM0SO195RQLKqUTIUafiuM=

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,80 +0,0 @@
#!/bin/sh
set -e -x
die() {
echo "$1" >&2
exit 1
}
CACHEKEY=1
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"
# requires qemu, bison, flex, texinfo, install-info
if [ -n "$RTEMS" ]
then
echo "Cross RTEMS${RTEMS} for pc386"
install -d /home/travis/.cache
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/travis/.rtems
EOF
cat << EOF >> configure/CONFIG_SITE
CROSS_COMPILER_TARGET_ARCHS += RTEMS-pc386-qemu
CROSS_COMPILER_RUNTEST_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 tapfiles
make -s test-results
fi

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
@@ -58,10 +62,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.
#*************************************************************************
@@ -24,10 +23,15 @@ LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
CPP = $(CC) -x c -E
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
# Requires at least GCC 4.8 or LLVM (clang) 3.1
ASAN_FLAGS_YES = -fsanitize=address
ASAN_LDFLAGS_YES = $(ASAN_FLAGS_YES)
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -pg
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
WARN_CFLAGS_YES = -Wall
CODE_CFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CFLAGS_YES = -Wall -Werror-implicit-function-declaration
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -O3
OPT_CFLAGS_NO = -g
@@ -35,23 +39,24 @@ OPT_CFLAGS_NO = -g
PROF_CXXFLAGS_YES = -p
GPROF_CXXFLAGS_YES = -pg
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_NO = -g
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_LDFLAGS += $(ASAN_LDFLAGS_$(ENABLE_ASAN))
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

@@ -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 file LICENSE that is included with this distribution.
# in file LICENSE that is included with this distribution.
#*************************************************************************
#
# check for add-on CFLAGS and CXXFLAGS
@@ -37,9 +37,6 @@
# PROD_LIBS libs needed by PROD and TESTPROD
# LIB_LIBS libs needed by shared LIBRARY
# SHRLIB_LIBS libs needed by shared LIBRARY
# USR_OBJLIBS R3.13 vxWorks object libs needed building libraries and prods
# PROD_OBJLIBS R3.13 vxWorks object libs needed for building prods
# LIB_OBJLIBS R3.13 vxWorks object libs needed for building libraries
# USR_SYS_LIBS system libs needed building libraries and prods
# PROD_SYS_LIBS system libs needed for building prods
# LIB_SYS_LIBS system libs needed for building libraries
@@ -273,30 +270,6 @@ OBJS_HOST+=$(OBJS_HOST_DEFAULT)
endif
endif
ifneq ($(strip $(PROD_OBJLIBS_$(OS_CLASS))),)
PROD_OBJLIBS+=$(subst -nil-,,$(PROD_OBJLIBS_$(OS_CLASS)))
else
ifdef PROD_OBJLIBS_DEFAULT
PROD_OBJLIBS+=$(PROD_OBJLIBS_DEFAULT)
endif
endif
ifneq ($(strip $(LIB_OBJLIBS_$(OS_CLASS))),)
LIB_OBJLIBS+=$(subst -nil-,,$(LIB_OBJLIBS_$(OS_CLASS)))
else
ifdef LIB_OBJLIBS_DEFAULT
LIB_OBJLIBS+=$(LIB_OBJLIBS_DEFAULT)
endif
endif
ifneq ($(strip $(USR_OBJLIBS_$(OS_CLASS))),)
USR_OBJLIBS+=$(subst -nil-,,$(USR_OBJLIBS_$(OS_CLASS)))
else
ifdef USR_OBJLIBS_DEFAULT
USR_OBJLIBS+=$(USR_OBJLIBS_DEFAULT)
endif
endif
ifneq ($(strip $(LIB_OBJS_$(OS_CLASS))),)
LIB_OBJS+=$(subst -nil-,,$(LIB_OBJS_$(OS_CLASS)))
else
@@ -581,4 +554,3 @@ ifdef LIB_RCS_DEFAULT
LIB_RCS+=$(LIB_RCS_DEFAULT)
endif
endif

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 file LICENSE that is included with this distribution.
# in file LICENSE that is included with this distribution.
#*************************************************************************
#---------------------------------------------------------------
@@ -17,17 +17,6 @@ ifdef T_A
EPICS_BASE_BIN = $(EPICS_BASE)/bin/$(T_A)
endif
#---------------------------------------------------------------
# EPICS Base Ioc libraries
EPICS_BASE_IOC_LIBS += dbRecStd dbCore ca Com
#---------------------------------------------------------------
# EPICS Base Host libraries
EPICS_BASE_HOST_LIBS += cas gdd
EPICS_BASE_HOST_LIBS += ca Com
#---------------------------------------------------------------
# Version number for base shared libraries (and win32 products)
@@ -36,38 +25,28 @@ ifdef BASE_TOP
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
# Windows only allows 2 levels of version numbering
PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
BASE_CPPFLAGS += -DUSE_TYPED_RSET
endif # BASE_TOP
#---------------------------------------------------------------
# Base c preprocessor flags
# osithread default stack
OSITHREAD_USE_DEFAULT_STACK = NO
OSITHREAD_DEFAULT_STACK_FLAGS_YES = -DOSITHREAD_USE_DEFAULT_STACK
BASE_CPPFLAGS += $(OSITHREAD_DEFAULT_STACK_FLAGS_$(OSITHREAD_USE_DEFAULT_STACK))
#---------------------------------------------------------------
# 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))
#---------------------------------------------------------------
# EPICS Base build tools and tool flags
MAKEBPT = $(TOOLS)/makeBpt$(HOSTEXE)
DBEXPAND = $(PERL) $(TOOLS)/dbdExpand.pl
DBTORECORDTYPEH = $(PERL) $(TOOLS)/dbdToRecordtypeH.pl
DBTOMENUH = $(PERL) $(TOOLS)/dbdToMenuH.pl
REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
GENVERSIONHEADER = $(PERL) $(TOOLS)/genVersionHeader.pl $(QUIET_FLAG) $(QUESTION_FLAG)
PODTOHTML = $(PERL) $(TOOLS)/podToHtml.pl
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
GENVERSIONHEADER = $(PERL) $(TOOLS)/genVersionHeader.pl $(QUIET_FLAG) $(QUESTION_FLAG)
MAKERPATH = $(PYTHON) $(TOOLS)/makeRPath.py
#---------------------------------------------------------------
# tools for installing libraries and products
@@ -76,19 +55,26 @@ INSTALL_PRODUCT = $(INSTALL)
INSTALL_LIBRARY = $(INSTALL)
#---------------------------------------------------------------
# tools for making header dependancies and variable replacement
MKMF = $(PERL) $(TOOLS)/mkmf.pl
REPLACEVAR = $(PERL) $(TOOLS)/replaceVAR.pl
# tools for making header dependencies and variable replacement
MKMF = $(PERL) $(TOOLS)/mkmf.pl
REPLACEVAR = $(PERL) $(TOOLS)/replaceVAR.pl
#---------------------------------------------------------------
# Our versions of lex (flex) and yacc (antelope)
EYACC = $(TOOLS)/antelope$(HOSTEXE)
ELEX = $(TOOLS)/e_flex$(HOSTEXE) -S$(EPICS_BASE)/include/flex.skel.static
YACC = $(EYACC)
LEX = $(ELEX)
# tools for cleaning out unwanted files
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
DEPCLEAN = $(call FIND_TOOL,depclean.pl)
#---------------------------------------------------------------
# The 3.15 version of msi supports new options
# Tools for testing
TAPS_FAILED_LOG = .taps-failed.log
TESTS_FAILED_LOG = .tests-failed.log
TESTS_FAILED_PATH = $(abspath $(TOP)/$(TESTS_FAILED_LOG))
MSI3_15 = $(EPICS_BASE_HOST_BIN)/msi
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

@@ -15,46 +15,48 @@
# EPICS_SITE_VERSION is defined in CONFIG_SITE for sites that want a local
# version number to be included in the reported version string.
# We define BASE_3_14 and BASE_3_15 as NO and BASE_3_16 as YES, so
# We define convenience macros for our release series to be NO or YES, so
# Makefiles can detect 'Series X or later', or 'Series X only' like this:
#
# ifdef BASE_3_14
# true for 3.14 or later
# ifdef BASE_3_15
# true for 3.15 or later
# ifdef BASE_3_16
# true for 3.16 or later
# ifdef BASE_7_0
# true for 7.0 or later
#
# ifeq ($(BASE_3_14),YES)
# true for 3.14.x only
# ifeq ($(BASE_3_15),YES)
# true for 3.15 only
# true for 3.15.x only
# ifeq ($(BASE_3_16),YES)
# true for 3.16 only.
# true for 3.16.x only.
# ifeq ($(BASE_7_0),YES)
# true for 7.0.x only.
BASE_3_14 = NO
BASE_3_15 = NO
BASE_3_16 = YES
BASE_3_16 = NO
BASE_7_0 = YES
# EPICS_VERSION must be a number >0 and <256
EPICS_VERSION = 3
EPICS_VERSION = 7
# EPICS_REVISION must be a number >=0 and <256
EPICS_REVISION = 16
EPICS_REVISION = 0
# EPICS_MODIFICATION must be a number >=0 and <256
EPICS_MODIFICATION = 2
EPICS_MODIFICATION = 6
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included if zero
# Not included in the official EPICS version number if zero
EPICS_PATCH_LEVEL = 0
# This will end in -DEV between official releases
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
#EPICS_DEV_SNAPSHOT=
# 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

@@ -1,11 +1,9 @@
#*************************************************************************
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
# 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.
#*************************************************************************
menu(menuPost) {
choice(menuPost_OnChange, "On Change")
choice(menuPost_Always, "Always")
}
# Libraries needed to link a host tool
EPICS_BASE_HOST_LIBS = ca Com

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 = 0
# 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

@@ -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 file LICENSE that is included with this distribution.
# in file LICENSE that is included with this distribution.
#*************************************************************************
#
# CONFIG_COMMON
@@ -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
@@ -69,6 +71,8 @@ INSTALL_DBD = $(INSTALL_LOCATION)/dbd
INSTALL_DB = $(INSTALL_LOCATION)/db
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
FINAL_LOCATION = $(shell $(PERL) $(TOOLS)/fullPathName.pl $(INSTALL_LOCATION))
# Directory for OS independant build created files
COMMON_DIR = ../O.Common
@@ -78,12 +82,12 @@ 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,)
ECHO = @$(if $(filter -s,$(MFLAGS)),$(NOP),echo)
QUIET_FLAG := $(if $(filter -s,$(MFLAGS)),-q,)
#-------------------------------------------------------
# Convert 'make -q' flag into '-i' for genVersionHeader.pl
QUESTION_FLAG := $(if $(findstring q,$(MFLAGS)),-i,)
QUESTION_FLAG := $(if $(filter -q,$(MFLAGS)),-i,)
#-------------------------------------------------------
ifdef T_A
@@ -140,9 +144,10 @@ 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)
@@ -167,13 +172,13 @@ TESTSHRLIBNAME = $(TESTSHRLIBNAME_$(SHARED_LIBRARIES))
#--------------------------------------------------
# obj files
TARGET_OBJS = $($*_OBJLIBS) $($*_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)))
PROD_LD_OBJS = $(USR_OBJLIBS) $(PROD_OBJLIBS) $(TARGET_OBJS) $(PRODUCT_OBJS)
PROD_LD_OBJS = $(TARGET_OBJS) $(PRODUCT_OBJS)
LIBRARY_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(LIBSRCS) $(USR_OBJS) $(LIB_OBJS)))
LIBRARY_LD_OBJS = $(USR_OBJLIBS) $(LIB_OBJLIBS) $(TARGET_OBJS) $(LIBRARY_OBJS)
LIBRARY_LD_OBJS = $(TARGET_OBJS) $(LIBRARY_OBJS)
#--------------------------------------------------
# Windows resource files
@@ -255,7 +260,7 @@ OPT_CXXFLAGS = $(OPT_CXXFLAGS_$($(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))
@@ -265,7 +270,7 @@ LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRA
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
#--------------------------------------------------
# prefix, suffix, and ldflags for loadable shared libraries
# 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)
@@ -292,7 +297,7 @@ 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)\
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
@@ -304,7 +309,7 @@ LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
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)
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS) $(API_CPPFLAGS)
#--------------------------------------------------
# ar definition default
@@ -376,14 +381,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)/%)
@@ -463,5 +468,5 @@ COMMON_INC += $(filter $(COMMON_DIR)/%, $(foreach file, $(INC), \
SOURCE_INC = $(wildcard $(file) $(SOURCE_INC_bbb) )
SOURCE_INC_bbb = $(foreach dir, $(ALL_SRC_DIRS), $(SOURCE_INC_aaa) )
SOURCE_INC_aaa = $(addsuffix /$(file), $(dir) )
endif

View File

@@ -0,0 +1,28 @@
#*************************************************************************
# 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.
#*************************************************************************
# Set EPICS_DATABASE if necessary
ifndef EPICS_DATABASE
EPICS_DATABASE = $(if $(BUILDING_DATABASE),$(INSTALL_LOCATION),$(EPICS_BASE))
# Paths to tools built here
EPICS_DATABASE_HOST_BIN = $(EPICS_DATABASE)/bin/$(EPICS_HOST_ARCH)
endif
# Set location of locally-built tools
MAKEBPT = $(EPICS_DATABASE_HOST_BIN)/makeBpt$(HOSTEXE)
DBEXPAND = $(PERL) $(EPICS_DATABASE_HOST_BIN)/dbdExpand.pl
DBTORECORDTYPEH = $(PERL) $(EPICS_DATABASE_HOST_BIN)/dbdToRecordtypeH.pl
DBTOMENUH = $(PERL) $(EPICS_DATABASE_HOST_BIN)/dbdToMenuH.pl
DBDTOHTML = $(PERL) $(EPICS_DATABASE_HOST_BIN)/dbdToHtml.pl
REGISTERRECORDDEVICEDRIVER = $(PERL) $(EPICS_DATABASE_HOST_BIN)/registerRecordDeviceDriver.pl
MSI3_15 = $(EPICS_DATABASE_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 = 20
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
@@ -47,12 +46,10 @@ EPICS_CAS_SERVER_PORT=
EPICS_CAS_INTF_ADDR_LIST=""
EPICS_CAS_IGNORE_ADDR_LIST=""
# Servers to disable
EPICS_IOC_IGNORE_SERVERS=""
# Log Server:
# 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

@@ -0,0 +1,17 @@
#*************************************************************************
# 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.
#*************************************************************************
# Set location of locally generated tools
YACC = $(abspath $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH))/antelope$(HOSTEXE)
LEX = $(abspath $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH))/e_flex$(HOSTEXE) \
-S$(EPICS_BASE)/include/flex.skel.static
# Default stack size for osiThread
OSITHREAD_USE_DEFAULT_STACK = NO
OSITHREAD_DEFAULT_STACK_FLAGS_YES = -DOSITHREAD_USE_DEFAULT_STACK
BASE_CPPFLAGS += $(OSITHREAD_DEFAULT_STACK_FLAGS_$(OSITHREAD_USE_DEFAULT_STACK))

View File

@@ -0,0 +1,12 @@
# Version number for the libcom APIs and shared library
EPICS_LIBCOM_MAJOR_VERSION = 3
EPICS_LIBCOM_MINOR_VERSION = 20
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 2018 US: Mar 11 - Nov 04
# EU: Mar 25 - Oct 28
EPICS_TIMEZONE = CUS::360:031102:110402
#EPICS_TIMEZONE = MET::-60:032502:102803
#
# 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
## 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.

View File

@@ -15,10 +15,24 @@ 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
TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): toolchain.c
$(PREPROCESS.cpp)

View File

@@ -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,21 +196,21 @@ endif
#---------------------------------------------------------------
# build dependancies, clean rule
inc : $(COMMON_INC) $(INSTALL_INC)
inc: $(COMMON_INC) $(INSTALL_INC) $(COMMON_DBDS) $(COMMON_DBDCATS) \
$(INSTALL_DBDS) $(INSTALL_DBD_INSTALLS)
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
@@ -389,7 +389,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))))
@@ -418,7 +418,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
@@ -429,30 +429,30 @@ $(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file))))
#---------------------------------------------------------------
# HTML files
$(COMMON_DIR)/%.html: %.dbd.pod $(TOOLS)/dbdToHtml.pl
$(COMMON_DIR)/%.html: %.dbd.pod
@$(RM) $(notdir $@)
$(PERL) $(TOOLS)/dbdToHtml.pl $(DBDFLAGS) -o $(notdir $@) $<
$(DBDTOHTML) $(DBDFLAGS) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: %.pod $(TOOLS)/podToHtml.pl
$(COMMON_DIR)/%.html: %.pod
@$(RM) $(notdir $@)
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
$(PODTOHTML) -s -s -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: %.pm $(TOOLS)/podToHtml.pl
$(COMMON_DIR)/%.html: %.pm
@$(RM) $(notdir $@)
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
$(PODTOHTML) -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: ../%.pm $(TOOLS)/podToHtml.pl
$(COMMON_DIR)/%.html: ../%.pm
@$(RM) $(notdir $@)
$(PERL) $(TOOLS)/podToHtml.pl -s -o $(notdir $@) $<
$(PODTOHTML) -s -o $(notdir $@) $<
@$(MKDIR) $(dir $@)
@$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.html: ../%.pl $(TOOLS)/podToHtml.pl
$(COMMON_DIR)/%.html: ../%.pl
@$(RM) $(notdir $@)
$(PERL) $(TOOLS)/podToHtml.pl -s -o $(notdir $@) $<
$(PODTOHTML) -s -o $(notdir $@) $<
@$(MV) $(notdir $@) $@
.PRECIOUS: $(COMMON_DIR)/%.html %.html
@@ -460,7 +460,7 @@ $(COMMON_DIR)/%.html: ../%.pl $(TOOLS)/podToHtml.pl
#---------------------------------------------------------------
# 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 +514,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
@@ -539,4 +539,3 @@ $(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
.PRECIOUS: %_registerRecordDeviceDriver.cpp

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.
#*************************************************************************
# RULES.ioc

View File

@@ -32,12 +32,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 +49,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 +89,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 +103,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 (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 +125,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 +164,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)
buildInstall : \
$(INSTALL_SCRIPTS) $(INSTALL_PROD) $(INSTALL_MUNCHS) \
buildInstall: \
$(INSTALL_PROD) $(INSTALL_MUNCHS) \
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
$(INSTALL_OBJS) \
$(INSTALL_DOCS) \
$(INSTALL_HTMLS) \
$(INSTALL_OBJS) \
$(INSTALL_TEMPLATE) \
$(INSTALL_BIN_INSTALLS)
@@ -174,9 +191,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)
@@ -190,24 +207,31 @@ endif
checkRelease:
+$(CONVERTRELEASE) checkRelease
warnRelease:
-$(CONVERTRELEASE) checkRelease
$(CONVERTRELEASE) checkRelease
noCheckRelease:
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 !!!!
$(TESTPRODNAME) $(PRODNAME): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
$(TESTPRODNAME) $(PRODNAME): %$(EXE):
$(TESTPRODNAME) $(PRODNAME): %$(EXE): | $(INSTALL_LIB)
@$(RM) $@
$(DEBUGCMD) $(LINK.cpp)
$(LINK.cpp)
$(MT_EXE_COMMAND)
%_ctdt$(OBJ) : %_ctdt.c
%_ctdt$(OBJ): %_ctdt.c
@$(RM) $@
$(COMPILE.ctdt) $<
@@ -225,9 +249,9 @@ $(TESTPRODNAME) $(PRODNAME): %$(EXE):
# 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 +285,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) $@
@@ -305,6 +329,10 @@ $(LOADABLE_SHRLIBNAME): $(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX):
$(LINK.shrlib)
$(MT_DLL_COMMAND)
$(LIBNAME) $(SHRLIBNAME) $(LOADABLE_SHRLIBNAME): | $(INSTALL_LIB)
$(INSTALL_LIB):
@$(MKDIR) $@
#---------------------------------------------------------------
# C++ munching for VxWorks
@@ -335,26 +363,33 @@ $(MODNAME): %$(MODEXT): %$(EXE)
@$(RM) $@
$(LINK.mod)
#---------------------------------------------------------------
# Generate Perl include path module
%ModuleDirs.pm: $(wildcard $(TOP)/configure/RELEASE*)
@$(MKDIR) $(dir $@)
$(CONVERTRELEASE) -T $(TOP) $@
#---------------------------------------------------------------
# Automated testing
runtests: $(TESTSCRIPTS)
runtests: run-tap-tests
run-tap-tests: $(TESTSCRIPTS.t)
ifneq ($(TESTSCRIPTS.t),)
ifdef RUNTESTS_ENABLED
-$(PERL) -MTest::Harness -e 'runtests @ARGV if @ARGV;' $^
$(ECHO) "$(PROVE) $^"
@$(PROVE) $^ || $(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)
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) $^"
@$(PROVE.tap) $^ || $(PROVE_FAILURE)
endif
CURRENT_TAPFILES := $(wildcard $(TAPFILES))
@@ -362,29 +397,27 @@ 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
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
%.t: ../%.plt
@$(RM) $@
$(CP) $< $@
$(EXPAND_TOOL) -t $(INSTALL_LOCATION) -a $(T_A) $< $@
# Test programs (.t files) must be written in Perl.
# Generate a perl program to exec the real test binary.
@@ -393,6 +426,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),)
@@ -404,14 +454,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
@@ -461,9 +511,11 @@ $(INSTALL_TCLLIB)/%: ../%
@$(INSTALL) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_TCLLIB)
endif
ifneq ($(TCLINDEX),)
$(INSTALL_TCLLIB)/$(TCLINDEX): $(INSTALL_TCLLIBS)
$(ECHO) "Updating $@"
$(ECHO) eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
endif
$(INSTALL_LOADABLE_SHRLIBS): $(INSTALL_SHRLIB)/%: %
$(ECHO) "Installing loadable shared library $@"
@@ -475,6 +527,7 @@ ifneq (,$(strip $(LOADABLE_SHRLIB_VERSION)))
endif # LOADABLE_SHRLIB_VERSION
endif # LOADABLE_SHRLIB_SUFFIX
ifneq ($(INSTALL_CONFIGS),)
$(INSTALL_CONFIG)/%: %
$(ECHO) "Installing config file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
@@ -482,20 +535,21 @@ $(INSTALL_CONFIG)/%: %
$(INSTALL_CONFIG)/%: ../%
$(ECHO) "Installing config file $@"
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@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)
@@ -533,12 +587,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.
@@ -30,6 +32,17 @@ PRINT.%:
.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

@@ -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.
#*************************************************************************
# RULES_EXPAND
@@ -12,28 +12,72 @@
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
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 '@'
EXPANDED = $(EXPAND:%@=%)
EXPANDED_COM = $(EXPAND_COMMON:%@=%)
EXPANDED_COMMON = $(EXPANDED_COM:%=$(COMMON_DIR)/%)
$(EXPANDED): %: %@
$(ECHO) "Expanding $< to $@"
@$(RM) $@
@$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
$(EXPAND_TOOL) $(EXPANDARCH) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
$(EXPANDED_COM): %: %@
$(ECHO) "Expanding $< to $(COMMON_DIR)/$@"
@$(RM) $@
$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
$(EXPANDED_COMMON): $(COMMON_DIR)/%: %
@$(MV) $< $@
clean: expand_clean
expand_clean:
@$(RM) $(EXPANDED)
@$(RM) $(EXPANDED) $(EXPANDED_COMMON)
.PRECIOUS: $(EXPANDED)
.PRECIOUS: $(EXPANDED) $(EXPANDED_COMMON)
.PHONY: expand_clean
#---------------------------------------------------------------
@@ -42,8 +86,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 +100,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 +118,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
LIVE_SUBMODULES = $(subst /Makefile,,$(wildcard $(addsuffix /Makefile, $(SUBMODULES))))
DIRS += $(LIVE_SUBMODULES)
include $(CONFIG)/RULES_DIRS
INSTALL_LOCATION_ABS := $(abspath $(INSTALL_LOCATION))
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_SITE.local
$(ECHO) Creating $@ with
$(ECHO) " $(PARENT_MODULE) = $(INSTALL_LOCATION_ABS)"
@echo $(PARENT_MODULE) = $(INSTALL_LOCATION_ABS)> $@
realclean:
$(RM) $(wildcard RELEASE.*.local)
.PHONY: RELEASE.host realclean
# 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

@@ -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.
#*************************************************************************
# Octave definitions and rules

View File

@@ -15,13 +15,12 @@ $(1)_$(2) += $$(if $$(strip $$($(1)_$(2)_$$(OS_CLASS))), \
$$($(1)_$(2)_DEFAULT))
endef
$(foreach type, SRCS RCS OBJS LDFLAGS OBJLIBS LDOBJS SYS_LIBS , \
$(foreach type, SRCS RCS OBJS LDFLAGS LDOBJS SYS_LIBS , \
$(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY) , \
$(eval $(call TARGET_template,$(strip $(target)),$(type)))))
#-----------------------------------------------------------------------
# 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,10 +148,14 @@ $(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), \
$(eval $(call LOADABLE_LIBRARY_template,$(strip $(target)))))
#-----------------------------------------------------------------------

View File

@@ -9,45 +9,71 @@
include $(CONFIG)/RULES_DIRS
# 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
ifndef DISABLE_TOP_RULES
#
# Rules for a regular application top directory
#
distclean: realclean cvsclean realuninstall
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
cvsclean:
$(PERL) $(CVSCLEAN)
realuninstall: uninstallDirs
$(RMDIR) $(INSTALL_LOCATION_BIN)
$(RMDIR) $(INSTALL_LOCATION_LIB)
$(RMDIR) $(INSTALL_LOCATION_BIN) $(INSTALL_LOCATION_LIB)
UNINSTALL_DIRS += $(INSTALL_DBD) $(INSTALL_INCLUDE) $(INSTALL_DOC) \
$(INSTALL_HTML) $(INSTALL_TEMPLATES) $(INSTALL_DB) $(DIRECTORY_TARGETS)
uninstallDirs:
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: | clean
$(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 | clean
$(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)%: | clean
$(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)"
@@ -57,31 +83,39 @@ help:
@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 " cvsclean - Removes cvs .#* files in all dirs of directory tree"
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 realuninstall archuninstall uninstallDirs
.PHONY: uninstall help
.PHONY: distclean uninstall rm-failure-file help
.PHONY: realuninstall archuninstall uninstallDirs
# 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,7 +63,7 @@ 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)\
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
@@ -76,7 +77,7 @@ 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 $(filter -s,$(MFLAGS)),$(NOP),echo)
#--------------------------------------------------
# Although RTEMS uses gcc, it wants to use gcc its own way
@@ -95,20 +96,39 @@ 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__
OP_SYS_CFLAGS_NET_yes = -DRTEMS_LEGACY_STACK
OP_SYS_CFLAGS += $(OP_SYS_CFLAGS_NET_$(RTEMS_HAS_NETWORKING))
ifeq ($(RTEMS_HAS_POSIX_API),yes)
POSIX_CPPFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE
endif
OP_SYS_LDLIBS_posix_NET_yes = -ltftpfs -lnfs -lz -ltelnetd
OP_SYS_LDLIBS_posix_NET_no = -ltftpfs -lbsd -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,7 @@
#
# Author: Matt Rippa
#
RTEMS_BSP = mvme2700
RTEMS_BSP = mvme2307
RTEMS_TARGET_CPU = powerpc
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
@@ -15,11 +15,10 @@ 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
endef
OP_SYS_LDLIBS += -lbspExt
include $(CONFIG)/os/CONFIG.Common.RTEMS

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 ($(RTEMS_VERSION),5)
$(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
ifneq ($(RTEMS_VERSION),5)
$(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)/powerpc-rtems5/qoriq_e500/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

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

@@ -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

@@ -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,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

@@ -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

@@ -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
@@ -65,7 +66,7 @@ GNU = NO
#
# Darwin shared libraries
#
SHRLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup \
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined dynamic_lookup \
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
$(addprefix -compatibility_version , $(SHRLIB_VERSION)) \
$(addprefix -current_version , $(SHRLIB_VERSION))

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

View File

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

View File

@@ -1,10 +0,0 @@
# CONFIG.linux-686.Common
#
# Definitions for linux-686 host builds
# Sites may override these definitions in CONFIG_SITE.linux-686.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-686.linux-686
#
# Definitions for linux-686 host - linux-686 target builds
# Sites may override these definitions in CONFIG_SITE.linux-686.linux-686
#-------------------------------------------------------
# Include linux-x86 compiler definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

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

View File

@@ -0,0 +1,8 @@
# CONFIG.linux-aarch64.linux-aarch64
#
# Definitions for native linux-aarch64 builds
# Override these definitions in CONFIG_SITE.linux-aarch64.linux-aarch64
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon

View File

@@ -4,7 +4,7 @@
# Override these settings in CONFIG_SITE.linux-x86.linux-arm
#-------------------------------------------------------
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
GNU_TARGET = arm-linux
# prefix of compiler tools

View File

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

View File

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

View File

@@ -1,38 +0,0 @@
# CONFIG.linux-x86.linux-cris
#
# Author: Peter Zumbruch
# GSI
# P.Zumbruch@gsi.de
#
# Definitions for linux-x86 host - linux-cris target builds
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris
#-------------------------------------------------------
GNU_DIR = $(CRIS_CROSS_COMPILER)
#STATIC_...
STATIC_LDFLAGS_YES= -Wl,-Bstatic
## debian-gcc Bug#438641
GNU_LDLIBS_YES =
STATIC_LDFLAGS_YES += -static-libgcc
# if not in debug mode strip all symbols
ifndef CRIS_COMPILER_DEBUG
STATIC_LDFLAGS_YES += -Wl,--strip-all
endif
ifeq ($(GNU),YES)
STATIC_LDFLAGS_NO = -lgcc
else
STATIC_LDFLAGS_NO =
endif
STATIC_LDLIBS_YES=
STATIC_LDLIBS_NO=
OPT_CXXFLAGS_YES = -Os
ifeq ($(STATIC_BUILD), YES)
$(shell echo yes)
endif

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