Compare commits

...

382 Commits

Author SHA1 Message Date
bef27939c7 only 3 digits in version
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 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-20 gcc-8 (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-16 gcc-4.8 (push) Has been cancelled
Base / Ub-16 gcc-4.9 (push) Has been cancelled
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
2021-05-10 17:08:38 +02:00
8697c7741a Merge commit '504191441d8fe' into 7.0.5-troubleshoot
Conflicts:
	modules/database/test/std/link/Makefile
	modules/libcom/src/osi/os/vxWorks/osdThread.h
2021-05-10 10:50:57 +02:00
3ac831802c Merge tag 'R7.0.5' into 7.0.5-troubleshoot
Some checks failed
Base / Win2019 MSC-19 (push) Has been cancelled
Base / Win2019 MSC-19, static (push) Has been cancelled
Base / Ub-20 clang-10 C++11 (push) Has been cancelled
Base / MacOS clang-12 (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-20 gcc-8 (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-16 gcc-4.9 (push) Has been cancelled
ANJ: Tagged for release

Conflicts:
	configure/os/CONFIG_SITE.Common.linuxCommon
2021-05-05 10:30:11 +02: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
Andrew Johnson
bbb4d86f78 Enable RTEMS testing in modules/database/test/std/link 2021-03-03 18:17:31 -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
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
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
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
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
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
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
Michael Davidsaver
43bd5ee1c2 Com: always skip SOCK_CLOEXEC for RTEMS and vxWorks 2021-02-05 10:32:47 -08:00
Jeong Han Lee
34a0b387b0 add dawrin-aarch64 (arm64) Host Arch 2021-02-02 17:26:12 -08:00
Andrew Johnson
78d685688c Add VALID_BUILDS support for "Command" 2021-02-02 16:06:42 -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
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
d795dd76a6 bugfix for older compilers: have all declarations before instructions 2020-11-16 17:58:01 +01:00
Andrew Johnson
45924d28e0 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-11-16 17:44:51 +01:00
Andrew Johnson
b1d0a0d036 Build: Do clean before uninstall actions (if requested) 2020-11-16 17:44:21 +01:00
Andrew Johnson
45e9cf9a94 Warn about NULL dbevEventUserFreeList 2020-11-16 17:44:01 +01:00
Andrew Johnson
a8dcff2f0d Merge fix-wrong-order-phas fixes from 3.15 branch 2020-11-16 17:41:08 +01:00
53a7d25923 allow constant links with numeric 1 element arrays like [42] 2020-11-16 17:34:20 +01:00
Ralph Lange
c701e7e98e Redo d3d40689 that was lost in upmerging 2020-11-16 17:33:25 +01:00
Michael Davidsaver
bf8e097756 compat IPPORT_USERRESERVED
musl libc doesn't define IPPORT_USERRESERVED
2020-11-16 17:32:29 +01:00
Andrew Johnson
837a2bbdde const init a char array from a string value
Conflicts:
	documentation/RELEASE_NOTES.md
2020-11-16 17:31:08 +01:00
Andrew Johnson
6fb361a965 Fix Cygwin TCP_NODELAY issue from Paul Chu & Freddie
Conflicts:
	documentation/RELEASE_NOTES.md
2020-11-16 17:27:56 +01:00
1db2cba81d Merge commit '10d472202dc2bf1fa5c569d2a14d460e95030564' into PSI-7.0
This is before PVA is modified
2020-11-16 17:06:22 +01:00
Andrew Johnson
4730e14cc7 Document the PINI, POST and PRIO menus 2020-11-13 18:17:47 -06:00
ce43a67cbd re-add removed .ci submodule 2020-11-13 10:07:34 +01:00
7ac8f056ed added missing header for close() in VxWorks 6.3 2020-11-12 11:21:26 +01:00
d157e96aac remove compiler warning 2020-11-12 10:59:54 +01:00
1d1e3e9527 calc backward compatibility: allow incomplete conditional 2020-11-12 10:54:11 +01: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
48d37e6b45 drop support for 32 bit SL6 2020-07-06 14:02:04 +02:00
5d03f20831 build for VxWorks 6.9 2020-07-06 14:00:15 +02:00
9e72edb544 fix comment and linker flag 2020-07-06 10:56:02 +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
4476c71f62 removed 'git describe' from EPICS version string, as it is now shown in Revision string 2020-06-26 11:17:51 +02:00
e9471b3072 Merge branch '7.0' of https://git.launchpad.net/epics-base into PSI-7.0 2020-06-24 18:01:47 +02: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
4082cb27c3 new architecture nilrt7-armv7a (NI Linux Real Time) for ESI 2020-06-03 10:47:14 +02:00
88cdffddb6 Merge branch '7.0' release 7.4.0.1 into PSI-7.0
Conflicts:
	.gitmodules
	modules/database/src/ioc/db/Makefile
	modules/libcom/test/epicsAtomicTest.cpp
	modules/pvAccess
	modules/pvData
	modules/pvDatabase
	modules/pva2pva
2020-06-03 10:46:07 +02: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
Michael Davidsaver
688bc3247c missing include 2020-05-28 16:07:50 -07:00
b27d1416b5 install location with patch level 2020-04-07 15:38:05 +02:00
ab97b5fe54 Bring back VxWorks 5 compatibility 2020-04-07 15:37:32 +02:00
bbaa207603 Merge remote-tracking branch 'remotes/xiaoqiang/wine_msvc' into PSI-7.0 2020-04-06 14:00:56 +02:00
Xiaoqiang Wang
605937bbac use the msvc from a new location 2020-04-06 11:05:04 +02:00
Xiaoqiang Wang
594fcb9a0d CXXFLAGS from CONFIG_win32-x86.Common 2020-04-03 15:10:46 +02:00
Xiaoqiang Wang
e033c0cfb2 use MSVC via WINE to compile for windows 2020-04-01 14:44:38 +02:00
Xiaoqiang Wang
53ebbab941 use MSVC_DIR to pick up MSVC toolchains 2020-04-01 14:42:18 +02:00
86adc529ef Merge remote-tracking branch 'origin' into PSI-7.0
Conflicts:
	configure/os/CONFIG_SITE.Common.linuxCommon
	modules/libcom/src/log/iocLog.c
	modules/libcom/src/log/logClient.c
	modules/pvAccess
	modules/pvData
	modules/pvDatabase
2020-02-06 17:28:40 +01:00
3a774d37f8 call shell to get EPICS_SITE_VERSION only when compiling EPICS base 2019-09-20 09:02:35 +02:00
5f6b1e2b16 (Re-)connect only when there is something to send. This avoids constant useless disconnect/connect cycles if the server (or firewall) keeps closing the connection. 2019-09-04 10:14:05 +02:00
584caf54b2 don't use space in version string 2019-09-03 09:17:38 +02:00
d602c1cdcb detect when server closes connection. can only be done reliably with recv, not with send 2019-09-02 17:47:43 +02:00
12ce14b6e5 no need to delay startup only because log server is currently not available 2019-09-02 17:47:43 +02:00
e02709b3a4 send pending log messages directly after connecting 2019-09-02 17:47:43 +02:00
b19709039d avoid needless memmove calls 2019-09-02 17:47:42 +02:00
3c4ffbf267 elimitate duplicate code in logClient 2019-09-02 17:47:42 +02:00
4942da0c88 do not discard unsent messages when log server has closed connection, instead try to send them after reconnect 2019-09-02 17:47:42 +02:00
5f547257ac speed up logRestart thread termination at exit 2019-09-02 17:47:42 +02:00
1b99366887 don't send errlog on all logClients 2019-09-02 17:47:42 +02:00
871af36ac5 move -fno-strict-aliasing flag to central place for all Linux version 2019-09-02 16:44:53 +02:00
0ad6d2aec9 typo in comment 2019-09-02 13:53:21 +02:00
8837d2f275 use perl instead of date in EPICS_SITE_VERSION because of Windows 2019-09-02 10:49:44 +02:00
09a17127a9 make xxxTestHarness TESTPRODs instead of PRODs 2019-09-02 10:47:43 +02:00
3699c5bc4c fix strict-aliasing warnings 2019-08-26 15:50:07 +02:00
157b0867fa removed unused vxWorks version defaults 2019-08-14 14:06:05 +02:00
56529964f3 always use -g for non-vxWorks gnu compiler 2019-08-14 13:55:07 +02:00
c28e240fce clear whitespace 2019-08-14 11:39:30 +02:00
b04b2dab22 fix astac crash 2019-08-13 15:13:54 +02:00
8edcd7b07f use READLINE as default for all Linux systems 2019-08-09 16:21:08 +02:00
ca78451122 move PSI specifics out to CONFIG_SITE. files 2019-08-09 13:33:41 +02:00
4cc44e3dce cleanup spaces 2019-08-09 13:32:49 +02:00
e81d3a1d7d remove strict-aliasing warnings in RHEL7 2019-08-09 11:34:50 +02:00
53dd61b80a merged with R7.0.3 2019-08-09 11:31:43 +02:00
5b754d320f fix posix epicsThreadSleepQuantum() implementation not to return 0.01 on Linux 2019-07-24 14:17:25 +02:00
2be2658cfc added modules/pcas 2019-07-22 17:12:22 +02:00
2b157096e6 merge branch '7.0' into 'PSI-7.0' 2019-07-22 15:44:08 +02:00
71eaddfd84 Merge branch 'refs/heads/PSI-7.0.1' into PSI-7.0 2019-07-22 15:36:33 +02:00
5589deb3ad make sure softIoc for vxWorks contains all functions 2019-07-22 15:17:18 +02:00
0bb80e373b add simple calculations to macros 2019-05-10 14:44:17 +02:00
4acdd83984 also build pcas 2019-05-10 11:13:23 +02:00
d12d38f970 re-enable -fno-strict-aliasing for vxWorks 2019-05-10 11:08:48 +02:00
74d9749255 fix install location 2019-05-10 11:07:50 +02:00
3276ada78a build for DeltaTau with ELDK-5.3 for newer C++ compiler 2019-05-08 17:32:50 +02:00
de378eec34 also build pcas 2019-04-03 15:14:34 +02:00
dbb2d875fb undo commit 2206934 which introduces a MKDIR rule that conflicts with driver/makefile 2019-04-03 15:13:00 +02:00
c7f966a1f5 fix install location 2019-04-03 15:10:28 +02:00
7889dda6f8 merged with upstream 2019-02-20 10:51:02 +01:00
a2ccf3b631 add raspberryPi and skip unused vxWorks archs 2018-10-31 15:23:05 +01:00
57db34b303 Merge branch 'FixShellCommands' into PSI-7.0 2018-10-24 09:25:44 +02:00
4f790758af no PVA for mvl40-xscale_be 2018-10-23 10:01:13 +02:00
ce9dfc6bb4 need some .o files, but there aren't many any more 2018-10-18 16:20:45 +02:00
4f40ad1927 build for mvl40-xscale_be (without PVA)configure/os/CONFIG.Common.mvl40-xscale_be 2018-10-18 16:20:13 +02:00
a42a4010d6 skip building with clang on old SL6 to avoid problems with cross build from RHEL7 2018-10-11 13:20:59 +02:00
a2aa17fafc some drivers complain about strict-aliasing 2018-10-11 08:36:35 +02:00
5bf2784db2 add -fno-strict-aliasing for those archs which complain about anyscalar.h 2018-10-05 10:43:08 +02:00
7a4e7b7600 add tar and copysrc make rules 2018-10-03 17:13:13 +02:00
70aa23513f use -isystem option to find correct headers for cross compiling for old Linux host versions 2018-10-03 16:47:57 +02:00
71ded2f25f install dbCaPvt.h needed by devIocStats/ioccar 2018-10-03 16:43:32 +02:00
11103351b2 add build year-month to version string 2018-10-03 16:38:53 +02:00
146a413977 add -isystem to avoid system headers in .d files (does not work for vxWorks 5) 2018-10-03 13:48:09 +02:00
4e44550f62 Merge branch 'FixShellCommands' into PSI-7.0 2018-09-28 11:41:52 +02:00
9952470486 Merge branch 'FixShellCommands' into PSI-7.0 2018-09-27 13:58:23 +02:00
02d30dedbc install server.h for misc module 2018-09-26 16:10:30 +02:00
5ed0fe52a0 Merge branch '7.0' into PSI-7.0 2018-09-26 11:45:19 +02:00
42b1f774da add PSI configuration 2018-09-25 11:13:08 +02:00
7738b68320 fix missing template instances for old vxWorks (uses -fno-implicit-templates) 2018-09-24 18:00:53 +02:00
1199fabe90 Fix strange compiler errors with gcc 2.96:
using <namespace::function>; seems not to work but
using namespace <namespace>; works
Also 'add' only works with explicit namespace. Why?
2018-09-21 16:21:13 +02:00
1aefc5f2f0 re-enable building vxWorks 5 2018-09-21 16:20:17 +02:00
6f666c6c22 Add mechanism to skip modules for selected architectures 2018-09-21 15:50:06 +02:00
1147 changed files with 10728 additions and 3568 deletions

View File

@@ -1,5 +1,5 @@
# .appveyor.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
# Appveyor configuration file for EPICS Base 7 builds
# (see also https://github.com/epics-base/ci-scripts)
# Version format
version: base-{branch}-{build}
@@ -29,14 +29,17 @@ clone_depth: 5
skip_commits:
files:
- 'documentation/*'
- 'startup/*'
- '.github/*'
- '**/*.html'
- '**/*.md'
- '.travis.yml'
#---------------------------------#
# build matrix configuration #
#---------------------------------#
image: Visual Studio 2015
# Build Configurations: dll/static, regular/debug
configuration:
- dynamic
@@ -49,6 +52,7 @@ environment:
# common / default variables for all jobs
SETUP_PATH: .ci-local:.ci
BASE: SELF
EPICS_TEST_IMPRECISE_TIMING: YES
matrix:
- CMP: vs2019
@@ -59,7 +63,7 @@ environment:
- CMP: vs2013
- CMP: vs2012
- CMP: vs2010
- CMP: mingw
- CMP: gcc
# Platform: processor architecture
platform:
@@ -74,14 +78,17 @@ matrix:
CMP: vs2012
- platform: x64
CMP: vs2010
- platform: x64
CMP: vs2008
# 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 #
@@ -89,17 +96,22 @@ matrix:
install:
- cmd: git submodule update --init --recursive
- cmd: python .ci/appveyor/do.py prepare
- 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/appveyor/do.py build
- cmd: python .ci/cue.py build
test_script:
- cmd: python .ci/appveyor/do.py test
- cmd: python -m ci_core_dumper install
- cmd: python .ci/cue.py test
on_finish:
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- cmd: python .ci/appveyor/do.py build test-results -s
- cmd: python .ci/cue.py build test-results -s
on_failure:
- cmd: python -m ci_core_dumper report
#---------------------------------#
# debugging #

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

@@ -0,0 +1,150 @@
# 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/*'
- '**/*.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 test
on_finish:
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- cmd: python .ci/cue.py build test-results -s
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

2
.ci

Submodule .ci updated: 55038b7315...3db08b5977

19
.ci-local/travis-fixup.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/sh
set -e -u -x
env|grep TRAVIS
[ "$TRAVIS_OS_NAME" = "linux" ] || exit 0
# Ensure there is an interface with a (correct) broadcast address
# eg. 'trusty' VMs have interface broadcast address mis-configured
# (why oh why do people insist on setting this explicitly?)
sudo ip tuntap add dev tap42 mode tap
sudo ip addr add 192.168.240.1/24 broadcast + dev tap42
sudo ip link set dev tap42 up
# note that this device will be UP but not RUNNING
# so java will see it as not UP since java confuses UP and RUNNING

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

@@ -0,0 +1,152 @@
# .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/*'
- '**/*.html'
- '**/*.md'
pull_request:
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 }}
EXTRA: ${{ matrix.extra }}
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: "4.10"
name: "Ub-20 gcc-9 + RT-4.10"
- os: ubuntu-20.04
cmp: gcc
configuration: default
rtems: "4.9"
name: "Ub-20 gcc-9 + RT-4.9"
- 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: 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"
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 test
- name: Upload tapfiles Artifact
uses: actions/upload-artifact@v2
with:
name: tapfiles ${{ matrix.name }}
path: '**/O.*/*.tap'
- name: Collect and show test results
run: python .ci/cue.py test-results

2
.gitignore vendored
View File

@@ -11,6 +11,8 @@
/modules/Makefile.local
O.*/
/QtC-*
/.vscode/
*.orig
*.log
.*.swp
.DS_Store

3
.gitmodules vendored
View File

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

102
.tools/adjustver.py Executable file
View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
#
# Make tar for git repo w/ one level of sub modules.
#
@@ -9,14 +9,18 @@ die() {
exit 1
}
TOPREV="$1"
FINALTAR="$2"
PREFIX="$3"
maybedie() {
if [ "$DEVMODE" ]; then
echo "Warning: $1" >&2
else
echo "Error: $1" >&2
exit 1
fi
}
if ! [ "$TOPREV" ]
then
usage() {
cat <<EOF >&2
usage: $0 <rev> [<outfile> [<prefix>]]
usage: $0 [-v] [-s] <rev> [<outfile> [<prefix>]]
<rev> may be any git revision spec. (tag, branch, or commit id).
@@ -24,9 +28,33 @@ usage: $0 <rev> [<outfile> [<prefix>]]
If <outfile> is omitted, "base-<rev>.tar.gz" will be used.
If provided, <prefix> must end with "/". If <prefix> is omitted,
the default is "base-<rev>/".
Options:
-v Enable verbose prints
-d Enable permissive developer mode
EOF
exit 1
fi
}
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
"")
@@ -59,16 +87,13 @@ case "$PREFIX" in
esac
# Check for both <tag> and R<tag>
if [ "$TOPREV" = "HEAD" ]
then
true
elif ! [ `git tag -l $TOPREV` ]
if ! [ `git tag -l $TOPREV` ]
then
if [ `git tag -l R$TOPREV` ]
then
TOPREV="R$TOPREV"
else
die "No tags exist '$TOPREV' or 'R$TOPREV'"
maybedie "No tags exist '$TOPREV' or 'R$TOPREV'"
fi
fi
@@ -89,11 +114,17 @@ git archive --prefix=$PREFIX $TOPREV | tar -C "$TDIR"/tar -x
#
# sub-modules appear in tree as eg.:
# 160000 commit c3a6cfcf0dad4a4eeecf59b474710d06ff3eb68a modules/ca
git ls-tree -r $TOPREV | awk '/^[0-9]+ commit / {print $3, $4}' | \
git ls-tree -r $TOPREV | \
awk '/^[0-9]+ commit / && $4 != ".ci" {print $3, $4}' | \
while read HASH MODDIR
do
echo "Visiting $HASH $MODDIR"
git -C $MODDIR archive --prefix=${PREFIX}${MODDIR}/ $HASH | tar -C "$TDIR"/tar -x
if [ -e $MODDIR/.git ]
then
git -C $MODDIR archive --prefix=${PREFIX}${MODDIR}/ $HASH | tar -C "$TDIR"/tar -x
else
maybedie " Submodule not checked out."
fi
done
# make a list of files copied and filter out undesirables
@@ -105,13 +136,17 @@ sed -i -e 's|^\./||' "$TDIR"/list.1
# Exclude files
sed \
-e '/\/\.\?ci\//d' \
-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
@@ -129,5 +164,5 @@ tar -t $TAROPT -f "$FINALTAR" > "$TDIR"/list.3
# make sure we haven't picked up anything extra
if ! diff -u "$TDIR"/list.2 "$TDIR"/list.3
then
echo "Oops! Tarfile diff against plan shown above"
die "Oops! Tarfile diff against plan shown above"
fi

View File

@@ -1,89 +0,0 @@
# .travis.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
language: cpp
compiler: gcc
dist: xenial
cache:
directories:
- $HOME/.cache
env:
global:
- SETUP_PATH=.ci-local:.ci
- BASE=SELF
addons:
apt:
packages:
# for all EPICS builds
- libreadline6-dev
- libncurses5-dev
- perl
# for clang compiler
- clang
# for mingw builds (32bit and 64bit)
- g++-mingw-w64-i686
- g++-mingw-w64-x86-64
# for RTEMS cross builds
- qemu-system-x86
homebrew:
packages:
# for all EPICS builds
- bash
update: true
install:
- ./.ci/travis/prepare.sh
script:
- ./.ci/travis/build.sh
# Define build jobs
jobs:
include:
# Different configurations of default gcc and clang
- dist: bionic
- dist: xenial
- dist: bionic
env: EXTRA="CMD_CXXFLAGS=-std=c++11"
- dist: trusty
env: STATIC=YES EXTRA="CMD_CXXFLAGS=-std=c++11"
- dist: bionic
compiler: clang
- compiler: clang
- dist: trusty
compiler: clang
env: STATIC=YES
# Cross-compilations to Windows using MinGW and WINE
- env: WINE=32 TEST=NO STATIC=YES
compiler: mingw
- env: WINE=32 TEST=NO STATIC=NO
compiler: mingw
# Cross-compilation to RTEMS
- env: RTEMS=4.10
- env: RTEMS=4.9
# MacOS build
- os: osx
env:
- EXTRA="CMD_CFLAGS=-mmacosx-version-min=10.7"
- EXTRA1="CMD_CXXFLAGS=-mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++"
- EXTRA2="CMD_LDXFLAGS=-mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++"
compiler: clang

View File

@@ -23,3 +23,10 @@ DIRS += modules
modules_DEPEND_DIRS = src
include $(TOP)/configure/RULES_TOP
UNINSTALL_DIRS += $(INSTALL_LOCATION)/src
copysrc:
tar cf - --exclude-vcs --exclude-backups --exclude=O.* modules/*/src | tar xf - -C $(INSTALL_LOCATION)
tar:
tar cfjP epics_base-$(EPICS_VERSION_NUMBER).tar.bz2 $(INSTALL_LOCATION)

View File

@@ -58,12 +58,8 @@ 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
# except when building Base itself, where this file is empty,
# and would error in src/tools/ anyway.
ifndef BASE_TOP
# Parse configure/RELEASE to find all upstream modules
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
endif
ifdef T_A

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.
#*************************************************************************
@@ -32,9 +31,9 @@ PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -pg
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
CODE_CFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CFLAGS_YES = -Wall
WARN_CFLAGS_YES = -Wall -Werror-implicit-function-declaration
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -O3
OPT_CFLAGS_YES = -O3 -g
OPT_CFLAGS_NO = -g
PROF_CXXFLAGS_YES = -p
@@ -43,7 +42,7 @@ CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_CXXFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CXXFLAGS_YES = -Wall
WARN_CXXFLAGS_NO = -w
OPT_CXXFLAGS_YES = -O3
OPT_CXXFLAGS_YES = -O3 -g
OPT_CXXFLAGS_NO = -g
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))

View File

@@ -64,10 +64,15 @@ DEPCLEAN = $(call FIND_TOOL,depclean.pl)
#---------------------------------------------------------------
# Tools for testing
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
PROVE = $(PERL) $(TOOLS)/epicsProve.pl
PROVE.tap = $(PROVE) --ext .tap --exec "$(CAT)"
TAPS_FAILED_LOG = .taps-failed.log
TESTS_FAILED_LOG = .tests-failed.log
TESTS_FAILED_PATH = $(abspath $(TOP)/$(TESTS_FAILED_LOG))
TEST_FAILURE_FILENAME = .tests-failed.log
TEST_FAILURE_FILE = $(TOP)/$(TEST_FAILURE_FILENAME)
PROVE_FAILURE = echo $(abspath .)>> $(TEST_FAILURE_FILE)
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
PROVE = $(PERL) $(TOOLS)/epicsProve.pl --failures --color
PROVE.tap = $(PROVE) --ext .tap --exec "$(CAT)"
TESTFAILURES = $(PERL) $(TOOLS)/testFailures.pl
SHOWTESTFAILURES = $(TESTFAILURES) $(TESTS_FAILED_PATH) $(TAPS_FAILED_LOG)
PROVE_FAILURE = echo $(abspath .)>> $(TESTS_FAILED_PATH)
TAPFILE_FAILURE = echo $@>> $(TAPS_FAILED_LOG)

View File

@@ -48,20 +48,15 @@ EPICS_VERSION = 7
EPICS_REVISION = 0
# EPICS_MODIFICATION must be a number >=0 and <256
EPICS_MODIFICATION = 4
EPICS_MODIFICATION = 5
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included in the official EPICS version number if zero
EPICS_PATCH_LEVEL = 0
EPICS_PATCH_LEVEL = 1
# 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=
#EPICS_DEV_SNAPSHOT=-DEV
#EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
#EPICS_DEV_SNAPSHOT=-rc1
#EPICS_DEV_SNAPSHOT=-rc1-DEV
EPICS_DEV_SNAPSHOT=-DEV
# No changes should be needed below here

View File

@@ -2,11 +2,11 @@
EPICS_CA_MAJOR_VERSION = 4
EPICS_CA_MINOR_VERSION = 13
EPICS_CA_MAINTENANCE_VERSION = 6
EPICS_CA_MAINTENANCE_VERSION = 9
# Development flag, set to zero for release versions
EPICS_CA_DEVELOPMENT_FLAG = 0
EPICS_CA_DEVELOPMENT_FLAG = 1
# Immediately after a release the MAINTENANCE_VERSION
# will be incremented and the DEVELOPMENT_FLAG set to 1

View File

@@ -80,12 +80,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

View File

@@ -24,3 +24,5 @@ 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

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

View File

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

View File

@@ -22,6 +22,7 @@
# darwin-x86 (Intel based Apple running OSX)
# 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 +52,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.
@@ -67,8 +67,7 @@
# 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-aarch64 (linux-x86_64 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)
@@ -76,9 +75,6 @@
# 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)
@@ -161,7 +157,9 @@ USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
# Site version number, if set will append '-' and this string to the
# EPICS version number string that is reported by many tools.
EPICS_SITE_VERSION =
ifeq ($(INSTALL_LOCATION),$(EPICS_BASE))
EPICS_SITE_VERSION=$(shell $(PERL) -MPOSIX -e 'print strftime "%Y-%m-%d", localtime')
endif
# For GNU compiler, use pipes rather than temporary files for
# communication between the various stages of compilation.

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)
@@ -86,6 +100,23 @@ include $(CONFIG)/RULES_FILE_TYPE
include $(CONFIG)/RULES.Db
#---------------------------------------------------------------
# Do not build anything if current path matches SKIP_BUILD
ifneq (,$(strip $(SKIP_BUILDS)))
CURRENT_MODULE=$(subst $(realpath $(TOP)/..)/,,$(subst $(realpath $(dir $(lastword $(MAKEFILE_LIST)))..)/,,$(realpath ..)))
ifneq ($(filter $(SKIP_BUILDS) $(addsuffix /%,$(SKIP_BUILDS)),$(CURRENT_MODULE)),)
$(info Skipping $(CURRENT_MODULE) for $(T_A))
PROD=
TESTPROD=
LIBRARY=
TESTLIBRARY=
LOADABLE_LIBRARY=
TESTS=
SRC_FILES=
endif
endif
#---------------------------------------------------------------
# Include defines and rules for prod, library and test* targets
@@ -116,7 +147,7 @@ ifneq (,$(filter $(T_A), $(EPICS_HOST_ARCH) $(CROSS_COMPILER_RUNTEST_ARCHS)))
RUNTESTS_ENABLED = YES
TESTSCRIPTS.t = $(filter %.t, $(TESTSCRIPTS))
TAPFILES.t += $(TESTSCRIPTS.t:.t=.tap)
JUNITFILES.t += $(TESTSCRIPTS.t:.t=.xml)
JUNITFILES.t += $(TESTSCRIPTS.t:.t=-results.xml)
TAPFILES += $(TAPFILES.t)
JUNITFILES += $(JUNITFILES.t)
endif
@@ -208,9 +239,9 @@ $(LOADABLE_SHRLIBNAME): FINAL_DIR=$(INSTALL_SHRLIB)
$(TESTPRODNAME) $(PRODNAME): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
$(TESTPRODNAME) $(PRODNAME): %$(EXE): | $(INSTALL_LIB)
$(TESTPRODNAME) $(PRODNAME): %$(EXE):
@$(RM) $@
$(LINK.cpp)
$(DEBUGCMD) $(LINK.cpp)
$(MT_EXE_COMMAND)
%_ctdt$(OBJ): %_ctdt.c
@@ -311,10 +342,6 @@ $(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
@@ -358,7 +385,8 @@ runtests: run-tap-tests
run-tap-tests: $(TESTSCRIPTS.t)
ifneq ($(TESTSCRIPTS.t),)
ifdef RUNTESTS_ENABLED
$(PROVE) --failures --color $^ || $(PROVE_FAILURE)
$(ECHO) "$(PROVE) $^"
@$(PROVE) $^ || $(PROVE_FAILURE)
endif
endif
@@ -369,7 +397,8 @@ test-results: tap-results
tap-results: $(TAPFILES)
ifneq ($(strip $(TAPFILES)),)
ifdef RUNTESTS_ENABLED
$(PROVE.tap) --failures --color $^ || $(PROVE_FAILURE)
$(ECHO) "$(PROVE.tap) $^"
@$(PROVE.tap) $^ || $(PROVE_FAILURE)
endif
CURRENT_TAPFILES := $(wildcard $(TAPFILES))
@@ -377,8 +406,8 @@ 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)
@@ -387,10 +416,11 @@ endif
# A .tap file is the output from running the associated test script
$(TAPFILES.t): %.tap: %.t
ifdef RUNTESTS_ENABLED
$(PERL) $< -tap > $@
$(ECHO) "$(PERL) $< -tap > $@"
@$(PERL) $< -tap > $@ || $(TAPFILE_FAILURE)
endif
$(JUNITFILES.t): %.xml: %.tap
$(JUNITFILES.t): %-results.xml: %.tap
$(TAPTOJUNIT) --puretap --output $@ --input $< $*
# If there's a perl test script (.plt) available, use it
@@ -490,11 +520,9 @@ $(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 $@"

View File

@@ -86,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
@@ -98,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) $$@

View File

@@ -47,12 +47,9 @@ realclean:
.PHONY: RELEASE.host realclean
# Append all our live submodule failure files
FAILURE_FILES = $(addsuffix /$(TEST_FAILURE_FILENAME), $(LIVE_SUBMODULES))
runtests: | $(addsuffix $(DIVIDER)runtests, $(LIVE_SUBMODULES))
@$(TOUCH) $(FAILURE_FILES)
@$(CAT) $(FAILURE_FILES) >> $(TEST_FAILURE_FILE)
test-results: | $(addsuffix $(DIVIDER)test-results, $(LIVE_SUBMODULES))
@$(TOUCH) $(FAILURE_FILES)
@$(CAT) $(FAILURE_FILES) >> $(TEST_FAILURE_FILE)
# 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

@@ -33,7 +33,7 @@ UNINSTALL_DIRS += $(INSTALL_INCLUDE) $(INSTALL_TEMPLATES) $(DIRECTORY_TARGETS)
ifneq ($(INSTALL_LOCATION),$(TOP))
UNINSTALL_DIRS += $(INSTALL_CONFIG)
endif
uninstallDirs:
uninstallDirs: | clean
$(RMDIR) $(UNINSTALL_DIRS)
# Remove the bin and lib directories if they have no sub-directories
@@ -41,17 +41,18 @@ uninstallDirs:
EMPTY_INSTALL_DIRS = \
$(if $(wildcard $(INSTALL_LOCATION_BIN)/*),,$(INSTALL_LOCATION_BIN)) \
$(if $(wildcard $(INSTALL_LOCATION_LIB)/*),,$(INSTALL_LOCATION_LIB))
uninstall: archuninstall uninstallDirs
uninstall: archuninstall uninstallDirs | clean
$(RMDIR) $(EMPTY_INSTALL_DIRS)
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
uninstall$(DIVIDER)%:
uninstall$(DIVIDER)%: | clean
$(RMDIR) $(addsuffix /$(subst uninstall$(DIVIDER),,$@), \
$(INSTALL_LOCATION_BIN) $(INSTALL_LOCATION_LIB))
# Only run this at the top of the parent
runtests test-results:
@$(PERL) $(TOOLS)/testFailures.pl $(TEST_FAILURE_FILE)
@$(SHOWTESTFAILURES)
else
#
@@ -63,10 +64,10 @@ else
endif # DISABLE_TOP_RULES
# Clean out old results
before-runtests before-test-results: rm-failure-file
rm-failure-file:
@$(RM) $(TEST_FAILURE_FILE)
@$(TOUCH) $(TEST_FAILURE_FILE)
$(RM) $(TESTS_FAILED_PATH)
help:
@echo "Usage: gnumake [options] [target] ..."

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

@@ -0,0 +1,2 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86_64

View File

@@ -0,0 +1 @@
include $(CONFIG)/os/CONFIG.Common.linux-clang

View File

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

View File

@@ -0,0 +1,6 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
COMMANDLINE_LIBRARY = READLINE_NCURSES
ARCH_DEP_CFLAGS += -march=i686

View File

@@ -0,0 +1,4 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86_64
COMMANDLINE_LIBRARY = READLINE_NCURSES

View File

@@ -0,0 +1,4 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS += -march=i686

View File

@@ -0,0 +1,2 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86_64

View File

@@ -0,0 +1 @@
include $(CONFIG)/os/CONFIG.Common.linux-clang

View File

@@ -0,0 +1,8 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 5.5.1
WIND_BASE = /afs/psi.ch/project/vxworks/Tornado2.2.1
#there is a problem with our ccppc and optimization
# -O0 works, -O and -O1 and higher are buggy
OPT_CFLAGS_YES = -O0
OPT_CXXFLAGS_YES = -O0

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

@@ -0,0 +1,2 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.2

View File

@@ -0,0 +1,5 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc603_long
VXWORKS_VERSION = 6.3
# Buggy "uninitialized variable" warning produces many false positives
ARCH_DEP_CXXFLAGS += -Wno-uninitialized

View File

@@ -0,0 +1,5 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.3
# Buggy "uninitialized variable" warning produces many false positives
ARCH_DEP_CXXFLAGS += -Wno-uninitialized

View File

@@ -0,0 +1,2 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc603_long
VXWORKS_VERSION = 6.6

View File

@@ -0,0 +1,2 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.6

View File

@@ -0,0 +1,5 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.7
#needed when including memPartLib.h, e.g. through moduleLib.h or loadLib.h
ARCH_DEP_CFLAGS += -D_VSB_CONFIG_FILE='<../lib/h/config/vsbConfig.h>'

View File

@@ -0,0 +1,3 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc32
VXWORKS_VERSION = 6.9
export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib

View File

@@ -0,0 +1,3 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.9
export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib

View File

@@ -0,0 +1,14 @@
# CONFIG.Common.darwin-aarch64
#
# This file is maintained by the build community.
#
# 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-aarch64
# Include definitions common to all Darwin targets
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon

View File

@@ -0,0 +1,22 @@
# DeltaTau PowerPMAC with ELDK 4.2
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
COMMANDLINE_LIBRARY = READLINE_NCURSES
ARCH_CLASS = ppc
ELDK=/opt/eldk-4.2
GNU_TARGET=ppc_4xxFP
GNU_DIR=$(ELDK)/usr
# This cross tool chain is installed in a somehow weired way
# Without the following lines it does not work on RHEL7
# but it worked on SL6
ARCH_DEP_CXXFLAGS += -I $(ELDK)/$(GNU_TARGET)/usr/include/c++/4.2.2
ARCH_DEP_CXXFLAGS += -I $(ELDK)/$(GNU_TARGET)/usr/include/c++/4.2.2/powerpc-linux
ARCH_DEP_CXXFLAGS += -I $(ELDK)/$(GNU_TARGET)/usr/include/c++/4.2.2/backward
ARCH_DEP_LDFLAGS += -Wl,-rpath-link,$(ELDK)/$(GNU_TARGET)/lib
ARCH_DEP_LDFLAGS += -Wl,-rpath-link,$(ELDK)/$(GNU_TARGET)/usr/lib

View File

@@ -0,0 +1,14 @@
# Virtex FPGA embedded Processor with ELDK 5.1
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = eldk
SDK_DIR = /opt/eldk-5.1
SDK_HOST_ARCH = $(GNU_HOST_ARCH)-$(SDK)-$(GNU_HOST_OS)
GNU_TARGET = powerpc-4xx-softfloat
GNU_ARCH = ppc405-linux
GNU_DIR = $(SDK_DIR)/$(GNU_TARGET)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_ARCH)

View File

@@ -0,0 +1,15 @@
# IOxOS IFC1210 with ELDK 5.2
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = eldk
SDK_DIR = /opt/eldk-5.2
SDK_HOST_ARCH = $(GNU_HOST_ARCH)-$(SDK)-$(GNU_HOST_OS)
GNU_TARGET = powerpc-e500v2
GNU_ARCH = ppce500v2-linux-gnuspe
GNU_DIR = $(SDK_DIR)/$(GNU_TARGET)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_ARCH)
GNU_TARGET_INCLUDE_DIR =

View File

@@ -0,0 +1,21 @@
# DeltaTau PowerPMAC with ELDK 5.3
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = eldk
SDK_DIR = /opt/eldk-5.3
SDK_HOST_ARCH = $(GNU_HOST_ARCH)-$(SDK)-$(GNU_HOST_OS)
GNU_ARCH = ppc440e-linux
SDKTARGETSYSROOT=$(SDK_DIR)/powerpc-4xx/sysroots
GNU_DIR = $(SDKTARGETSYSROOT)/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_ARCH)
GNU_TARGET_INCLUDE_DIR =
GNU_TARGET=powerpc-linux
ARCH_DEP_CPPFLAGS = -m32 -mcpu=440fp -mhard-float
ARCH_DEP_CPPFLAGS += --sysroot=$(SDKTARGETSYSROOT)/$(GNU_ARCH)
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)/$(GNU_ARCH)
AS=$(GNU_BIN)/$(GNU_TARGET)-as

View File

@@ -0,0 +1,23 @@
# IOxOS IFC1211 with Freescale QorIQ 2.0 toolchain
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = fslsdk
SDK_DIR = /opt/fsl-qoriq/2.0
SDK_HOST_ARCH = $(GNU_HOST_ARCH_64)-$(SDK)-$(GNU_HOST_OS)
SDK_TARGET = ppc64e6500-fsl-linux
GNU_TARGET = powerpc64-fsl-linux
SDKTARGETSYSROOT = $(SDK_DIR)/sysroots/$(SDK_TARGET)
GNU_DIR = $(SDK_DIR)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_TARGET)
ARCH_DEP_CPPFLAGS = --sysroot=$(SDKTARGETSYSROOT)
ARCH_DEP_CFLAGS = -mcpu=e6500 -m64 -mhard-float
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)
# warning -O2 and higher are broken!
#OPT_CFLAGS_YES = -O1
#OPT_CXXFLAGS_YES = -O1

View File

@@ -12,7 +12,7 @@ include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS = -march=i386
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,

View File

@@ -10,7 +10,7 @@ include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS = -march=i486
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,

View File

@@ -11,7 +11,7 @@ include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS = -march=i586
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,

View File

@@ -11,7 +11,7 @@ include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS = -march=i686
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,

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

@@ -10,7 +10,7 @@ include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS += -march=athlon-mp -mfpmath=sse
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
VALID_BUILDS = Ioc Command
endif
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,

View File

@@ -0,0 +1,5 @@
include $(CONFIG)/os/CONFIG.Common.linuxCommon
GNU = NO
CMPLR_CLASS = clang
CC = clang
CCC = clang++

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

@@ -0,0 +1,16 @@
# Moxa DA-66x with SDK 4.2 and ARM7 processor
# Include definitions common to all Linux ARM targets
include $(CONFIG)/os/CONFIG.Common.linux-arm
GNU_DIR=/afs/psi.ch/project/embeddedlinux/moxa/arm-linux-4.4.2-v4
GNU_TARGET=arm
ARCH_DEP_LDFLAGS+=-Wl,-rpath-link,$(GNU_DIR)/arm-none-linux-gnueabi/lib
ARCH_DEP_LDFLAGS+=-Wl,-rpath-link,$(INSTALL_LIB)
COMMANDLINE_LIBRARY = READLINE_NCURSES
# suppress note "the mangling of 'va_list' has changed in GCC 4.4"
ARCH_DEP_CXXFLAGS += -Wno-psabi
ARCH_DEP_CFLAGS += -funwind-tables

View File

@@ -0,0 +1,15 @@
# Moxa DA-66x with Montavista Linux 4.0
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
COMMANDLINE_LIBRARY = READLINE_CURSES
ARCH_CLASS = xscale
GNU_DIR=/afs/psi.ch/project/embeddedlinux/moxa/xscale_be/armv5teb-montavista-linuxeabi
ARCH_DEP_CFLAGS += -funwind-tables
# Cannot build PVA because of missing boost support
SKIP_BUILDS = pv% normativeTypes

View File

@@ -0,0 +1,18 @@
# National Instruments CompactRIO running LabView RT 19.5.1
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = arm
GNU_TARGET = arm-linux-gnu
SYSROOT = /opt/LabVIEW-RT-19.5.1/arm/sysroots/armv7a-vfp-neon-nilrt-linux-gnueabi
ARCH_DEP_CPPFLAGS += -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon
ARCH_DEP_CPPFLAGS += --sysroot=$(SYSROOT)
ARCH_DEP_CPPFLAGS += -I$(SYSROOT)/usr/include/c++/4.7.2/arm-nilrt-linux-gnueabi/
ARCH_DEP_CPPFLAGS += -I$(SYSROOT)/usr/include/c++/4.7.2/
ARCH_DEP_LDFLAGS += --sysroot=$(SYSROOT)
COMMANDLINE_LIBRARY = READLINE_NCURSES

View File

@@ -0,0 +1,41 @@
# RaspberryPi with github.com/raspberrypi/tools toolchain
# Tested on:
# * Raspberry 3B+ Raspbian 9
# * Raspberry 2 Raspbian 7
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
# Using readline:
# Due to missing/messed up libs in the toolchain, readline needs copies of
# libtinfo.so.5.9 and libreadline.so.6.2 from a Raspbian 7 rootfs
# /lib/arm-linux-gnueabihf/ to the toolchain, e.g.
# $(SDK_DIR)/gcc-linaro-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/
# and manually created links libtinfo.so.5 and libreadline.so.
# For gcc-linaro-arm-linux-gnueabihf-raspbian, an existing incompatible
# libtinfo.so.5 is in the way. Remove it.
# (Built with glibc 2.16 like installed on Raspbian 9 but toolchain uses glibc 2.13.)
# Also copy /usr/include/readline/ directory from some readline 6 installation
# to $(SDK_DIR)/gcc-linaro-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf/libc/usr/include/
ARCH_CLASS = arm
SDK_DIR = /opt/raspberrypi/arm-bcm2708
# Available SDK_TARGETs:
# gcc 4.8.3 for 32 bit hosts with GLIBC 2.3 or higher
SDK_TARGET = gcc-linaro-arm-linux-gnueabihf-raspbian
# gcc 4.8.3 for 64 bit hosts with GLIBC 2.14 or higher
# SDK_TARGET = gcc-linaro-arm-linux-gnueabihf-raspbian-x64
# gcc 4.7.1 for 64 bit hosts with GLIBC 2.8 or higher
# SDK_TARGET = arm-linux-gnueabihf
# gcc 4.7.1 for 32 bit hosts with GLIBC 2.4 or higher
# SDK_TARGET = arm-bcm2708hardfp-linux-gnueabi
# SDK_TARGET = arm-bcm2708-linux-gnueabi
GNU_DIR = $(SDK_DIR)/$(SDK_TARGET)
GNU_TARGET = $(if $(filter arm-bcm2708%,SDK_TARGET),$(SDK_TARGET),arm-linux-gnueabihf)

View File

@@ -14,6 +14,7 @@ ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC32
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
ARCH_DEP_CFLAGS = -mstrict-align
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -13,7 +13,7 @@ CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC603
ARCH_DEP_CPPFLAGS = -DCPU=PPC603
ARCH_DEP_CFLAGS = -mcpu=603 -mstrict-align
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -14,9 +14,12 @@ ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
ARCH_DEP_CFLAGS_2 = -mcpu=604 -mstrict-align -mno-implicit-fp
ARCH_DEP_CFLAGS_3 = -mcpu=604 -mstrict-align -mno-implicit-fp
ARCH_DEP_CFLAGS_4 = -mcpu=604 -mstrict-align -fno-implicit-fp
ARCH_DEP_CFLAGS = $(ARCH_DEP_CFLAGS_$(VX_GNU_MAJOR_VERSION))
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align
CODE_CFLAGS_2 = -mno-implicit-fp
CODE_CFLAGS_3 = -mno-implicit-fp
CODE_CFLAGS_4 = -fno-implicit-fp
CODE_CFLAGS += $(CODE_CFLAGS_$(VX_GNU_MAJOR_VERSION))
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -0,0 +1,18 @@
# XILINX Zynq with Yocto 2.1 / Petalinux toolchain
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = arm64
SDK = petalinux
SDK_DIR = /opt/petalinux-gfa/2017.2
SDK_HOST_ARCH = $(GNU_HOST_ARCH_64)-$(SDK)-$(GNU_HOST_OS)
SDK_TARGET = aarch64-xilinx-linux
GNU_TARGET = $(SDK_TARGET)
SDKTARGETSYSROOT = $(SDK_DIR)/sysroots/$(SDK_TARGET)
GNU_DIR = $(SDK_DIR)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_TARGET)
ARCH_DEP_CPPFLAGS = --sysroot=$(SDKTARGETSYSROOT)
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)

View File

@@ -0,0 +1,3 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86_64.Common

View File

@@ -0,0 +1,2 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -0,0 +1,16 @@
# "cross compile" for older Linux version
# Use older compiler and older libraries
# Used packages:
# compat-gcc-44-c++-4.4.7
# compat-gcc-44-4.4.7
# compat-glibc-headers-2.12
# It was neccessary to install 32 bit compatibility libraries manually
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
CC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc44
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)g++44
TARGET_CPPFLAGS = -isystem /usr/lib/x86_64-redhat-linux6E/include
TARGET_LDFLAGS = -B /usr/lib/x86_64-redhat-linux6E/lib
LINK.cpp += --as-needed -lc -lm -lrt -lpthread -lreadline -ltinfo

View File

@@ -0,0 +1,16 @@
# "cross compile" for older Linux version
# Use older compiler and older libraries
# Used packages:
# compat-gcc-44-c++-4.4.7
# compat-gcc-44-4.4.7
# compat-glibc-headers-2.12
# compat-glibc-2.12
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
CC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc44
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)g++44
TARGET_CPPFLAGS = -isystem /usr/lib/x86_64-redhat-linux6E/include
TARGET_LDFLAGS = -B /usr/lib/x86_64-redhat-linux6E/lib64
LINK.cpp += --as-needed -lc -lm -lrt -lpthread -lreadline -ltinfo

View File

@@ -0,0 +1,8 @@
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
PATH_FILTER = $(subst /,/,$(1))
# Silence the tr1 namespace deprecation warnings
USR_CXXFLAGS_WIN32 += -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
MSVC_DIR = /opt/wine-msvc-2017/bin/x86/

View File

@@ -0,0 +1,8 @@
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
PATH_FILTER = $(subst /,/,$(1))
# Silence the tr1 namespace deprecation warnings
USR_CXXFLAGS_WIN32 += -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
MSVC_DIR = /opt/wine-msvc-2017/bin/x64/

View File

@@ -0,0 +1,3 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86.Common

View File

@@ -0,0 +1,2 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -0,0 +1,3 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86_64.Common

View File

@@ -0,0 +1,2 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -0,0 +1,2 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts

View File

@@ -0,0 +1,2 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -0,0 +1,3 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86_64.Common

View File

@@ -0,0 +1,2 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -0,0 +1,2 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

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

View File

@@ -0,0 +1,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

@@ -0,0 +1,28 @@
# CONFIG.linux-x86_64.linux-aarch64
#
# Definitions for linux-x86_64 host - linux-aarch64 target builds
# Sites may override these in CONFIG_SITE.linux-x86_64.linux-aarch64
#-------------------------------------------------------
VALID_BUILDS = Ioc Command
GNU_TARGET = aarch64-linux
# prefix of compiler tools
CMPLR_SUFFIX =
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
# Provide a link-time path for readline if needed
OP_SYS_INCLUDES += $(READLINE_DIR:%=-I%/include)
READLINE_LDFLAGS = $(READLINE_DIR:%=-L%/lib)
RUNTIME_LDFLAGS_READLINE_YES_NO = $(READLINE_DIR:%=-Wl,-rpath,%/lib)
RUNTIME_LDFLAGS += \
$(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH)_$(STATIC_BUILD))
SHRLIBDIR_LDFLAGS += $(READLINE_LDFLAGS)
PRODDIR_LDFLAGS += $(READLINE_LDFLAGS)
# Library flags
STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
STATIC_LDLIBS_NO=

View File

@@ -26,6 +26,3 @@ endif
# Needed to find dlls for base installed build tools (antelope,eflex,...)
PATH := $(EPICS_BASE_BIN):$(PATH)
# Silence the tr1 namespace deprecation warnings
USR_CXXFLAGS_WIN32 += -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING

View File

@@ -6,7 +6,7 @@
# Win32 valid build types and include directory suffixes
VALID_BUILDS = Host Ioc
VALID_BUILDS = Host Ioc Command
CMPLR_CLASS = msvc
@@ -14,15 +14,15 @@ OPT_WHOLE_PROGRAM = YES
#-------------------------------------------------------
WINLINK = link
WINLINK = $(MSVC_DIR)link
RCCMD = rc -l 0x409 $(INCLUDES) -fo $@ $<
RCCMD = $(MSVC_DIR)rc -l 0x409 $(INCLUDES) -fo $@ $<
ARCMD = lib -nologo -verbose -out:$@ $(LIB_OPT_LDFLAGS) $(LIBRARY_LD_OBJS)
ARCMD = $(MSVC_DIR)lib -nologo -verbose -out:$@ $(LIB_OPT_LDFLAGS) $(LIBRARY_LD_OBJS)
#
# Configure OS vendor C compiler
CC = cl
CC = $(MSVC_DIR)cl
# Override CONFIG.gnuCommon settings for cross builds.
GNU = NO
@@ -75,14 +75,14 @@ STATIC_CFLAGS_YES= -MT$(VISC_CFLAGS_DEBUG) $(BUILD_DLL_CFLAGS)
STATIC_CFLAGS_NO= -MD$(VISC_CFLAGS_DEBUG) $(BUILD_DLL_CFLAGS) -DEPICS_CALL_DLL
# OS vendor c preprocessor
CPP = cl -nologo -C -E
CPP = $(MSVC_DIR)cl -nologo -C -E
# Configure OS vendor C++ compiler
#
# -EHsc - generate code for exceptions
# -GR - generate code for run time type identification
#
CCC = cl -EHsc -GR
CCC = $(MSVC_DIR)cl -EHsc -GR
# Other compiler flags, used for CPP, C and C++
#
@@ -107,6 +107,9 @@ CODE_CPPFLAGS += -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
WARN_CXXFLAGS_YES = -W3 -w44355 -w44344 -w44251
WARN_CXXFLAGS_NO = -W1
# Silence tr1 namespace deprecation warnings
WARN_CXXFLAGS += -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
#
# -Ox maximum optimizations
# -GL whole program optimization

View File

@@ -0,0 +1,2 @@
SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)
LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)

View File

@@ -16,3 +16,9 @@ COMMANDLINE_LIBRARY = READLINE_NCURSESW
# No other libraries needed
#COMMANDLINE_LIBRARY = READLINE
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.cygwin-x86.cygwin-x86 instead.

View File

@@ -11,10 +11,8 @@
#LDLIBS_READLINE = -lreadline -lcurses
# It makes sense to include debugging symbols even in optimized builds
# in case you want to attach gdb to the process or examine a core-dump.
# This does cost disk space, but not memory as debug symbols are not
# loaded into RAM when the binary is loaded.
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.cygwin-x86_64.cygwin-x86_64 instead.

View File

@@ -0,0 +1,9 @@
# CONFIG_SITE.Common.darwin-aarch64
#
# Site override definitions for darwin-aarch64 target builds
#-------------------------------------------------------
#
# arm64 devices: Apple Silicon M1
ARCH_CLASS = arm64

View File

@@ -0,0 +1,38 @@
# CONFIG_SITE.Common.linux-aarch64
#
# Site Specific definitions for all linux-aarch64 targets
#-------------------------------------------------------
# NOTE for SHARED_LIBRARIES: In most cases if this is set to YES the
# shared libraries will be found automatically. However if the .so
# files are installed at a different path to their compile-time path
# then in order to be found at runtime do one of these:
# a) LD_LIBRARY_PATH must include the full absolute pathname to
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
# executables.
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
# will add the named directory to the list contained in the executables.
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
# to inform the system of the shared library location.
# Depending on your version of Linux you'll want one of the following
# lines to enable command-line editing and history in iocsh. If you're
# not sure which, start with the top one and work downwards until the
# build doesn't fail to link the readline library. If none of them work,
# comment them all out to build without readline support.
# No other libraries needed (recent Fedora, Ubuntu etc.):
#COMMANDLINE_LIBRARY = READLINE
# Needs -lncurses (RHEL 5 etc.):
#COMMANDLINE_LIBRARY = READLINE_NCURSES
# Needs -lcurses (older versions)
#COMMANDLINE_LIBRARY = READLINE_CURSES
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-aarch64.linux-aarch64 instead.

View File

@@ -33,3 +33,12 @@ COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
# Readline is broken or you don't want use it:
#COMMANDLINE_LIBRARY = EPICS
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-arm.linux-arm instead.
# Permit access to 64-bit file-systems
OP_SYS_CFLAGS += -D_FILE_OFFSET_BITS=64

View File

@@ -34,22 +34,17 @@ COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
#COMMANDLINE_LIBRARY = EPICS
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-x86.linux-x86 instead.
# Permit access to 64-bit file-systems
OP_SYS_CFLAGS += -D_FILE_OFFSET_BITS=64
# Uncomment the followings lines to build with CLANG instead of GCC.
#
#GNU = NO
#CMPLR_CLASS = clang
#CC = clang
#CCC = clang++
# Tune GNU compiler output for a specific 32-bit cpu-type
# (e.g. generic, native, i386, i686, pentium2/3/4, prescott, k6, athlon etc.)
GNU_TUNE_CFLAGS = -mtune=generic
# Developers using a suitable compiler may enable its address sanitizer:
#ENABLE_ASAN = YES

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