summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-10-25 19:52:08 +0200
committerStephan Bergmann <sbergman@redhat.com>2017-11-26 18:15:55 +0100
commitae16870b2c84c116cde8279a47db106a4fa9d529 (patch)
treee5c1e79c38f967fd5cd69c0e3943bc29fa2f3791 /external
parent5c2f6d9e2efe1015cfbf9d89a88ed940127c0a4f (diff)
Build as C++17 when GCC/Clang supports it
...and the gperf being used no longer emits "register" in C++ code. Unlike Clang with -Wdynamic-exception-spec ignored, at least GCC 7.2 -std=gnu++17 always makes dynamic exception specs hard errors, which would cause errors both when building StaticLibrary_libcmis and when including libcmis/libcmis.hxx in ucb/source/ucp/cmis/. So patch away all dynamic exception specifications from all external/libcmis include files indirectly included via libcmis/libcmis.hxx, and (to silence the remaining dynamic exception specifications in the innards of external/libcmis, which I did not feel like also patching away) build StaticLibrary_libcmis as C++03 if necessary, and wait for upstream libcmis to eventually be ported to C++17. And external/firebird needs to be built with CXXFLAGS_CXX11 (which amounts to C++17 with this patch) since 9206a08ada00e8762c4a634f242bd566028964bb "Upgrade to ICU 60.1", so the relevant dynamic exception specifications had to be patched away from its innards. Change-Id: I3a0c9ec83c7c1d413559459631970f69ab977f31 Reviewed-on: https://gerrit.libreoffice.org/43851 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'external')
-rw-r--r--external/firebird/UnpackedTarball_firebird.mk1
-rw-r--r--external/firebird/c++17.patch301
-rw-r--r--external/libcmis/StaticLibrary_libcmis.mk11
-rw-r--r--external/libcmis/UnpackedTarball_libcmis.mk1
-rw-r--r--external/libcmis/c++17.patch.0412
5 files changed, 726 insertions, 0 deletions
diff --git a/external/firebird/UnpackedTarball_firebird.mk b/external/firebird/UnpackedTarball_firebird.mk
index f0cc5aea01b6..9c03f7c8755f 100644
--- a/external/firebird/UnpackedTarball_firebird.mk
+++ b/external/firebird/UnpackedTarball_firebird.mk
@@ -28,6 +28,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,firebird,\
external/firebird/libc++.patch \
external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 \
external/firebird/0002-Backported-fix-for-CORE-5452-Segfault-when-engine-s-.patch.1 \
+ external/firebird/c++17.patch \
))
ifeq ($(OS),WNT)
diff --git a/external/firebird/c++17.patch b/external/firebird/c++17.patch
new file mode 100644
index 000000000000..f5ac666bad16
--- /dev/null
+++ b/external/firebird/c++17.patch
@@ -0,0 +1,301 @@
+--- src/common/DynamicStrings.cpp
++++ src/common/DynamicStrings.cpp
+@@ -37,7 +37,7 @@
+
+ namespace Firebird {
+
+-unsigned makeDynamicStrings(unsigned length, ISC_STATUS* const dst, const ISC_STATUS* const src) throw(BadAlloc)
++unsigned makeDynamicStrings(unsigned length, ISC_STATUS* const dst, const ISC_STATUS* const src)
+ {
+ const ISC_STATUS* end = &src[length];
+
+--- src/common/DynamicStrings.h
++++ src/common/DynamicStrings.h
+@@ -34,7 +34,7 @@
+
+ namespace Firebird {
+
+-unsigned makeDynamicStrings(unsigned len, ISC_STATUS* const dst, const ISC_STATUS* const src) throw(BadAlloc);
++unsigned makeDynamicStrings(unsigned len, ISC_STATUS* const dst, const ISC_STATUS* const src);
+ char* findDynamicStrings(unsigned len, ISC_STATUS* ptr) throw();
+
+ } // namespace Firebird
+--- src/common/StatusArg.cpp
++++ src/common/StatusArg.cpp
+@@ -53,7 +53,7 @@
+
+ namespace Arg {
+
+-Base::Base(ISC_STATUS k, ISC_STATUS c) throw(Firebird::BadAlloc) :
++Base::Base(ISC_STATUS k, ISC_STATUS c) :
+ implementation(FB_NEW_POOL(*getDefaultMemoryPool()) ImplBase(k, c))
+ {
+ }
+@@ -94,28 +94,28 @@
+ assign(ex);
+ }
+
+-StatusVector::StatusVector(ISC_STATUS k, ISC_STATUS c) throw(Firebird::BadAlloc) :
++StatusVector::StatusVector(ISC_STATUS k, ISC_STATUS c) :
+ Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(k, c))
+ {
+ operator<<(*(static_cast<Base*>(this)));
+ }
+
+-StatusVector::StatusVector(const ISC_STATUS* s) throw(Firebird::BadAlloc) :
++StatusVector::StatusVector(const ISC_STATUS* s) :
+ Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(s))
+ {
+ }
+
+-StatusVector::StatusVector(const IStatus* s) throw(Firebird::BadAlloc) :
++StatusVector::StatusVector(const IStatus* s) :
+ Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(s))
+ {
+ }
+
+-StatusVector::StatusVector(const Exception& ex) throw(Firebird::BadAlloc) :
++StatusVector::StatusVector(const Exception& ex) :
+ Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(ex))
+ {
+ }
+
+-StatusVector::StatusVector() throw(Firebird::BadAlloc) :
++StatusVector::StatusVector() :
+ Base(FB_NEW_POOL(*getDefaultMemoryPool()) ImplStatusVector(0, 0))
+ {
+ }
+--- src/common/StatusArg.h
++++ src/common/StatusArg.h
+@@ -86,7 +86,7 @@
+ virtual ~ImplBase() { }
+ };
+
+- Base(ISC_STATUS k, ISC_STATUS c) throw(Firebird::BadAlloc);
++ Base(ISC_STATUS k, ISC_STATUS c);
+ explicit Base(ImplBase* i) throw() : implementation(i) { }
+ ~Base() throw() { delete implementation; }
+
+@@ -142,13 +142,13 @@
+ explicit ImplStatusVector(const Exception& ex) throw();
+ };
+
+- StatusVector(ISC_STATUS k, ISC_STATUS v) throw(Firebird::BadAlloc);
++ StatusVector(ISC_STATUS k, ISC_STATUS v);
+
+ public:
+- explicit StatusVector(const ISC_STATUS* s) throw(Firebird::BadAlloc);
+- explicit StatusVector(const IStatus* s) throw(Firebird::BadAlloc);
+- explicit StatusVector(const Exception& ex) throw(Firebird::BadAlloc);
+- StatusVector() throw(Firebird::BadAlloc);
++ explicit StatusVector(const ISC_STATUS* s);
++ explicit StatusVector(const IStatus* s);
++ explicit StatusVector(const Exception& ex);
++ StatusVector();
+ ~StatusVector() { }
+
+ const ISC_STATUS* value() const throw() { return implementation->value(); }
+--- src/common/classes/alloc.cpp
++++ src/common/classes/alloc.cpp
+@@ -1431,7 +1431,7 @@
+
+ ~FreeObjects();
+
+- FreeObjPtr allocateBlock(MemPool* pool, size_t from, size_t& size) throw (OOM_EXCEPTION)
++ FreeObjPtr allocateBlock(MemPool* pool, size_t from, size_t& size)
+ {
+ size_t full_size = size + (from ? 0 : ListBuilder::MEM_OVERHEAD);
+ if (full_size > Limits::TOP_LIMIT)
+@@ -1498,7 +1498,7 @@
+ ListBuilder listBuilder;
+ Extent* currentExtent;
+
+- MemBlock* newBlock(MemPool* pool, unsigned slot) throw (OOM_EXCEPTION);
++ MemBlock* newBlock(MemPool* pool, unsigned slot);
+ };
+
+
+@@ -1538,26 +1538,26 @@
+ AtomicCounter used_memory, mapped_memory;
+
+ private:
+- MemBlock* alloc(size_t from, size_t& length, bool flagRedirect) throw (OOM_EXCEPTION);
++ MemBlock* alloc(size_t from, size_t& length, bool flagRedirect);
+ void releaseBlock(MemBlock *block) throw ();
+
+ public:
+- void* allocate(size_t size ALLOC_PARAMS) throw (OOM_EXCEPTION);
+- MemBlock* allocate2(size_t from, size_t& size ALLOC_PARAMS) throw (OOM_EXCEPTION);
++ void* allocate(size_t size ALLOC_PARAMS);
++ MemBlock* allocate2(size_t from, size_t& size ALLOC_PARAMS);
+
+ private:
+- virtual void memoryIsExhausted(void) throw (OOM_EXCEPTION);
+- void* allocRaw(size_t length) throw (OOM_EXCEPTION);
++ virtual void memoryIsExhausted(void);
++ void* allocRaw(size_t length);
+ static void release(void* block, bool flagDecr) throw ();
+ static void releaseRaw(bool destroying, void *block, size_t size, bool use_cache = true) throw ();
+- void* getExtent(size_t from, size_t& to) throw (OOM_EXCEPTION);
++ void* getExtent(size_t from, size_t& to);
+
+ public:
+ static void releaseExtent(bool destroying, void *block, size_t size, MemPool* pool) throw ();
+
+ // pass desired size, return actual extent size
+ template <class Extent>
+- void newExtent(size_t& size, Extent** linkedList) throw (OOM_EXCEPTION);
++ void newExtent(size_t& size, Extent** linkedList);
+
+ private:
+ #ifdef USE_VALGRIND
+@@ -1667,7 +1667,7 @@
+
+
+ template <class ListBuilder, class Limits>
+-MemBlock* FreeObjects<ListBuilder, Limits>::newBlock(MemPool* pool, unsigned slot) throw (OOM_EXCEPTION)
++MemBlock* FreeObjects<ListBuilder, Limits>::newBlock(MemPool* pool, unsigned slot)
+ {
+ size_t size = Limits::getSize(slot);
+
+@@ -1902,7 +1902,7 @@
+ }
+
+ template <class Extent>
+-void MemPool::newExtent(size_t& size, Extent** linkedList) throw(OOM_EXCEPTION)
++void MemPool::newExtent(size_t& size, Extent** linkedList)
+ {
+ // No large enough block found. We need to extend the pool
+ void* memory = NULL;
+@@ -1967,7 +1967,7 @@
+ pool->setStatsGroup(newStats);
+ }
+
+-MemBlock* MemPool::alloc(size_t from, size_t& length, bool flagRedirect) throw (OOM_EXCEPTION)
++MemBlock* MemPool::alloc(size_t from, size_t& length, bool flagRedirect)
+ {
+ MutexEnsureUnlock guard(mutex, "MemPool::alloc");
+ guard.enter();
+@@ -2026,7 +2026,7 @@
+ #ifdef DEBUG_GDS_ALLOC
+ , const char* fileName, int line
+ #endif
+-) throw (OOM_EXCEPTION)
++)
+ {
+ size_t length = from ? size : ROUNDUP(size + VALGRIND_REDZONE, roundingSize) + GUARD_BYTES;
+ MemBlock* memory = alloc(from, length, true);
+@@ -2055,7 +2055,7 @@
+ }
+
+
+-void* MemPool::allocate(size_t size ALLOC_PARAMS) throw (OOM_EXCEPTION)
++void* MemPool::allocate(size_t size ALLOC_PARAMS)
+ {
+ MemBlock* memory = allocate2(0, size ALLOC_PASS_ARGS);
+
+@@ -2180,12 +2180,12 @@
+ releaseRaw(pool_destroying, hunk, hunk->length, false);
+ }
+
+-void MemPool::memoryIsExhausted(void) throw (OOM_EXCEPTION)
++void MemPool::memoryIsExhausted(void)
+ {
+ Firebird::BadAlloc::raise();
+ }
+
+-void* MemPool::allocRaw(size_t size) throw (OOM_EXCEPTION)
++void* MemPool::allocRaw(size_t size)
+ {
+ #ifndef USE_VALGRIND
+ if (size == DEFAULT_ALLOCATION)
+@@ -2245,7 +2245,7 @@
+ }
+
+
+-void* MemPool::getExtent(size_t from, size_t& to) throw(OOM_EXCEPTION) // pass desired minimum size, return actual extent size
++void* MemPool::getExtent(size_t from, size_t& to) // pass desired minimum size, return actual extent size
+ {
+ MemBlock* extent = allocate2(from, to ALLOC_ARGS);
+ return &extent->body;
+@@ -2348,7 +2348,7 @@
+ deallocate(block);
+ }
+
+-void* MemoryPool::calloc(size_t size ALLOC_PARAMS) throw (OOM_EXCEPTION)
++void* MemoryPool::calloc(size_t size ALLOC_PARAMS)
+ {
+ void* block = allocate(size ALLOC_PASS_ARGS);
+ memset(block, 0, size);
+@@ -2489,7 +2489,7 @@
+ MemPool::globalFree(block);
+ }
+
+-void* MemoryPool::allocate(size_t size ALLOC_PARAMS) throw (OOM_EXCEPTION)
++void* MemoryPool::allocate(size_t size ALLOC_PARAMS)
+ {
+ return pool->allocate(size ALLOC_PASS_ARGS);
+ }
+@@ -2547,11 +2547,11 @@
+ // in a case when we actually need "new" only with file/line information
+ // this version should be also present as a pair for "delete".
+ #ifdef DEBUG_GDS_ALLOC
+-void* operator new(size_t s) throw (OOM_EXCEPTION)
++void* operator new(size_t s)
+ {
+ return MemoryPool::globalAlloc(s ALLOC_ARGS);
+ }
+-void* operator new[](size_t s) throw (OOM_EXCEPTION)
++void* operator new[](size_t s)
+ {
+ return MemoryPool::globalAlloc(s ALLOC_ARGS);
+ }
+--- src/common/classes/alloc.h
++++ src/common/classes/alloc.h
+@@ -186,18 +186,18 @@
+ #define ALLOC_PASS_ARGS
+ #endif // DEBUG_GDS_ALLOC
+
+- void* calloc(size_t size ALLOC_PARAMS) throw (OOM_EXCEPTION);
++ void* calloc(size_t size ALLOC_PARAMS);
+
+ #ifdef LIBC_CALLS_NEW
+ static void* globalAlloc(size_t s ALLOC_PARAMS) throw (OOM_EXCEPTION);
+ #else
+- static void* globalAlloc(size_t s ALLOC_PARAMS) throw (OOM_EXCEPTION)
++ static void* globalAlloc(size_t s ALLOC_PARAMS)
+ {
+ return defaultMemoryManager->allocate(s ALLOC_PASS_ARGS);
+ }
+ #endif // LIBC_CALLS_NEW
+
+- void* allocate(size_t size ALLOC_PARAMS) throw (OOM_EXCEPTION);
++ void* allocate(size_t size ALLOC_PARAMS);
+
+ static void globalFree(void* mem) throw ();
+ void deallocate(void* mem) throw ();
+@@ -295,20 +295,20 @@
+
+ // operators new and delete
+
+-inline void* operator new(size_t s ALLOC_PARAMS) throw (OOM_EXCEPTION)
++inline void* operator new(size_t s ALLOC_PARAMS)
+ {
+ return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
+ }
+-inline void* operator new[](size_t s ALLOC_PARAMS) throw (OOM_EXCEPTION)
++inline void* operator new[](size_t s ALLOC_PARAMS)
+ {
+ return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
+ }
+
+-inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) throw (OOM_EXCEPTION)
++inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS)
+ {
+ return pool.allocate(s ALLOC_PASS_ARGS);
+ }
+-inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) throw (OOM_EXCEPTION)
++inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS)
+ {
+ return pool.allocate(s ALLOC_PASS_ARGS);
+ }
diff --git a/external/libcmis/StaticLibrary_libcmis.mk b/external/libcmis/StaticLibrary_libcmis.mk
index b7e662465479..b3940b7a749a 100644
--- a/external/libcmis/StaticLibrary_libcmis.mk
+++ b/external/libcmis/StaticLibrary_libcmis.mk
@@ -23,6 +23,17 @@ $(eval $(call gb_StaticLibrary_add_cxxflags,libcmis,\
))
endif
+# Build as C++03 if necessary to avoid GCC C++17 "error: ISO C++1z does not
+# allow dynamic exception specifications", until upstream libcmis is ported to
+# C++17:
+ifeq ($(COM)-$(COM_IS_CLANG),GCC-)
+$(eval $(call gb_StaticLibrary_add_cxxflags,libcmis, \
+ $(if $(filter -std=gnu++17 -std=gnu++1z -std=c++17 -std=c++1z, \
+ $(CXXFLAGS_CXX11)), \
+ $(gb_CXX03FLAGS)) \
+))
+endif
+
$(eval $(call gb_StaticLibrary_set_include,libcmis, \
-I$(call gb_UnpackedTarball_get_dir,libcmis/src/libcmis) \
$$(INCLUDE) \
diff --git a/external/libcmis/UnpackedTarball_libcmis.mk b/external/libcmis/UnpackedTarball_libcmis.mk
index 3730888bf6b5..8ce0b03d10c4 100644
--- a/external/libcmis/UnpackedTarball_libcmis.mk
+++ b/external/libcmis/UnpackedTarball_libcmis.mk
@@ -20,6 +20,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libcmis, \
external/libcmis/libcmis-fix-google-drive-2.patch \
external/libcmis/libcmis-sharepoint-repository-root.patch \
external/libcmis/libcmis-fix-error-handling.patch \
+ external/libcmis/c++17.patch.0 \
))
ifeq ($(OS),WNT)
diff --git a/external/libcmis/c++17.patch.0 b/external/libcmis/c++17.patch.0
new file mode 100644
index 000000000000..e2e90f581610
--- /dev/null
+++ b/external/libcmis/c++17.patch.0
@@ -0,0 +1,412 @@
+--- src/libcmis/allowable-actions.cxx
++++ src/libcmis/allowable-actions.cxx
+@@ -62,7 +62,7 @@
+ }
+ }
+
+- ObjectAction::Type ObjectAction::parseType( string type ) throw ( Exception )
++ ObjectAction::Type ObjectAction::parseType( string type )
+ {
+ Type value = DeleteObject;
+ if ( type == "canDeleteObject" )
+--- src/libcmis/allowable-actions.hxx
++++ src/libcmis/allowable-actions.hxx
+@@ -92,7 +92,7 @@
+ /** Parses the permission name into one of the enum values or throws
+ an exception for invalid input strings.
+ */
+- static Type parseType( std::string type ) throw ( Exception );
++ static Type parseType( std::string type );
+
+ };
+
+--- src/libcmis/document.hxx
++++ src/libcmis/document.hxx
+@@ -56,7 +56,7 @@
+
+ @return the parents folder if any.
+ */
+- virtual std::vector< boost::shared_ptr< Folder > > getParents( ) throw ( Exception ) = 0;
++ virtual std::vector< boost::shared_ptr< Folder > > getParents( ) = 0;
+
+ /** Get the content stream without using a temporary file.
+
+@@ -74,7 +74,7 @@
+ guaranteed.
+ */
+ virtual boost::shared_ptr< std::istream > getContentStream( std::string streamId = std::string( ) )
+- throw ( Exception ) = 0;
++ = 0;
+
+ /** Set or replace the content stream of the document.
+
+@@ -88,7 +88,7 @@
+ capability.
+ */
+ virtual void setContentStream( boost::shared_ptr< std::ostream > os, std::string contentType,
+- std::string filename, bool overwrite = true ) throw ( Exception ) = 0;
++ std::string filename, bool overwrite = true ) = 0;
+
+ /** Get the content mime type.
+ */
+@@ -107,12 +107,12 @@
+
+ \return the Private Working Copy document
+ */
+- virtual boost::shared_ptr< Document > checkOut( ) throw ( Exception ) = 0;
++ virtual boost::shared_ptr< Document > checkOut( ) = 0;
+
+ /** Cancels the checkout if the document is a private working copy, or
+ throws an exception.
+ */
+- virtual void cancelCheckout( ) throw ( Exception ) = 0;
++ virtual void cancelCheckout( ) = 0;
+
+ /** Check in the private working copy and create a new version or throw
+ an exception.
+@@ -131,9 +131,9 @@
+ virtual boost::shared_ptr< Document > checkIn( bool isMajor, std::string comment,
+ const std::map< std::string, PropertyPtr >& properties,
+ boost::shared_ptr< std::ostream > stream,
+- std::string contentType, std::string fileName ) throw ( Exception ) = 0;
++ std::string contentType, std::string fileName ) = 0;
+
+- virtual std::vector< boost::shared_ptr< Document > > getAllVersions( ) throw ( Exception ) = 0;
++ virtual std::vector< boost::shared_ptr< Document > > getAllVersions( ) = 0;
+
+ // virtual methods form Object
+ virtual std::vector< std::string > getPaths( );
+--- src/libcmis/folder.cxx
++++ src/libcmis/folder.cxx
+@@ -40,7 +40,7 @@
+ return paths;
+ }
+
+- libcmis::FolderPtr Folder::getFolderParent( ) throw ( libcmis::Exception )
++ libcmis::FolderPtr Folder::getFolderParent( )
+ {
+ if ( getAllowableActions( ).get() && !getAllowableActions()->isAllowed( libcmis::ObjectAction::GetFolderParent ) )
+ throw libcmis::Exception( string( "GetFolderParent not allowed on node " ) + getId() );
+--- src/libcmis/folder.hxx
++++ src/libcmis/folder.hxx
+@@ -59,20 +59,20 @@
+
+ virtual std::vector< std::string > getPaths( );
+
+- virtual ::boost::shared_ptr< Folder > getFolderParent( ) throw ( Exception );
+- virtual std::vector< ObjectPtr > getChildren( ) throw ( Exception ) = 0;
++ virtual ::boost::shared_ptr< Folder > getFolderParent( );
++ virtual std::vector< ObjectPtr > getChildren( ) = 0;
+ virtual std::string getParentId( );
+ virtual std::string getPath( );
+
+ virtual bool isRootFolder( );
+
+ virtual ::boost::shared_ptr< Folder > createFolder( const std::map< std::string, PropertyPtr >& properties )
+- throw ( libcmis::Exception ) = 0;
++ = 0;
+ virtual ::boost::shared_ptr< Document > createDocument( const std::map< std::string, PropertyPtr >& properties,
+- boost::shared_ptr< std::ostream > os, std::string contentType, std::string fileName ) throw ( Exception ) = 0;
++ boost::shared_ptr< std::ostream > os, std::string contentType, std::string fileName ) = 0;
+
+ virtual std::vector< std::string > removeTree( bool allVersion = true, UnfileObjects::Type unfile = UnfileObjects::Delete,
+- bool continueOnError = false ) throw ( Exception ) = 0;
++ bool continueOnError = false ) = 0;
+
+ virtual std::string toString( );
+ };
+--- src/libcmis/object.cxx
++++ src/libcmis/object.cxx
+@@ -226,7 +226,6 @@
+ }
+
+ ObjectPtr Object::addSecondaryType( string id, PropertyPtrMap properties )
+- throw ( Exception )
+ {
+ // First make sure the cmis:secondaryObjectTypeIds property can be defined
+ map< string, PropertyTypePtr >& propertyTypes = getTypeDescription( )->
+@@ -253,7 +252,7 @@
+ return updateProperties( newProperties );
+ }
+
+- ObjectPtr Object::removeSecondaryType( string id ) throw ( Exception )
++ ObjectPtr Object::removeSecondaryType( string id )
+ {
+ // First make sure the cmis:secondaryObjectTypeIds property can be defined
+ map< string, PropertyTypePtr >& propertyTypes = getTypeDescription( )->
+@@ -297,12 +296,12 @@
+ return m_typeDescription;
+ }
+
+- vector< RenditionPtr> Object::getRenditions( string /*filter*/ ) throw ( Exception )
++ vector< RenditionPtr> Object::getRenditions( string /*filter*/ )
+ {
+ return m_renditions;
+ }
+
+- string Object::getThumbnailUrl( ) throw ( Exception )
++ string Object::getThumbnailUrl( )
+ {
+ string url;
+ vector< RenditionPtr > renditions = getRenditions( );
+--- src/libcmis/object.hxx
++++ src/libcmis/object.hxx
+@@ -129,8 +129,7 @@
+ */
+ virtual boost::shared_ptr< Object > addSecondaryType(
+ std::string id,
+- PropertyPtrMap properties )
+- throw ( Exception );
++ PropertyPtrMap properties );
+
+ /** Convenience function removing a secondary type from the object.
+
+@@ -154,8 +153,7 @@
+ to throw a constraint exception if it doesn't allow the
+ operation.
+ */
+- virtual boost::shared_ptr< Object > removeSecondaryType( std::string id )
+- throw ( Exception );
++ virtual boost::shared_ptr< Object > removeSecondaryType( std::string id );
+
+ /** Gives access to the properties of the object.
+
+@@ -179,8 +177,7 @@
+ \attention
+ The streamId of the rendition is used in getContentStream( )
+ */
+- virtual std::vector< RenditionPtr> getRenditions( std::string filter = std::string( ) )
+- throw ( Exception );
++ virtual std::vector< RenditionPtr> getRenditions( std::string filter = std::string( ) );
+ virtual AllowableActionsPtr getAllowableActions( ) { return m_allowableActions; }
+
+ /** Update the object properties and return the updated object.
+@@ -191,21 +188,21 @@
+ are still two different instances to ease memory handling.
+ */
+ virtual boost::shared_ptr< Object > updateProperties(
+- const PropertyPtrMap& properties ) throw ( Exception ) = 0;
++ const PropertyPtrMap& properties ) = 0;
+
+ virtual ObjectTypePtr getTypeDescription( );
+
+ /** Reload the data from the server.
+ */
+- virtual void refresh( ) throw ( Exception ) = 0;
++ virtual void refresh( ) = 0;
+ virtual time_t getRefreshTimestamp( ) { return m_refreshTimestamp; }
+
+- virtual void remove( bool allVersions = true ) throw ( Exception ) = 0;
++ virtual void remove( bool allVersions = true ) = 0;
+
+- virtual void move( boost::shared_ptr< Folder > source, boost::shared_ptr< Folder > destination ) throw ( Exception ) = 0;
++ virtual void move( boost::shared_ptr< Folder > source, boost::shared_ptr< Folder > destination ) = 0;
+
+
+- virtual std::string getThumbnailUrl( ) throw ( Exception );
++ virtual std::string getThumbnailUrl( );
+
+ /** Dump the object as a string for debugging or display purpose.
+ */
+--- src/libcmis/object-type.cxx
++++ src/libcmis/object-type.cxx
+@@ -293,22 +293,22 @@
+ }
+ }
+
+- void ObjectType::refresh( ) throw ( Exception )
++ void ObjectType::refresh( )
+ {
+ throw Exception( "ObjectType::refresh() shouldn't be called" );
+ }
+
+- ObjectTypePtr ObjectType::getParentType( ) throw ( Exception )
++ ObjectTypePtr ObjectType::getParentType( )
+ {
+ throw Exception( "ObjectType::getParentType() shouldn't be called" );
+ }
+
+- ObjectTypePtr ObjectType::getBaseType( ) throw ( Exception )
++ ObjectTypePtr ObjectType::getBaseType( )
+ {
+ throw Exception( "ObjectType::getBaseType() shouldn't be called" );
+ }
+
+- vector< ObjectTypePtr > ObjectType::getChildren( ) throw ( Exception )
++ vector< ObjectTypePtr > ObjectType::getChildren( )
+ {
+ throw Exception( "ObjectType::getChildren() shouldn't be called" );
+ }
+--- src/libcmis/object-type.hxx
++++ src/libcmis/object-type.hxx
+@@ -94,7 +94,7 @@
+ This method needs to be implemented in subclasses or it will
+ do nothing
+ */
+- virtual void refresh( ) throw ( Exception );
++ virtual void refresh( );
+ virtual time_t getRefreshTimestamp( ) const;
+
+ std::string getId( ) const;
+@@ -104,9 +104,9 @@
+ std::string getQueryName( ) const;
+ std::string getDescription( ) const;
+
+- virtual boost::shared_ptr< ObjectType > getParentType( ) throw ( Exception );
+- virtual boost::shared_ptr< ObjectType > getBaseType( ) throw ( Exception );
+- virtual std::vector< boost::shared_ptr< ObjectType > > getChildren( ) throw ( Exception );
++ virtual boost::shared_ptr< ObjectType > getParentType( );
++ virtual boost::shared_ptr< ObjectType > getBaseType( );
++ virtual std::vector< boost::shared_ptr< ObjectType > > getChildren( );
+
+ /** Get the parent type id without extracting the complete parent type from
+ the repository. This is mainly provided for performance reasons.
+--- src/libcmis/session-factory.cxx
++++ src/libcmis/session-factory.cxx
+@@ -57,7 +57,7 @@
+
+ Session* SessionFactory::createSession( string bindingUrl, string username,
+ string password, string repository, bool noSslCheck,
+- libcmis::OAuth2DataPtr oauth2, bool verbose ) throw ( Exception )
++ libcmis::OAuth2DataPtr oauth2, bool verbose )
+ {
+ Session* session = NULL;
+
+@@ -138,7 +138,7 @@
+ }
+
+ vector< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl,
+- string username, string password, bool verbose ) throw ( Exception )
++ string username, string password, bool verbose )
+ {
+ vector< RepositoryPtr > repos;
+
+--- src/libcmis/session-factory.hxx
++++ src/libcmis/session-factory.hxx
+@@ -128,7 +128,7 @@
+ std::string password = std::string( ),
+ std::string repositoryId = std::string( ),
+ bool noSslCheck = false,
+- OAuth2DataPtr oauth2 = OAuth2DataPtr(), bool verbose = false ) throw ( Exception );
++ OAuth2DataPtr oauth2 = OAuth2DataPtr(), bool verbose = false );
+
+ /**
+ Gets the informations of the repositories on the server.
+@@ -142,7 +142,7 @@
+ static std::vector< RepositoryPtr > getRepositories( std::string bindingUrl,
+ std::string username = std::string( ),
+ std::string password = std::string( ),
+- bool verbose = false ) throw ( Exception );
++ bool verbose = false );
+ };
+ }
+
+--- src/libcmis/session.hxx
++++ src/libcmis/session.hxx
+@@ -47,7 +47,7 @@
+
+ /** Get the current repository.
+ */
+- virtual RepositoryPtr getRepository( ) throw ( Exception ) = 0;
++ virtual RepositoryPtr getRepository( ) = 0;
+
+ virtual std::vector< RepositoryPtr > getRepositories( ) = 0;
+
+@@ -61,27 +61,27 @@
+
+ /** Get the Root folder of the repository
+ */
+- virtual FolderPtr getRootFolder() throw ( Exception )= 0;
++ virtual FolderPtr getRootFolder() = 0;
+
+ /** Get a CMIS object from its ID.
+ */
+- virtual ObjectPtr getObject( std::string id ) throw ( Exception ) = 0;
++ virtual ObjectPtr getObject( std::string id ) = 0;
+
+ /** Get a CMIS object from one of its path.
+ */
+- virtual ObjectPtr getObjectByPath( std::string path ) throw ( Exception ) = 0;
++ virtual ObjectPtr getObjectByPath( std::string path ) = 0;
+
+ /** Get a CMIS folder from its ID.
+ */
+- virtual libcmis::FolderPtr getFolder( std::string id ) throw ( Exception ) = 0;
++ virtual libcmis::FolderPtr getFolder( std::string id ) = 0;
+
+ /** Get a CMIS object type from its ID.
+ */
+- virtual ObjectTypePtr getType( std::string id ) throw ( Exception ) = 0;
++ virtual ObjectTypePtr getType( std::string id ) = 0;
+
+ /** Get all the CMIS base object types known by the server.
+ */
+- virtual std::vector< ObjectTypePtr > getBaseTypes( ) throw ( Exception ) = 0;
++ virtual std::vector< ObjectTypePtr > getBaseTypes( ) = 0;
+
+ /** Enable or disable the SSL certificate verification.
+
+--- src/libcmis/xml-utils.cxx
++++ src/libcmis/xml-utils.cxx
+@@ -361,7 +361,6 @@
+ string getXmlNodeAttributeValue( xmlNodePtr node,
+ const char* attributeName,
+ const char* defaultValue )
+- throw ( Exception )
+ {
+ xmlChar* xmlStr = xmlGetProp( node, BAD_CAST( attributeName ) );
+ if ( xmlStr == NULL )
+@@ -450,7 +449,7 @@
+ return str;
+ }
+
+- bool parseBool( string boolStr ) throw ( Exception )
++ bool parseBool( string boolStr )
+ {
+ bool value = false;
+ if ( boolStr == "true" || boolStr == "1" )
+@@ -462,7 +461,7 @@
+ return value;
+ }
+
+- long parseInteger( string intStr ) throw ( Exception )
++ long parseInteger( string intStr )
+ {
+ char* end;
+ errno = 0;
+@@ -481,7 +480,7 @@
+ return value;
+ }
+
+- double parseDouble( string doubleStr ) throw ( Exception )
++ double parseDouble( string doubleStr )
+ {
+ char* end;
+ errno = 0;
+--- src/libcmis/xml-utils.hxx
++++ src/libcmis/xml-utils.hxx
+@@ -132,8 +132,7 @@
+ */
+ std::string getXmlNodeAttributeValue( xmlNodePtr node,
+ const char* attributeName,
+- const char* defaultValue = NULL )
+- throw ( Exception );
++ const char* defaultValue = NULL );
+
+ /** Parse a xsd:dateTime string and return the corresponding UTC posix time.
+ */
+@@ -142,11 +141,11 @@
+ /// Write a UTC time object to an xsd:dateTime string
+ std::string writeDateTime( boost::posix_time::ptime time );
+
+- bool parseBool( std::string str ) throw ( Exception );
++ bool parseBool( std::string str );
+
+- long parseInteger( std::string str ) throw ( Exception );
++ long parseInteger( std::string str );
+
+- double parseDouble( std::string str ) throw ( Exception );
++ double parseDouble( std::string str );
+
+ /** Trim spaces on the left and right of a string.
+ */