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  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Sequencer build errors on Windows
From: Benjamin Franksen <[email protected]>
To: Josh Stein <[email protected]>
Cc: [email protected], [email protected]
Date: Fri, 16 Dec 2011 13:04:25 +0100
On Wednesday, December 07, 2011, Josh Stein wrote:
> Hello Benjamin and community,
>
>    I am attempting to build version 2.1.3 of the sequencer on a windows
> machine. I have the MinGW tools installed along with a windows version
> of re2c. I have also already successfully built EPICS base, the example
> app and an older version of the sequencer (2.0.14) in the past.
>
> When executing the build from the 2.1.3 top level directory, the
> following warnings and errors are shown and the make is stopped:
>
>
>
> ../../../include/pv.h:75:37: warning: inline function 'pvSystem*
> pvSystem::getSystem()' declared as  dllimport: attribute ignored
> [-Wattributes]
> ../../../include/pv.h:77:35: error: function 'pvStat pvSystem::attach()'
> definition is marked dllimport
> ../../../include/pv.h:78:35: error: function 'pvStat pvSystem::flush()'
> definition is marked dllimport

I would like to pose this question to the community, especially the C++
experts.

These are the relevant lines:

class pvSystem {

public:
    epicsShareFunc pvSystem( int debug = 0 );
    epicsShareFunc virtual ~pvSystem();

    epicsShareFunc inline pvSystem *getSystem() { return this; }

    epicsShareFunc virtual pvStat attach() { return pvStatOK; }
    epicsShareFunc virtual pvStat flush() { return pvStatOK; }
...
}

The code in the src/pv subsystem in the sequencer uses 'epicsShareFunc' for
C++ class methods in many places (also in the method implementations). While
it seems it has worked so far, I wonder if epicsShareFunc' is necessary here
or even intended. I looked at some EPICS base header and cpp files and found
'epicsShareFunc' is not used for C++ class methods.

So, can I just remove 'epicsShareFunc' qualifiers on class methods?

At least on my win32-x86 VM this worked fine (build & tests).

Cheers
Ben

________________________________

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.

Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv. Vorsitzende Dr. Beatrix Vierkorn-Rudolph
Geschäftsführer: Prof. Dr. Anke Rita Kaysser-Pyzalla, Dr. Ulrich Breuer

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin

http://www.helmholtz-berlin.de


Replies:
RE: Sequencer build errors on Windows Mark Rivers
RE: Sequencer build errors on Windows Mark Rivers
References:
Sequencer build errors on Windows Josh Stein

Navigate by Date:
Prev: Re: epics base 3.14.12.1 build error on fedora 16 Pavel Masloff
Next: RE: Sequencer build errors on Windows Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Sequencer build errors on Windows Josh Stein
Next: RE: Sequencer build errors on Windows Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·