o removed -O3 from mingw debug builds (so the issues below are reproduced on mingw)
o gnu compiler for windows doesnt support well dll exporting individual functions from a class in debug builds so I switched to exporting the entire interface class in several places o fixed several places in ca lib where include of epicsTimer.h wasnt properly ifdef'd so that it is imported by ca header files --- these issues were already fixed on cvs main trunk ---
This commit is contained in:
@@ -26,7 +26,7 @@ LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
# Override linking with gcc library from CONFIG.gnuCommon
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
OPT_CFLAGS_NO = -O3 -g
|
||||
OPT_CXXFLAGS_NO = -O3 -g
|
||||
OPT_CFLAGS_NO = -g
|
||||
OPT_CXXFLAGS_NO = -g
|
||||
|
||||
OP_SYS_LDLIBS = -lws2_32
|
||||
|
||||
@@ -360,6 +360,6 @@ void bheFreeStore::release ( void * pCadaver )
|
||||
freeList.release ( pCadaver );
|
||||
}
|
||||
|
||||
epicsShareFunc bheMemoryManager::~bheMemoryManager () {}
|
||||
bheMemoryManager::~bheMemoryManager () {}
|
||||
|
||||
|
||||
|
||||
@@ -45,9 +45,9 @@ class bheMemoryManager;
|
||||
|
||||
// using a pure abstract wrapper class around the free list avoids
|
||||
// Tornado 2.0.1 GNU compiler bugs
|
||||
class bheMemoryManager {
|
||||
class epicsShareClass bheMemoryManager {
|
||||
public:
|
||||
epicsShareFunc virtual ~bheMemoryManager ();
|
||||
virtual ~bheMemoryManager ();
|
||||
virtual void * allocate ( size_t ) = 0;
|
||||
virtual void release ( void * ) = 0;
|
||||
};
|
||||
|
||||
@@ -28,6 +28,18 @@
|
||||
|
||||
#include "epicsTimer.h"
|
||||
|
||||
#ifdef epicsExportSharedSymbols
|
||||
# define repeaterSubscribeTimerh_epicsExportSharedSymbols
|
||||
# undef epicsExportSharedSymbols
|
||||
#endif
|
||||
|
||||
#include "epicsTimer.h"
|
||||
|
||||
#ifdef repeaterSubscribeTimerh_epicsExportSharedSymbols
|
||||
# define epicsExportSharedSymbols
|
||||
# include "shareLib.h"
|
||||
#endif
|
||||
|
||||
class epicsMutex;
|
||||
class cacContextNotify;
|
||||
|
||||
|
||||
@@ -26,8 +26,18 @@
|
||||
#ifndef tcpRecvWatchdogh
|
||||
#define tcpRecvWatchdogh
|
||||
|
||||
#ifdef epicsExportSharedSymbols
|
||||
# define tcpRecvWatchdogh_epicsExportSharedSymbols
|
||||
# undef epicsExportSharedSymbols
|
||||
#endif
|
||||
|
||||
#include "epicsTimer.h"
|
||||
|
||||
#ifdef tcpRecvWatchdogh_epicsExportSharedSymbols
|
||||
# define epicsExportSharedSymbols
|
||||
# include "shareLib.h"
|
||||
#endif
|
||||
|
||||
class tcpiiu;
|
||||
|
||||
class tcpRecvWatchdog : private epicsTimerNotify {
|
||||
|
||||
@@ -26,8 +26,19 @@
|
||||
#ifndef tcpSendWatchdogh
|
||||
#define tcpSendWatchdogh
|
||||
|
||||
|
||||
#ifdef epicsExportSharedSymbols
|
||||
# define tcpSendWatchdogh_epicsExportSharedSymbols
|
||||
# undef epicsExportSharedSymbols
|
||||
#endif
|
||||
|
||||
#include "epicsTimer.h"
|
||||
|
||||
#ifdef tcpSendWatchdogh_epicsExportSharedSymbols
|
||||
# define epicsExportSharedSymbols
|
||||
# include "shareLib.h"
|
||||
#endif
|
||||
|
||||
class tcpSendWatchdog : private epicsTimerNotify {
|
||||
public:
|
||||
tcpSendWatchdog (
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
*/
|
||||
|
||||
/* code using a timer must implement epicsTimerNotify */
|
||||
class epicsTimerNotify {
|
||||
class epicsShareClass epicsTimerNotify {
|
||||
public:
|
||||
enum restart_t { noRestart, restart };
|
||||
class expireStatus {
|
||||
@@ -41,13 +41,13 @@ public:
|
||||
double delay;
|
||||
};
|
||||
|
||||
epicsShareFunc virtual ~epicsTimerNotify () = 0;
|
||||
virtual ~epicsTimerNotify () = 0;
|
||||
/* return "noRestart" or "expireStatus ( restart, 30.0 )" */
|
||||
virtual expireStatus expire ( const epicsTime & currentTime ) = 0;
|
||||
epicsShareFunc virtual void show ( unsigned int level ) const;
|
||||
virtual void show ( unsigned int level ) const;
|
||||
};
|
||||
|
||||
class epicsTimer { /* X aCC 655 */
|
||||
class epicsShareClass epicsTimer { /* X aCC 655 */
|
||||
public:
|
||||
/* calls cancel (see warning below) and then destroys the timer */
|
||||
virtual void destroy () = 0;
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
double getExpireDelay ();
|
||||
virtual void show ( unsigned int level ) const = 0;
|
||||
protected:
|
||||
epicsShareFunc virtual ~epicsTimer () = 0; /* protected => delete() must not be called */
|
||||
virtual ~epicsTimer () = 0; /* protected => delete() must not be called */
|
||||
};
|
||||
|
||||
class epicsTimerQueue { /* X aCC 655 */
|
||||
|
||||
Reference in New Issue
Block a user