From bdb4430bb6dd9033633c6118c60344531733cc73 Mon Sep 17 00:00:00 2001 From: Matej Sekoranja Date: Wed, 20 Nov 2013 13:40:07 +0100 Subject: [PATCH] Win32 port: fix and success compile and run using GCC -fvisibility=hidden --- configure/CONFIG_SITE | 2 ++ pvDataApp/misc/bitSet.h | 2 +- pvDataApp/misc/byteBuffer.h | 1 + pvDataApp/misc/destroyable.h | 2 +- pvDataApp/misc/epicsException.h | 2 +- pvDataApp/misc/event.h | 2 +- pvDataApp/misc/executor.h | 2 +- pvDataApp/misc/localStaticLock.h | 2 +- pvDataApp/misc/lock.h | 2 +- pvDataApp/misc/messageQueue.h | 2 +- pvDataApp/misc/noDefaultMethods.h | 2 +- pvDataApp/misc/requester.h | 2 +- pvDataApp/misc/serialize.h | 2 +- pvDataApp/misc/serializeHelper.h | 2 +- pvDataApp/misc/status.h | 2 +- pvDataApp/misc/thread.h | 2 +- pvDataApp/misc/timeFunction.h | 2 +- pvDataApp/misc/timer.h | 2 +- pvDataApp/misc/typeCast.h | 26 ++++++++++++++------------ pvDataApp/monitor/monitor.h | 2 +- pvDataApp/property/alarm.h | 2 +- pvDataApp/property/control.h | 2 +- pvDataApp/property/display.h | 2 +- pvDataApp/property/pvAlarm.h | 2 +- pvDataApp/property/pvControl.h | 2 +- pvDataApp/property/pvDisplay.h | 2 +- pvDataApp/property/pvEnumerated.h | 2 +- pvDataApp/property/pvTimeStamp.h | 2 +- pvDataApp/property/timeStamp.h | 2 +- pvDataApp/pv/convert.h | 2 +- pvDataApp/pv/pvData.h | 10 +++++----- pvDataApp/pv/pvIntrospect.h | 2 +- pvDataApp/pv/pvSubArrayCopy.h | 2 +- pvDataApp/pv/standardField.h | 2 +- pvDataApp/pv/standardPVField.h | 2 +- pvDataApp/pvMisc/bitSetUtil.h | 2 +- 36 files changed, 54 insertions(+), 49 deletions(-) diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index 74c6ed7..527daed 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -32,5 +32,7 @@ endif INSTALL_INCLUDE = $(INSTALL_LOCATION)/include/pv USR_INCLUDES += -I $(INSTALL_LOCATION)/include +#USR_CPPFLAGS=-fvisibility=hidden + -include $(TOP)/configure/CONFIG_SITE.local -include $(TOP)/../CONFIG.local diff --git a/pvDataApp/misc/bitSet.h b/pvDataApp/misc/bitSet.h index ac8d694..ae7357c 100644 --- a/pvDataApp/misc/bitSet.h +++ b/pvDataApp/misc/bitSet.h @@ -16,7 +16,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/byteBuffer.h b/pvDataApp/misc/byteBuffer.h index 3b2732b..79696ed 100644 --- a/pvDataApp/misc/byteBuffer.h +++ b/pvDataApp/misc/byteBuffer.h @@ -11,6 +11,7 @@ #define BYTEBUFFER_H #include +#include #include #include diff --git a/pvDataApp/misc/destroyable.h b/pvDataApp/misc/destroyable.h index 6f2979b..6d99c49 100644 --- a/pvDataApp/misc/destroyable.h +++ b/pvDataApp/misc/destroyable.h @@ -12,7 +12,7 @@ #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/epicsException.h b/pvDataApp/misc/epicsException.h index da6bc58..0ff4521 100644 --- a/pvDataApp/misc/epicsException.h +++ b/pvDataApp/misc/epicsException.h @@ -43,7 +43,7 @@ #include #include -#include +#include // Users may redefine this for a large size if desired #ifndef EXCEPT_DEPTH diff --git a/pvDataApp/misc/event.h b/pvDataApp/misc/event.h index 99c1295..8c83097 100644 --- a/pvDataApp/misc/event.h +++ b/pvDataApp/misc/event.h @@ -17,7 +17,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/executor.h b/pvDataApp/misc/executor.h index d84fd4d..65ee07d 100644 --- a/pvDataApp/misc/executor.h +++ b/pvDataApp/misc/executor.h @@ -18,7 +18,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/localStaticLock.h b/pvDataApp/misc/localStaticLock.h index e60492a..6405b25 100644 --- a/pvDataApp/misc/localStaticLock.h +++ b/pvDataApp/misc/localStaticLock.h @@ -12,7 +12,7 @@ #include -#include +#include epicsShareExtern epics::pvData::Mutex& getLocalStaticInitMutex(); diff --git a/pvDataApp/misc/lock.h b/pvDataApp/misc/lock.h index 06f3570..2870b35 100644 --- a/pvDataApp/misc/lock.h +++ b/pvDataApp/misc/lock.h @@ -15,7 +15,7 @@ #include -#include +#include /* This is based on item 14 of * Effective C++, Third Edition, Scott Meyers diff --git a/pvDataApp/misc/messageQueue.h b/pvDataApp/misc/messageQueue.h index 62f92aa..bdec377 100644 --- a/pvDataApp/misc/messageQueue.h +++ b/pvDataApp/misc/messageQueue.h @@ -18,7 +18,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/noDefaultMethods.h b/pvDataApp/misc/noDefaultMethods.h index 146e15d..8303b02 100644 --- a/pvDataApp/misc/noDefaultMethods.h +++ b/pvDataApp/misc/noDefaultMethods.h @@ -10,7 +10,7 @@ #ifndef NO_DEFAULT_METHODS_H #define NO_DEFAULT_METHODS_H -#include +#include namespace epics { namespace pvData { /* This is based on Item 6 of diff --git a/pvDataApp/misc/requester.h b/pvDataApp/misc/requester.h index bd15640..a7ddc40 100644 --- a/pvDataApp/misc/requester.h +++ b/pvDataApp/misc/requester.h @@ -14,7 +14,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/serialize.h b/pvDataApp/misc/serialize.h index c8cce2e..0965e13 100644 --- a/pvDataApp/misc/serialize.h +++ b/pvDataApp/misc/serialize.h @@ -13,7 +13,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/serializeHelper.h b/pvDataApp/misc/serializeHelper.h index b033250..2f68b3b 100644 --- a/pvDataApp/misc/serializeHelper.h +++ b/pvDataApp/misc/serializeHelper.h @@ -18,7 +18,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/status.h b/pvDataApp/misc/status.h index 8e3bfaf..852aa6e 100644 --- a/pvDataApp/misc/status.h +++ b/pvDataApp/misc/status.h @@ -14,7 +14,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/thread.h b/pvDataApp/misc/thread.h index fa15a06..ff0bacc 100644 --- a/pvDataApp/misc/thread.h +++ b/pvDataApp/misc/thread.h @@ -17,7 +17,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/timeFunction.h b/pvDataApp/misc/timeFunction.h index a797142..ca831b7 100644 --- a/pvDataApp/misc/timeFunction.h +++ b/pvDataApp/misc/timeFunction.h @@ -12,7 +12,7 @@ #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/timer.h b/pvDataApp/misc/timer.h index 25f486a..072db74 100644 --- a/pvDataApp/misc/timer.h +++ b/pvDataApp/misc/timer.h @@ -23,7 +23,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/misc/typeCast.h b/pvDataApp/misc/typeCast.h index 7b1efb3..1365576 100644 --- a/pvDataApp/misc/typeCast.h +++ b/pvDataApp/misc/typeCast.h @@ -16,6 +16,8 @@ #include #include +#include + namespace epics { namespace pvData { typedef std::string String; @@ -23,17 +25,17 @@ typedef std::string String; namespace detail { // parseToPOD wraps the epicsParse*() functions in one name // and throws exceptions - void parseToPOD(const std::string&, boolean *out); - void parseToPOD(const std::string&, int8 *out); - void parseToPOD(const std::string&, uint8 *out); - void parseToPOD(const std::string&, int16_t *out); - void parseToPOD(const std::string&, uint16_t *out); - void parseToPOD(const std::string&, int32_t *out); - void parseToPOD(const std::string&, uint32_t *out); - void parseToPOD(const std::string&, int64_t *out); - void parseToPOD(const std::string&, uint64_t *out); - void parseToPOD(const std::string&, float *out); - void parseToPOD(const std::string&, double *out); + epicsShareExtern void parseToPOD(const std::string&, boolean *out); + epicsShareExtern void parseToPOD(const std::string&, int8 *out); + epicsShareExtern void parseToPOD(const std::string&, uint8 *out); + epicsShareExtern void parseToPOD(const std::string&, int16_t *out); + epicsShareExtern void parseToPOD(const std::string&, uint16_t *out); + epicsShareExtern void parseToPOD(const std::string&, int32_t *out); + epicsShareExtern void parseToPOD(const std::string&, uint32_t *out); + epicsShareExtern void parseToPOD(const std::string&, int64_t *out); + epicsShareExtern void parseToPOD(const std::string&, uint64_t *out); + epicsShareExtern void parseToPOD(const std::string&, float *out); + epicsShareExtern void parseToPOD(const std::string&, double *out); /* want to pass POD types by value, * and String by const reference @@ -171,7 +173,7 @@ static FORCE_INLINE TO castUnsafe(const FROM& from) return detail::cast_helper::op(from); } -void castUnsafeV(size_t count, ScalarType to, void *dest, ScalarType from, const void *src); +epicsShareExtern void castUnsafeV(size_t count, ScalarType to, void *dest, ScalarType from, const void *src); //! Cast value to printable type //! A no-op except for int8 and uint8, which are cast to int diff --git a/pvDataApp/monitor/monitor.h b/pvDataApp/monitor/monitor.h index 28be481..bebd214 100644 --- a/pvDataApp/monitor/monitor.h +++ b/pvDataApp/monitor/monitor.h @@ -16,7 +16,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/alarm.h b/pvDataApp/property/alarm.h index 0a9ed0e..1111c0c 100644 --- a/pvDataApp/property/alarm.h +++ b/pvDataApp/property/alarm.h @@ -14,7 +14,7 @@ #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/control.h b/pvDataApp/property/control.h index 2ffdccb..63149ec 100644 --- a/pvDataApp/property/control.h +++ b/pvDataApp/property/control.h @@ -10,7 +10,7 @@ #ifndef CONTROL_H #define CONTROL_H -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/display.h b/pvDataApp/property/display.h index 312803e..a88f453 100644 --- a/pvDataApp/property/display.h +++ b/pvDataApp/property/display.h @@ -15,7 +15,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/pvAlarm.h b/pvDataApp/property/pvAlarm.h index 42641bb..ad8be5c 100644 --- a/pvDataApp/property/pvAlarm.h +++ b/pvDataApp/property/pvAlarm.h @@ -16,7 +16,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/pvControl.h b/pvDataApp/property/pvControl.h index bcb2cc3..b47f72c 100644 --- a/pvDataApp/property/pvControl.h +++ b/pvDataApp/property/pvControl.h @@ -13,7 +13,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/pvDisplay.h b/pvDataApp/property/pvDisplay.h index 2b299c0..bb12329 100644 --- a/pvDataApp/property/pvDisplay.h +++ b/pvDataApp/property/pvDisplay.h @@ -16,7 +16,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/pvEnumerated.h b/pvDataApp/property/pvEnumerated.h index 30d020b..fa2887b 100644 --- a/pvDataApp/property/pvEnumerated.h +++ b/pvDataApp/property/pvEnumerated.h @@ -15,7 +15,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/pvTimeStamp.h b/pvDataApp/property/pvTimeStamp.h index 500cbe2..1e6641f 100644 --- a/pvDataApp/property/pvTimeStamp.h +++ b/pvDataApp/property/pvTimeStamp.h @@ -17,7 +17,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/property/timeStamp.h b/pvDataApp/property/timeStamp.h index 3c54bc0..ace8479 100644 --- a/pvDataApp/property/timeStamp.h +++ b/pvDataApp/property/timeStamp.h @@ -15,7 +15,7 @@ #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/pv/convert.h b/pvDataApp/pv/convert.h index 45882db..ca91ed6 100644 --- a/pvDataApp/pv/convert.h +++ b/pvDataApp/pv/convert.h @@ -18,7 +18,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/pv/pvData.h b/pvDataApp/pv/pvData.h index 44bed58..4aa8d52 100644 --- a/pvDataApp/pv/pvData.h +++ b/pvDataApp/pv/pvData.h @@ -31,7 +31,7 @@ #include #include -#include +#include #if defined(__vxworks) && !defined(_WRS_VXWORKS_MAJOR) typedef class std::ios std::ios_base; @@ -97,7 +97,7 @@ struct array_at_internal array_at_internal(std::size_t ix, std::ostream& str) : index(ix), stream(str) {} }; -array_at_internal operator<<(std::ostream& str, array_at const& manip); +epicsShareExtern array_at_internal operator<<(std::ostream& str, array_at const& manip); }; @@ -500,7 +500,7 @@ protected: * Class that holds the data for each posssible scalar type. */ template -class PVScalarValue : public PVScalar { +class epicsShareClass PVScalarValue : public PVScalar { public: POINTER_DEFINITIONS(PVScalarValue); typedef T value_type; @@ -1052,7 +1052,7 @@ private: }; -class PVUnion : public PVField +class epicsShareClass PVUnion : public PVField { public: POINTER_DEFINITIONS(PVUnion); @@ -1338,7 +1338,7 @@ namespace detail { } // namespace detail template -class PVValueArray : public detail::PVVectorStorage { +class epicsShareClass PVValueArray : public detail::PVVectorStorage { typedef detail::PVVectorStorage base_t; public: POINTER_DEFINITIONS(PVValueArray); diff --git a/pvDataApp/pv/pvIntrospect.h b/pvDataApp/pv/pvIntrospect.h index b33df78..78aee54 100644 --- a/pvDataApp/pv/pvIntrospect.h +++ b/pvDataApp/pv/pvIntrospect.h @@ -18,7 +18,7 @@ #include #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/pv/pvSubArrayCopy.h b/pvDataApp/pv/pvSubArrayCopy.h index 4bbf107..79110b9 100644 --- a/pvDataApp/pv/pvSubArrayCopy.h +++ b/pvDataApp/pv/pvSubArrayCopy.h @@ -13,7 +13,7 @@ #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/pv/standardField.h b/pvDataApp/pv/standardField.h index 4cc7274..08f7f09 100644 --- a/pvDataApp/pv/standardField.h +++ b/pvDataApp/pv/standardField.h @@ -16,7 +16,7 @@ #include -#include +#include namespace epics { namespace pvData { diff --git a/pvDataApp/pv/standardPVField.h b/pvDataApp/pv/standardPVField.h index ca93465..c3c354b 100644 --- a/pvDataApp/pv/standardPVField.h +++ b/pvDataApp/pv/standardPVField.h @@ -17,7 +17,7 @@ #include #include -#include +#include namespace epics { namespace pvData { /** diff --git a/pvDataApp/pvMisc/bitSetUtil.h b/pvDataApp/pvMisc/bitSetUtil.h index 046a487..3e23ed3 100644 --- a/pvDataApp/pvMisc/bitSetUtil.h +++ b/pvDataApp/pvMisc/bitSetUtil.h @@ -14,7 +14,7 @@ #include #include -#include +#include namespace epics { namespace pvData {