----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/697/ -----------------------------------------------------------
(Updated 2011-05-06 14:33:12.634021) Review request for qpid, Andrew Stitcher, Gordon Sim, and Ted Ross. Summary (updated) ------- Define public/private symbols for gcc. This is very close to done but I'm stuck. There is still a problem causing qpidd to crash in the option parsing code where a boost::any_cast returns 0, so I suspect its a multiple-typeinfo issue around qpid::OptionValue (see http://gcc.gnu.org/wiki/Visibility) but I haven't really got my head around it yet. This patch is actually a series of 13 patches. If you'd like to see them individually I can mail the series. Here are the summaries (chronological order) 9165915 Patch for flexible EXTERNs from tross. 612c946 Enable -fvisibility=hidden, libraries export only public symbols 9485caf Add extern declarations for cluster.so 6be3f9e Add EXTERNS in qmf generated code, ask tross to review. 06f8058 Fix EXTERNS for assert_fail. eb6a5fd Added EXTERN on client impl classes needed by cluster::UpdateClient 40ed97e Add EXTERN needed to build tests - exposed AddressParser in messaging lib. - expose Impl objects in qmf lib. c7e894b Add extern on all throwable types. 1ca561b Add a missing #include 1bea2f2 FIXME Used GCC #pgragma to resolve boost test link issues. OK to leave this in place? 453efc8 Fix EXTERN in QmfEngineImportExport.h aff8781 Declare classes in FieldValue.h CLASS_EXTERN as they are used with dynamic_cast. 5f44023 Add _CLASS_EXTERN to every class with _EXTERN members Diffs ----- /trunk/qpid/cpp/configure.ac 1099979 /trunk/qpid/cpp/examples/messaging/OptionParser.h 1099979 /trunk/qpid/cpp/examples/messaging/OptionParser.cpp 1099979 /trunk/qpid/cpp/include/qmf/Agent.h 1099979 /trunk/qpid/cpp/include/qmf/AgentEvent.h 1099979 /trunk/qpid/cpp/include/qmf/AgentSession.h 1099979 /trunk/qpid/cpp/include/qmf/ConsoleEvent.h 1099979 /trunk/qpid/cpp/include/qmf/ConsoleSession.h 1099979 /trunk/qpid/cpp/include/qmf/Data.h 1099979 /trunk/qpid/cpp/include/qmf/DataAddr.h 1099979 /trunk/qpid/cpp/include/qmf/Handle.h 1099979 /trunk/qpid/cpp/include/qmf/ImportExport.h 1099979 /trunk/qpid/cpp/include/qmf/Query.h 1099979 /trunk/qpid/cpp/include/qmf/Schema.h 1099979 /trunk/qpid/cpp/include/qmf/SchemaId.h 1099979 /trunk/qpid/cpp/include/qmf/SchemaMethod.h 1099979 /trunk/qpid/cpp/include/qmf/SchemaProperty.h 1099979 /trunk/qpid/cpp/include/qmf/Subscription.h 1099979 /trunk/qpid/cpp/include/qmf/engine/ConnectionSettings.h 1099979 /trunk/qpid/cpp/include/qmf/engine/QmfEngineImportExport.h 1099979 /trunk/qpid/cpp/include/qmf/exceptions.h 1099979 /trunk/qpid/cpp/include/qpid/Address.h 1099979 /trunk/qpid/cpp/include/qpid/CommonImportExport.h 1099979 /trunk/qpid/cpp/include/qpid/Exception.h 1099979 /trunk/qpid/cpp/include/qpid/ImportExport.h PRE-CREATION /trunk/qpid/cpp/include/qpid/Options.h 1099979 /trunk/qpid/cpp/include/qpid/RangeSet.h 1099979 /trunk/qpid/cpp/include/qpid/SessionId.h 1099979 /trunk/qpid/cpp/include/qpid/Url.h 1099979 /trunk/qpid/cpp/include/qpid/agent/ManagementAgent.h 1099979 /trunk/qpid/cpp/include/qpid/agent/QmfAgentImportExport.h 1099979 /trunk/qpid/cpp/include/qpid/client/ClientImportExport.h 1099979 /trunk/qpid/cpp/include/qpid/client/Completion.h 1099979 /trunk/qpid/cpp/include/qpid/client/Connection.h 1099979 /trunk/qpid/cpp/include/qpid/client/ConnectionSettings.h 1099979 /trunk/qpid/cpp/include/qpid/client/FailoverListener.h 1099979 /trunk/qpid/cpp/include/qpid/client/FailoverManager.h 1099979 /trunk/qpid/cpp/include/qpid/client/Future.h 1099979 /trunk/qpid/cpp/include/qpid/client/FutureResult.h 1099979 /trunk/qpid/cpp/include/qpid/client/Handle.h 1099979 /trunk/qpid/cpp/include/qpid/client/LocalQueue.h 1099979 /trunk/qpid/cpp/include/qpid/client/Message.h 1099979 /trunk/qpid/cpp/include/qpid/client/MessageListener.h 1099979 /trunk/qpid/cpp/include/qpid/client/MessageReplayTracker.h 1099979 /trunk/qpid/cpp/include/qpid/client/QueueOptions.h 1099979 /trunk/qpid/cpp/include/qpid/client/SessionBase_0_10.h 1099979 /trunk/qpid/cpp/include/qpid/client/Subscription.h 1099979 /trunk/qpid/cpp/include/qpid/client/SubscriptionManager.h 1099979 /trunk/qpid/cpp/include/qpid/console/Agent.h 1099979 /trunk/qpid/cpp/include/qpid/console/Broker.h 1099979 /trunk/qpid/cpp/include/qpid/console/ConsoleImportExport.h 1099979 /trunk/qpid/cpp/include/qpid/console/Event.h 1099979 /trunk/qpid/cpp/include/qpid/console/Object.h 1099979 /trunk/qpid/cpp/include/qpid/console/SequenceManager.h 1099979 /trunk/qpid/cpp/include/qpid/console/SessionManager.h 1099979 /trunk/qpid/cpp/include/qpid/framing/Array.h 1099979 /trunk/qpid/cpp/include/qpid/framing/Buffer.h 1099979 /trunk/qpid/cpp/include/qpid/framing/FieldTable.h 1099979 /trunk/qpid/cpp/include/qpid/framing/FieldValue.h 1099979 /trunk/qpid/cpp/include/qpid/framing/List.h 1099979 /trunk/qpid/cpp/include/qpid/framing/ProtocolVersion.h 1099979 /trunk/qpid/cpp/include/qpid/framing/SequenceNumber.h 1099979 /trunk/qpid/cpp/include/qpid/framing/SequenceSet.h 1099979 /trunk/qpid/cpp/include/qpid/framing/StructHelper.h 1099979 /trunk/qpid/cpp/include/qpid/framing/Uuid.h 1099979 /trunk/qpid/cpp/include/qpid/log/Logger.h 1099979 /trunk/qpid/cpp/include/qpid/log/Options.h 1099979 /trunk/qpid/cpp/include/qpid/log/Selector.h 1099979 /trunk/qpid/cpp/include/qpid/log/SinkOptions.h 1099979 /trunk/qpid/cpp/include/qpid/log/Statement.h 1099979 /trunk/qpid/cpp/include/qpid/management/Buffer.h 1099979 /trunk/qpid/cpp/include/qpid/management/ManagementObject.h 1099979 /trunk/qpid/cpp/include/qpid/management/Mutex.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Address.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Connection.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Duration.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/FailoverUpdates.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Handle.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/ImportExport.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Message.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Receiver.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Sender.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/Session.h 1099979 /trunk/qpid/cpp/include/qpid/messaging/exceptions.h 1099979 /trunk/qpid/cpp/include/qpid/sys/IOHandle.h 1099979 /trunk/qpid/cpp/include/qpid/sys/IntegerTypes.h 1099979 /trunk/qpid/cpp/include/qpid/sys/Runnable.h 1099979 /trunk/qpid/cpp/include/qpid/sys/Thread.h 1099979 /trunk/qpid/cpp/include/qpid/sys/Time.h 1099979 /trunk/qpid/cpp/include/qpid/sys/posix/Mutex.h 1099979 /trunk/qpid/cpp/include/qpid/sys/posix/PrivatePosix.h 1099979 /trunk/qpid/cpp/include/qpid/types/Exception.h 1099979 /trunk/qpid/cpp/include/qpid/types/ImportExport.h 1099979 /trunk/qpid/cpp/include/qpid/types/Uuid.h 1099979 /trunk/qpid/cpp/include/qpid/types/Variant.h 1099979 /trunk/qpid/cpp/managementgen/qmfgen/templates/Args.h 1099979 /trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h 1099979 /trunk/qpid/cpp/managementgen/qmfgen/templates/Event.h 1099979 /trunk/qpid/cpp/managementgen/qmfgen/templates/Package.h 1099979 /trunk/qpid/cpp/managementgen/qmfgen/templates/V2Package.h 1099979 /trunk/qpid/cpp/rubygen/0-10/exceptions.rb 1099979 /trunk/qpid/cpp/rubygen/0-10/specification.rb 1099979 /trunk/qpid/cpp/rubygen/MethodBodyDefaultVisitor.rb 1099979 /trunk/qpid/cpp/rubygen/cppgen.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/MethodBodyConstVisitor.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/OperationsInvoker.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/Proxy.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/Session.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/constants.rb 1099979 /trunk/qpid/cpp/rubygen/framing.0-10/structs.rb 1099979 /trunk/qpid/cpp/src/Makefile.am 1099979 /trunk/qpid/cpp/src/qmf.mk 1099979 /trunk/qpid/cpp/src/qmf/QueryImpl.h 1099979 /trunk/qpid/cpp/src/qmf/SchemaImpl.h 1099979 /trunk/qpid/cpp/src/qpid/DataDir.h 1099979 /trunk/qpid/cpp/src/qpid/DisableExceptionLogging.h 1099979 /trunk/qpid/cpp/src/qpid/Modules.h 1099979 /trunk/qpid/cpp/src/qpid/Plugin.h 1099979 /trunk/qpid/cpp/src/qpid/RefCountedBuffer.h 1099979 /trunk/qpid/cpp/src/qpid/SaslFactory.h 1099979 /trunk/qpid/cpp/src/qpid/SessionState.h 1099979 /trunk/qpid/cpp/src/qpid/amqp_0_10/Connection.h 1099979 /trunk/qpid/cpp/src/qpid/amqp_0_10/Exception.h 1099979 /trunk/qpid/cpp/src/qpid/amqp_0_10/Map.h 1099979 /trunk/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.h 1099979 /trunk/qpid/cpp/src/qpid/assert.h 1099979 /trunk/qpid/cpp/src/qpid/assert.cpp 1099979 /trunk/qpid/cpp/src/qpid/broker/Bridge.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Broker.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1099979 /trunk/qpid/cpp/src/qpid/broker/BrokerImportExport.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Connection.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Connection.cpp 1099979 /trunk/qpid/cpp/src/qpid/broker/ConnectionFactory.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Daemon.h 1099979 /trunk/qpid/cpp/src/qpid/broker/DeliverableMessage.h 1099979 /trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.h 1099979 /trunk/qpid/cpp/src/qpid/broker/DirectExchange.h 1099979 /trunk/qpid/cpp/src/qpid/broker/DtxBuffer.h 1099979 /trunk/qpid/cpp/src/qpid/broker/DtxTimeout.h 1099979 /trunk/qpid/cpp/src/qpid/broker/DtxWorkRecord.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Exchange.h 1099979 /trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h 1099979 /trunk/qpid/cpp/src/qpid/broker/ExpiryPolicy.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Fairshare.h 1099979 /trunk/qpid/cpp/src/qpid/broker/FanOutExchange.h 1099979 /trunk/qpid/cpp/src/qpid/broker/HeadersExchange.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Link.h 1099979 /trunk/qpid/cpp/src/qpid/broker/LinkRegistry.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Message.h 1099979 /trunk/qpid/cpp/src/qpid/broker/MessageBuilder.h 1099979 /trunk/qpid/cpp/src/qpid/broker/NullMessageStore.h 1099979 /trunk/qpid/cpp/src/qpid/broker/PersistableMessage.h 1099979 /trunk/qpid/cpp/src/qpid/broker/Queue.h 1099979 /trunk/qpid/cpp/src/qpid/broker/QueueCleaner.h 1099979 /trunk/qpid/cpp/src/qpid/broker/QueueEvents.h 1099979 /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.h 1099979 /trunk/qpid/cpp/src/qpid/broker/QueueListeners.h 1099979 /trunk/qpid/cpp/src/qpid/broker/QueuePolicy.h 1099979 /trunk/qpid/cpp/src/qpid/broker/QueueRegistry.h 1099979 /trunk/qpid/cpp/src/qpid/broker/RecoveredDequeue.h 1099979 /trunk/qpid/cpp/src/qpid/broker/RecoveredEnqueue.h 1099979 /trunk/qpid/cpp/src/qpid/broker/RetryList.h 1099979 /trunk/qpid/cpp/src/qpid/broker/SecureConnection.h 1099979 /trunk/qpid/cpp/src/qpid/broker/SemanticState.h 1099979 /trunk/qpid/cpp/src/qpid/broker/SignalHandler.h 1099979 /trunk/qpid/cpp/src/qpid/broker/TopicExchange.h 1099979 /trunk/qpid/cpp/src/qpid/broker/TxAccept.h 1099979 /trunk/qpid/cpp/src/qpid/broker/TxBuffer.h 1099979 /trunk/qpid/cpp/src/qpid/broker/TxPublish.h 1099979 /trunk/qpid/cpp/src/qpid/client/Bounds.h 1099979 /trunk/qpid/cpp/src/qpid/client/ConnectionImpl.h 1099979 /trunk/qpid/cpp/src/qpid/client/Demux.h 1099979 /trunk/qpid/cpp/src/qpid/client/Dispatcher.h 1099979 /trunk/qpid/cpp/src/qpid/client/SessionImpl.h 1099979 /trunk/qpid/cpp/src/qpid/client/SubscriptionImpl.h 1099979 /trunk/qpid/cpp/src/qpid/cluster/Cpg.h 1099979 /trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp 1099979 /trunk/qpid/cpp/src/qpid/framing/AMQBody.h 1099979 /trunk/qpid/cpp/src/qpid/framing/AMQContentBody.h 1099979 /trunk/qpid/cpp/src/qpid/framing/AMQFrame.h 1099979 /trunk/qpid/cpp/src/qpid/framing/AMQHeaderBody.h 1099979 /trunk/qpid/cpp/src/qpid/framing/AMQHeartbeatBody.h 1099979 /trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h 1099979 /trunk/qpid/cpp/src/qpid/framing/AccumulatedAck.h 1099979 /trunk/qpid/cpp/src/qpid/framing/FrameDecoder.h 1099979 /trunk/qpid/cpp/src/qpid/framing/FrameSet.h 1099979 /trunk/qpid/cpp/src/qpid/framing/ProtocolInitiation.h 1099979 /trunk/qpid/cpp/src/qpid/framing/Proxy.h 1099979 /trunk/qpid/cpp/src/qpid/framing/SendContent.h 1099979 /trunk/qpid/cpp/src/qpid/framing/SequenceNumberSet.h 1099979 /trunk/qpid/cpp/src/qpid/framing/TransferContent.h 1099979 /trunk/qpid/cpp/src/qpid/log/posix/SinkOptions.h 1099979 /trunk/qpid/cpp/src/qpid/log/windows/SinkOptions.h 1099979 /trunk/qpid/cpp/src/qpid/management/ManagementAgent.h 1099979 /trunk/qpid/cpp/src/qpid/messaging/AddressParser.h 1099979 /trunk/qpid/cpp/src/qpid/sys/AggregateOutput.h 1099979 /trunk/qpid/cpp/src/qpid/sys/AsynchIO.h 1099979 /trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.h 1099979 /trunk/qpid/cpp/src/qpid/sys/ClusterSafe.h 1099979 /trunk/qpid/cpp/src/qpid/sys/DispatchHandle.h 1099979 /trunk/qpid/cpp/src/qpid/sys/Dispatcher.h 1099979 /trunk/qpid/cpp/src/qpid/sys/LockFile.h 1099979 /trunk/qpid/cpp/src/qpid/sys/PipeHandle.h 1099979 /trunk/qpid/cpp/src/qpid/sys/PollableCondition.h 1099979 /trunk/qpid/cpp/src/qpid/sys/Poller.h 1099979 /trunk/qpid/cpp/src/qpid/sys/Shlib.h 1099979 /trunk/qpid/cpp/src/qpid/sys/Socket.h 1099979 /trunk/qpid/cpp/src/qpid/sys/SocketAddress.h 1099979 /trunk/qpid/cpp/src/qpid/sys/Timer.h 1099979 /trunk/qpid/cpp/src/qpid/sys/cyrus/CyrusSecurityLayer.h 1099979 /trunk/qpid/cpp/src/qpid/sys/posix/PidFile.h 1099979 /trunk/qpid/cpp/src/qpid/sys/rdma/ImportExport.h PRE-CREATION /trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h 1099979 /trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h 1099979 /trunk/qpid/cpp/src/tests/unit_test.cpp 1099979 Diff: https://reviews.apache.org/r/697/diff Testing ------- Thanks, Alan
