Closed anjohnson closed 4 years ago
I am already building ADCore for base 7.0.4 and did not need to make any changes to do so.
git grep shows the following files in ADCore contain shareLib.h. It is fewer than you listed.
corvette:~/support/areaDetector/ADCore>git grep shareLib.h
ADApp/ADSrc/CCDMultiTrack.h:#include <shareLib.h>
ADApp/ADSrc/PVAttribute.cpp:#include <shareLib.h>
ADApp/ADSrc/asynNDArrayDriver.cpp:#include <shareLib.h>
ADApp/ADSrc/functAttribute.cpp:#include <shareLib.h>
ADApp/ADSrc/paramAttribute.cpp:#include <shareLib.h>
I don't think this is actually an issue.
Okay, glad to hear that. I did say I was building an older version (a cut-down copy of AreaDetector 3.2) because that's what the our DAQ software still needs to build against.
EPICS 7.0.4 changes the macros that our internal libraries use to mark symbols for import/export, and as a result most core API header files no longer
#include <shareLib.h>
. That means external applications can't rely on the epicsShare* macros to have been defined by upstream APIs, their header files need to include that header themselves if they use those macros.I've just built an old version of ADCore needed for the APS Controls DAQ systems, and had to add the
#include
statements found in the diffs below to get it to build. You might have fixed a few of these already, and there may be other headers that need to do something similar, so this is just to warn you and get you started on what needs doing to support 7.0.4. There are no implications for backwards-compatibility in adding this include, although there's a slight chance that doing so might tickle some hidden decoration issues on Microsoft builds (which I haven't tried doing). Asyn 4-34 built with no problems.Sorry, GitHub won't let me attach these as a .patch file, but since the paths in my version might not match those in this git repo anyway I think this is the easiest way to show my changes: