EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
<== Date ==> <== Thread ==>

Subject: struct evSubscrip error compiling caputRecorder with EPICS 7.0.8
From: "J. Lewis Muir via Tech-talk" <tech-talk at aps.anl.gov>
To: EPICS Tech-Talk <tech-talk at aps.anl.gov>
Date: Tue, 19 Dec 2023 17:21:07 -0600
Hello!

When compiling caputRecorder 1-7-5 against EPICS 7.0.8, I get the
following error:

  ../subMLIS.c:57:40: error: incomplete definition of type 'struct evSubscrip'

I created an issue on GitHub for this yesterday:

  https://github.com/epics-modules/caputRecorder/issues/8

Since I didn't hear anything on that issue, I'm posting here.  Is there
a preference in general for posting here first vs. creating an issue on
GitHub?

I found Michael Davidsaver's EPICS commit 3d25756

  https://github.com/epics-base/epics-base/commit/3d25756065fb0bb311321fcf226a1fad0a3e537c

which wraps the "struct evSubscrip" definition in dbChannel.h in an
"#ifdef EPICS_PRIVATE_API".  When I compile, EPICS_PRIVATE_API is not
defined, so there's no "struct evSubscrip" definition, and I think
that's why I'm getting this error.

FYI, I also found caputRecorder issue #4

  https://github.com/epics-modules/caputRecorder/issues/4

which involved a similar problem in the same source code location.

Here's the end of an example terminal session:

----
cc              -DUNIX  -Ddarwin      -O3 -g   -Wall -Werror-implicit-function-declaration     -DUSE_TYPED_RSET   -arch arm64    -fno-common  -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/clang -I../../../include/os/Darwin -I../../../include    -I/tmp/48/opt/epics-7.0.8/include/compiler/clang -I/tmp/48/opt/epics-7.0.8/include/os/Darwin -I/tmp/48/opt/epics-7.0.8/include        -c ../subMLIS.c
../subMLIS.c:57:40: error: incomplete definition of type 'struct evSubscrip'
                pevent = (evSub *)ellNext(&pevent->node);
                                           ~~~~~~^
/tmp/48/opt/epics-7.0.8/include/ellLib.h:100:30: note: expanded from macro 'ellNext'
#define ellNext(PNODE)     ((PNODE)->next)
                             ^~~~~
/tmp/48/opt/epics-7.0.8/include/dbEvent.h:33:8: note: forward declaration of 'struct evSubscrip'
struct evSubscrip;
       ^
1 error generated.
make[4]: *** [subMLIS.o] Error 1
make[3]: *** [install.darwin-aarch64] Error 2
make[2]: *** [src.install] Error 2
make[1]: *** [caputRecorderApp.install] Error 2
make: *** [/tmp/48/opt/synapps-6.2.1/caputRecorder-R1-7-5.install] Error 2
----

Platform:

* Apple Silicon (EPICS_HOST_ARCH=darwin-aarch64)
* macOS Sonoma 14.1.1
* EPICS 7.0.8
* caputRecorder 1-7-5

Thanks!

Lewis

Navigate by Date:
Prev: Re: quadEM-R7-0 ParamValNotDefined Rong Huang via Tech-talk
Next: RE: quadEM-R7-0 ParamValNotDefined Mark Rivers via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
Navigate by Thread:
Prev: Re: quadEM-R7-0 ParamValNotDefined Rong Huang via Tech-talk
Next: asyn ioctestIPServer prints many accept errors after IOC exit? J. Lewis Muir via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
ANJ, 20 Dec 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·