From 8f7620477da570ecc53da245a8d4d6f9ed972b05 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 7 Aug 2024 13:30:09 -0500 Subject: [PATCH 1/6] Update .ci submodule --- .ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci b/.ci index 3db08b5..0e93b70 160000 --- a/.ci +++ b/.ci @@ -1 +1 @@ -Subproject commit 3db08b5977efd7a3ac8eecfa068b5bfdfdf84dd0 +Subproject commit 0e93b708551cb7bb212fda7029eccdf872dabc81 From 7495758e5b7ad4d678e360eec61b184f8670b20d Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 7 Aug 2024 10:52:01 -0500 Subject: [PATCH 2/6] Don't duplicate libs requested in PROD_LIBS --- testApp/Makefile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/testApp/Makefile b/testApp/Makefile index a082186..c2093c4 100644 --- a/testApp/Makefile +++ b/testApp/Makefile @@ -24,7 +24,6 @@ PROD_LIBS += $(EPICS_BASE_IOC_LIBS) TESTPROD_HOST += testweak testweak_SRCS += testweak.cpp -testweak_LIBS += Com TESTS += testweak TESTPROD_HOST += testtest @@ -57,14 +56,12 @@ testpvalink_LIBS += qsrv TESTPROD_HOST += testgroupconfig testgroupconfig_SRCS += testgroupconfig -testgroupconfig_LIBS += qsrv pvAccess pvData -testgroupconfig_LIBS += $(EPICS_BASE_IOC_LIBS) +testgroupconfig_LIBS += qsrv TESTS += testgroupconfig TESTPROD_HOST += testdbf_copy testdbf_copy_SRCS += testdbf_copy -testdbf_copy_LIBS += qsrv pvAccess pvData -testdbf_copy_LIBS += $(EPICS_BASE_IOC_LIBS) +testdbf_copy_LIBS += qsrv TESTS += testdbf_copy endif From d5671b0ef1a58931da7cc26221c4cfbf22b434cc Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 7 Aug 2024 11:09:20 -0500 Subject: [PATCH 3/6] Clean up some picky clang-15 warnings The namespace changes resolve these messages: warning: non-type template argument referring to function 'whatever' with internal linkage is a C++11 extension [-Wc++11-extensions] --- p2pApp/gwmain.cpp | 8 +++++--- pdbApp/qsrv.cpp | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/p2pApp/gwmain.cpp b/p2pApp/gwmain.cpp index 3bbda96..f240b80 100644 --- a/p2pApp/gwmain.cpp +++ b/p2pApp/gwmain.cpp @@ -34,7 +34,7 @@ namespace pva = epics::pvAccess; extern int p2pReadOnly; -namespace { +namespace p2pgw { pvd::StructureConstPtr schema(pvd::getFieldCreate()->createFieldBuilder() ->add("version", pvd::pvUInt) @@ -235,10 +235,12 @@ void gwcr(int lvl, const char *client, const char *channel) } } -}// namespace +} // namespace p2pgw + int main(int argc, char *argv[]) { + using namespace p2pgw; try { pva::refTrackRegistrar(); @@ -280,7 +282,7 @@ int main(int argc, char *argv[]) lvl = pva::logLevelDebug; else if(arg.debug==3) lvl = pva::logLevelTrace; - else if(arg.debug>=4) + else // arg.debug>=4 lvl = pva::logLevelAll; SET_LOG_LEVEL(lvl); diff --git a/pdbApp/qsrv.cpp b/pdbApp/qsrv.cpp index cabc8c6..3bd60e7 100644 --- a/pdbApp/qsrv.cpp +++ b/pdbApp/qsrv.cpp @@ -82,7 +82,7 @@ long dbLoadGroup(const char* fname) } } -namespace { +namespace qsrv { void dbLoadGroupWrap(const char* fname) { @@ -124,16 +124,18 @@ void dbgl(int lvl, const char *pattern) } } -void QSRVRegistrar() +} // namespace qsrv + +static void QSRVRegistrar() { + using namespace qsrv; + QSRVRegistrar_counters(); pva::ChannelProviderRegistry::servers()->addSingleton("QSRV"); epics::iocshRegister("dbgl", "level", "pattern"); epics::iocshRegister("dbLoadGroup", "jsonfile"); } -} // namespace - unsigned qsrvVersion(void) { return QSRV_VERSION_INT; From 19475e95e00194cb7f023e0a6a6d62496b888801 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 7 Aug 2024 12:10:16 -0500 Subject: [PATCH 4/6] Disable deprecated compiler warnings on GCC & Clang Destroyable is deprecated but, here we're just testing it. --- testApp/check_consist.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/testApp/check_consist.cpp b/testApp/check_consist.cpp index 28af92f..2036e7e 100644 --- a/testApp/check_consist.cpp +++ b/testApp/check_consist.cpp @@ -7,11 +7,14 @@ namespace pvd = epics::pvData; namespace pva = epics::pvAccess; namespace { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" struct Destroyer { pvd::Destroyable::shared_pointer D; Destroyer(const pvd::Destroyable::shared_pointer& d) : D(d) {} ~Destroyer() { if(D) D->destroy(); } }; +#pragma GCC diagnostic pop struct Releaser { pva::Monitor::shared_pointer& mon; From c8598edb5266bcc44b228b9dfd4568d8bcc41ebf Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Sat, 10 Aug 2024 14:25:46 -0500 Subject: [PATCH 5/6] Update Appveyor and GHA CI build configurations --- .appveyor.yml | 29 +++++++------- .github/workflows/ci-scripts-build.yml | 54 +++++++++++++------------- 2 files changed, 41 insertions(+), 42 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2b42845..be10aed 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -3,17 +3,14 @@ # This is YAML - indentation levels are crucial -cache: - - C:\Users\appveyor\.tools - #---------------------------------# -# additional packages # +# 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. -install: -# for the sequencer - - cinst re2c - - cmd: git submodule update --init --recursive +cache: + - C:\Users\appveyor\.tools #---------------------------------# # repository cloning # @@ -23,14 +20,11 @@ init: # Set autocrlf to make batch files work - git config --global core.autocrlf true -clone_depth: 50 +clone_depth: 5 -# Skipping commits affecting only specific files -skip_commits: - files: - - 'documentation/*' - - '**/*.md' - - '.github/**' +#---------------------------------# +# build matrix configuration # +#---------------------------------# # Build Configurations: dll/static, regular/debug configuration: @@ -43,6 +37,7 @@ configuration: environment: # common / default variables for all jobs SETUP_PATH: .ci-local:.ci + EPICS_TEST_IMPRECISE_TIMING: YES matrix: - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 @@ -66,8 +61,10 @@ platform: # building & testing # #---------------------------------# -build_script: +install: - cmd: python .ci/cue.py prepare + +build_script: - cmd: python .ci/cue.py build test_script: diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml index 49d0797..6ffded3 100644 --- a/.github/workflows/ci-scripts-build.yml +++ b/.github/workflows/ci-scripts-build.yml @@ -27,8 +27,7 @@ jobs: BASE: ${{ matrix.base }} CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} - WINE: ${{ matrix.wine }} - RTEMS: ${{ matrix.rtems }} + CI_CROSS_TARGETS: ${{ matrix.cross }} EXTRA: ${{ matrix.extra }} TEST: ${{ matrix.test }} strategy: @@ -40,21 +39,21 @@ jobs: cmp: gcc configuration: default base: "7.0" - wine: "64" + cross: "windows-x64-mingw" name: "7.0 Ub-20 gcc-9 + MinGW" - os: ubuntu-20.04 cmp: gcc configuration: static base: "7.0" - wine: "64" + cross: "windows-x64-mingw" name: "7.0 Ub-20 gcc-9 + MinGW, static" - os: ubuntu-20.04 cmp: gcc configuration: default base: "3.15" - wine: "64" + cross: "windows-x64-mingw" name: "3.15 Ub-20 gcc-9 + MinGW" - os: ubuntu-20.04 @@ -64,6 +63,12 @@ jobs: extra: "CMD_CXXFLAGS=-std=c++11" name: "7.0 Ub-20 gcc-9 C++11, static" + - os: ubuntu-20.04 + cmp: clang + configuration: default + base: "7.0" + name: "7.0 Ub-20 clang-10" + - os: ubuntu-20.04 cmp: clang configuration: default @@ -75,22 +80,16 @@ jobs: cmp: gcc configuration: default base: "7.0" - rtems: "4.10" + cross: "RTEMS-pc386-qemu@4.10" name: "7.0 Ub-20 gcc-9 + RT-4.10" - os: ubuntu-20.04 cmp: gcc configuration: default base: "7.0" - rtems: "4.9" + cross: "RTEMS-pc386-qemu@4.9" name: "7.0 Ub-20 gcc-9 + RT-4.9" - - os: ubuntu-20.04 - cmp: clang - configuration: default - base: "7.0" - name: "7.0 Ub-20 clang-10" - - os: macos-latest cmp: clang configuration: default @@ -113,10 +112,10 @@ jobs: cmp: gcc configuration: static base: "7.0" - name: "7.0 Win2019 mingw, static" + name: "7.0 Win2019 MinGW, static" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: "apt-get install" @@ -131,11 +130,14 @@ jobs: - name: Run main module tests run: python .ci/cue.py test - name: Upload tapfiles Artifact - uses: actions/upload-artifact@v2 + if: ${{ always() }} + uses: actions/upload-artifact@v3 with: name: tapfiles ${{ matrix.name }} path: '**/O.*/*.tap' + if-no-files-found: ignore - name: Collect and show test results + if: ${{ always() }} run: python .ci/cue.py test-results docker: @@ -148,8 +150,6 @@ jobs: BASE: ${{ matrix.base }} CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} - WINE: ${{ matrix.wine }} - RTEMS: ${{ matrix.rtems }} EXTRA: ${{ matrix.extra }} TEST: ${{ matrix.test }} strategy: @@ -157,13 +157,13 @@ jobs: matrix: # Job names also name artifacts, character limitations apply include: - - name: Linux centos 7 - image: centos:7 - cmp: gcc - configuration: default - base: "7.0" + #- name: "CentOS-7" + # image: centos:7 + # cmp: gcc + # configuration: default + # base: "7.0" - - name: Linux fedora latest + - name: Fedora-latest image: fedora:latest cmp: gcc configuration: default @@ -196,7 +196,7 @@ jobs: # people would rather just break all existing scripts... [ -e /usr/bin/python ] || ln -sf /usr/bin/python3 /usr/bin/python python --version - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - name: Prepare and compile dependencies @@ -206,9 +206,11 @@ jobs: - name: Run main module tests run: python .ci/cue.py test - name: Upload tapfiles Artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: tapfiles ${{ matrix.name }} path: '**/O.*/*.tap' + if-no-files-found: ignore - name: Collect and show test results + if: ${{ always() }} run: python .ci/cue.py test-results From f239353191589b1c0e134f6a7577078646004f4a Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Sat, 10 Aug 2024 15:53:56 -0500 Subject: [PATCH 6/6] Appveyor cleanup and triggering rebuild --- .appveyor.yml | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index be10aed..67009c3 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -22,6 +22,13 @@ init: clone_depth: 5 +#---------------------------------# +# additional packages # +#---------------------------------# + +install: + - cmd: git submodule update --init --recursive + #---------------------------------# # build matrix configuration # #---------------------------------# @@ -40,18 +47,18 @@ environment: EPICS_TEST_IMPRECISE_TIMING: YES matrix: - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + - BASE: 3.15 CMP: vs2019 - BASE: 7.0 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + - BASE: 7.0 CMP: gcc - BASE: 7.0 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + - BASE: 7.0 CMP: vs2017 - BASE: 7.0 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + - BASE: 7.0 CMP: vs2019 - BASE: 3.15 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 # Platform: processor architecture platform: @@ -61,10 +68,8 @@ platform: # building & testing # #---------------------------------# -install: - - cmd: python .ci/cue.py prepare - build_script: + - cmd: python .ci/cue.py prepare - cmd: python .ci/cue.py build test_script: @@ -91,10 +96,8 @@ on_finish: #---------------------------------# notifications: - - provider: Email to: - core-talk@aps.anl.gov on_build_success: false - - provider: GitHubPullRequest