Skip to content

Commit 20586c3

Browse files
committed
Apply patch to fix EPICS base build in CI
1 parent 9f31fd0 commit 20586c3

File tree

3 files changed

+259
-2
lines changed

3 files changed

+259
-2
lines changed

.github/workflows/code.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,11 @@ jobs:
6161
run: |
6262
wget -nv https://github.com/epics-base/epics-base/archive/${{ matrix.epics }}.tar.gz
6363
tar -zxf ${{ matrix.epics }}.tar.gz
64-
make -sj -C epics-base-${{ matrix.epics }}
65-
echo "EPICS_BASE=`pwd`/epics-base-${{ matrix.epics }}" >> $GITHUB_ENV
64+
cp .github/workflows/epics-base-${{ matrix.epics }}.patch epics-base-${{ matrix.epics }}
65+
cd epics-base-${{ matrix.epics }}
66+
patch -p1 < epics-base-${{ matrix.epics }}.patch
67+
make -sj
68+
echo "EPICS_BASE=`pwd`" >> $GITHUB_ENV
6669
6770
- name: Install Python Dependencies
6871
# Pin pipenv so it works on python2.7
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
diff --git a/src/cas/generic/caServerI.h b/src/cas/generic/caServerI.h
2+
index b45d9373a..e31b210a7 100644
3+
--- a/src/cas/generic/caServerI.h
4+
+++ b/src/cas/generic/caServerI.h
5+
@@ -88,8 +88,8 @@ public:
6+
private:
7+
clientBufMemoryManager clientBufMemMgr;
8+
tsFreeList < casMonitor, 1024 > casMonitorFreeList;
9+
- tsDLList < casStrmClient > clientList;
10+
- tsDLList < casIntfOS > intfList;
11+
+ ::tsDLList < casStrmClient > clientList;
12+
+ ::tsDLList < casIntfOS > intfList;
13+
mutable epicsMutex mutex;
14+
mutable epicsMutex diagnosticCountersMutex;
15+
caServer & adapter;
16+
diff --git a/src/cas/generic/casPVI.cc b/src/cas/generic/casPVI.cc
17+
index 0b02a6cbf..8d2d27096 100644
18+
--- a/src/cas/generic/casPVI.cc
19+
+++ b/src/cas/generic/casPVI.cc
20+
@@ -286,7 +286,7 @@ void casPVI::postEvent ( const casEventMask & select, const gdd & event )
21+
}
22+
23+
caStatus casPVI::installMonitor (
24+
- casMonitor & mon, tsDLList < casMonitor > & monitorList )
25+
+ casMonitor & mon, ::tsDLList < casMonitor > & monitorList )
26+
{
27+
epicsGuard < epicsMutex > guard ( this->mutex );
28+
assert ( this->nMonAttached < UINT_MAX );
29+
@@ -302,7 +302,7 @@ caStatus casPVI::installMonitor (
30+
}
31+
32+
casMonitor * casPVI::removeMonitor (
33+
- tsDLList < casMonitor > & list, ca_uint32_t clientIdIn )
34+
+ ::tsDLList < casMonitor > & list, ca_uint32_t clientIdIn )
35+
{
36+
epicsGuard < epicsMutex > guard ( this->mutex );
37+
casMonitor * pMon = 0;
38+
@@ -359,8 +359,8 @@ void casPVI::installChannel ( chanIntfForPV & chan )
39+
}
40+
41+
void casPVI::removeChannel (
42+
- chanIntfForPV & chan, tsDLList < casMonitor > & src,
43+
- tsDLList < casMonitor > & dest )
44+
+ chanIntfForPV & chan, ::tsDLList < casMonitor > & src,
45+
+ ::tsDLList < casMonitor > & dest )
46+
{
47+
epicsGuard < epicsMutex > guard ( this->mutex );
48+
src.removeAll ( dest );
49+
@@ -374,7 +374,7 @@ void casPVI::removeChannel (
50+
}
51+
}
52+
53+
-void casPVI::clearOutstandingReads ( tsDLList < casAsyncIOI > & ioList )
54+
+void casPVI::clearOutstandingReads ( ::tsDLList < casAsyncIOI > & ioList )
55+
{
56+
epicsGuard < epicsMutex > guard ( this->mutex );
57+
58+
@@ -394,7 +394,7 @@ void casPVI::clearOutstandingReads ( tsDLList < casAsyncIOI > & ioList )
59+
}
60+
}
61+
62+
-void casPVI::destroyAllIO ( tsDLList < casAsyncIOI > & ioList )
63+
+void casPVI::destroyAllIO ( ::tsDLList < casAsyncIOI > & ioList )
64+
{
65+
epicsGuard < epicsMutex > guard ( this->mutex );
66+
while ( casAsyncIOI * pIO = ioList.get() ) {
67+
@@ -406,7 +406,7 @@ void casPVI::destroyAllIO ( tsDLList < casAsyncIOI > & ioList )
68+
}
69+
70+
void casPVI::installIO (
71+
- tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
72+
+ ::tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
73+
{
74+
epicsGuard < epicsMutex > guard ( this->mutex );
75+
ioList.add ( io );
76+
@@ -415,7 +415,7 @@ void casPVI::installIO (
77+
}
78+
79+
void casPVI::uninstallIO (
80+
- tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
81+
+ ::tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
82+
{
83+
{
84+
epicsGuard < epicsMutex > guard ( this->mutex );
85+
diff --git a/src/cas/generic/casPVI.h b/src/cas/generic/casPVI.h
86+
index feea79d23..7ecf588b8 100644
87+
--- a/src/cas/generic/casPVI.h
88+
+++ b/src/cas/generic/casPVI.h
89+
@@ -49,21 +49,21 @@ public:
90+
caStatus attachToServer ( caServerI & cas );
91+
aitIndex nativeCount ();
92+
bool ioIsPending () const;
93+
- void clearOutstandingReads ( tsDLList < class casAsyncIOI > &);
94+
+ void clearOutstandingReads ( ::tsDLList < class casAsyncIOI > &);
95+
void destroyAllIO (
96+
- tsDLList < casAsyncIOI > & );
97+
+ ::tsDLList < casAsyncIOI > & );
98+
void installIO (
99+
- tsDLList < casAsyncIOI > &, casAsyncIOI & );
100+
+ ::tsDLList < casAsyncIOI > &, casAsyncIOI & );
101+
void uninstallIO (
102+
- tsDLList < casAsyncIOI > &, casAsyncIOI & );
103+
+ ::tsDLList < casAsyncIOI > &, casAsyncIOI & );
104+
void installChannel ( chanIntfForPV & chan );
105+
void removeChannel (
106+
- chanIntfForPV & chan, tsDLList < casMonitor > & src,
107+
- tsDLList < casMonitor > & dest );
108+
+ chanIntfForPV & chan, ::tsDLList < casMonitor > & src,
109+
+ ::tsDLList < casMonitor > & dest );
110+
caStatus installMonitor (
111+
- casMonitor & mon, tsDLList < casMonitor > & monitorList );
112+
+ casMonitor & mon, ::tsDLList < casMonitor > & monitorList );
113+
casMonitor * removeMonitor (
114+
- tsDLList < casMonitor > & list, ca_uint32_t clientIdIn );
115+
+ ::tsDLList < casMonitor > & list, ca_uint32_t clientIdIn );
116+
void deleteSignal ();
117+
void postEvent ( const casEventMask & select, const gdd & event );
118+
caServer * getExtServer () const;
119+
@@ -84,7 +84,7 @@ public:
120+
121+
private:
122+
mutable epicsMutex mutex;
123+
- tsDLList < chanIntfForPV > chanList;
124+
+ ::tsDLList < chanIntfForPV > chanList;
125+
gddEnumStringTable enumStrTbl;
126+
caServerI * pCAS;
127+
casPV * pPV;
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
diff --git a/src/ca/legacy/pcas/generic/caServerI.h b/src/ca/legacy/pcas/generic/caServerI.h
2+
index 012233693..bfedf55ae 100644
3+
--- a/src/ca/legacy/pcas/generic/caServerI.h
4+
+++ b/src/ca/legacy/pcas/generic/caServerI.h
5+
@@ -88,8 +88,8 @@ public:
6+
private:
7+
clientBufMemoryManager clientBufMemMgr;
8+
tsFreeList < casMonitor, 1024 > casMonitorFreeList;
9+
- tsDLList < casStrmClient > clientList;
10+
- tsDLList < casIntfOS > intfList;
11+
+ ::tsDLList < casStrmClient > clientList;
12+
+ ::tsDLList < casIntfOS > intfList;
13+
mutable epicsMutex mutex;
14+
mutable epicsMutex diagnosticCountersMutex;
15+
caServer & adapter;
16+
diff --git a/src/ca/legacy/pcas/generic/casPVI.cc b/src/ca/legacy/pcas/generic/casPVI.cc
17+
index 245c51e01..5ae1f522e 100644
18+
--- a/src/ca/legacy/pcas/generic/casPVI.cc
19+
+++ b/src/ca/legacy/pcas/generic/casPVI.cc
20+
@@ -291,7 +291,7 @@ void casPVI::postEvent ( const casEventMask & select, const gdd & event )
21+
}
22+
23+
caStatus casPVI::installMonitor (
24+
- casMonitor & mon, tsDLList < casMonitor > & monitorList )
25+
+ casMonitor & mon, ::tsDLList < casMonitor > & monitorList )
26+
{
27+
epicsGuard < epicsMutex > guard ( this->mutex );
28+
assert ( this->nMonAttached < UINT_MAX );
29+
@@ -307,7 +307,7 @@ caStatus casPVI::installMonitor (
30+
}
31+
32+
casMonitor * casPVI::removeMonitor (
33+
- tsDLList < casMonitor > & list, ca_uint32_t clientIdIn )
34+
+ ::tsDLList < casMonitor > & list, ca_uint32_t clientIdIn )
35+
{
36+
epicsGuard < epicsMutex > guard ( this->mutex );
37+
casMonitor * pMon = 0;
38+
@@ -364,8 +364,8 @@ void casPVI::installChannel ( chanIntfForPV & chan )
39+
}
40+
41+
void casPVI::removeChannel (
42+
- chanIntfForPV & chan, tsDLList < casMonitor > & src,
43+
- tsDLList < casMonitor > & dest )
44+
+ chanIntfForPV & chan, ::tsDLList < casMonitor > & src,
45+
+ ::tsDLList < casMonitor > & dest )
46+
{
47+
epicsGuard < epicsMutex > guard ( this->mutex );
48+
src.removeAll ( dest );
49+
@@ -379,7 +379,7 @@ void casPVI::removeChannel (
50+
}
51+
}
52+
53+
-void casPVI::clearOutstandingReads ( tsDLList < casAsyncIOI > & ioList )
54+
+void casPVI::clearOutstandingReads ( ::tsDLList < casAsyncIOI > & ioList )
55+
{
56+
epicsGuard < epicsMutex > guard ( this->mutex );
57+
58+
@@ -399,7 +399,7 @@ void casPVI::clearOutstandingReads ( tsDLList < casAsyncIOI > & ioList )
59+
}
60+
}
61+
62+
-void casPVI::destroyAllIO ( tsDLList < casAsyncIOI > & ioList )
63+
+void casPVI::destroyAllIO ( ::tsDLList < casAsyncIOI > & ioList )
64+
{
65+
epicsGuard < epicsMutex > guard ( this->mutex );
66+
while ( casAsyncIOI * pIO = ioList.get() ) {
67+
@@ -411,7 +411,7 @@ void casPVI::destroyAllIO ( tsDLList < casAsyncIOI > & ioList )
68+
}
69+
70+
void casPVI::installIO (
71+
- tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
72+
+ ::tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
73+
{
74+
epicsGuard < epicsMutex > guard ( this->mutex );
75+
ioList.add ( io );
76+
@@ -420,7 +420,7 @@ void casPVI::installIO (
77+
}
78+
79+
void casPVI::uninstallIO (
80+
- tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
81+
+ ::tsDLList < casAsyncIOI > & ioList, casAsyncIOI & io )
82+
{
83+
{
84+
epicsGuard < epicsMutex > guard ( this->mutex );
85+
diff --git a/src/ca/legacy/pcas/generic/casPVI.h b/src/ca/legacy/pcas/generic/casPVI.h
86+
index feea79d23..7ecf588b8 100644
87+
--- a/src/ca/legacy/pcas/generic/casPVI.h
88+
+++ b/src/ca/legacy/pcas/generic/casPVI.h
89+
@@ -49,21 +49,21 @@ public:
90+
caStatus attachToServer ( caServerI & cas );
91+
aitIndex nativeCount ();
92+
bool ioIsPending () const;
93+
- void clearOutstandingReads ( tsDLList < class casAsyncIOI > &);
94+
+ void clearOutstandingReads ( ::tsDLList < class casAsyncIOI > &);
95+
void destroyAllIO (
96+
- tsDLList < casAsyncIOI > & );
97+
+ ::tsDLList < casAsyncIOI > & );
98+
void installIO (
99+
- tsDLList < casAsyncIOI > &, casAsyncIOI & );
100+
+ ::tsDLList < casAsyncIOI > &, casAsyncIOI & );
101+
void uninstallIO (
102+
- tsDLList < casAsyncIOI > &, casAsyncIOI & );
103+
+ ::tsDLList < casAsyncIOI > &, casAsyncIOI & );
104+
void installChannel ( chanIntfForPV & chan );
105+
void removeChannel (
106+
- chanIntfForPV & chan, tsDLList < casMonitor > & src,
107+
- tsDLList < casMonitor > & dest );
108+
+ chanIntfForPV & chan, ::tsDLList < casMonitor > & src,
109+
+ ::tsDLList < casMonitor > & dest );
110+
caStatus installMonitor (
111+
- casMonitor & mon, tsDLList < casMonitor > & monitorList );
112+
+ casMonitor & mon, ::tsDLList < casMonitor > & monitorList );
113+
casMonitor * removeMonitor (
114+
- tsDLList < casMonitor > & list, ca_uint32_t clientIdIn );
115+
+ ::tsDLList < casMonitor > & list, ca_uint32_t clientIdIn );
116+
void deleteSignal ();
117+
void postEvent ( const casEventMask & select, const gdd & event );
118+
caServer * getExtServer () const;
119+
@@ -84,7 +84,7 @@ public:
120+
121+
private:
122+
mutable epicsMutex mutex;
123+
- tsDLList < chanIntfForPV > chanList;
124+
+ ::tsDLList < chanIntfForPV > chanList;
125+
gddEnumStringTable enumStrTbl;
126+
caServerI * pCAS;
127+
casPV * pPV;

0 commit comments

Comments
 (0)