This is an automated email from the git hooks/post-receive script. paulnovo-guest pushed a commit to branch master in repository opensurgsim.
commit 99fcb1addad768914eb2f0cbe9d560da0bace686 Author: Paul Novotny <[email protected]> Date: Wed Sep 9 08:34:56 2015 -0400 Backport patches for building with GCC 5 --- debian/changelog | 1 + debian/patches/backport-d0a635981.patch | 48 +++++++++++++++++++++ debian/patches/backport-e762a2ea9.patch | 76 +++++++++++++++++++++++++++++++++ debian/patches/series | 2 + 4 files changed, 127 insertions(+) diff --git a/debian/changelog b/debian/changelog index 8517e06..bd7afb8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ opensurgsim (0.6.0-2) unstable; urgency=low [ Paul Novotny ] * Updates for yaml-cpp 0.5.2 + * Backport fixes for compiling with GCC 5 [ Andreas Tille ] * Fix Vcs fields via `cme fix dpkg-control` diff --git a/debian/patches/backport-d0a635981.patch b/debian/patches/backport-d0a635981.patch new file mode 100644 index 0000000..90d19ed --- /dev/null +++ b/debian/patches/backport-d0a635981.patch @@ -0,0 +1,48 @@ +Description: Fix gcc5 related issues [Patch 2/2] + Backported commits from upstream that fix building with GCC 5. + This commit prevents GCC from optimizing out unused static variables + that should not be removed. +Author: Paul Novotny <[email protected]> +Origin: upstream, https://github.com/simquest/opensurgsim/commit/d0a635981 +Last-Update: 2015-09-08 + +--- a/SurgSim/Framework/Macros.h ++++ b/SurgSim/Framework/Macros.h +@@ -21,11 +21,11 @@ + #define SURGSIM_CLASSNAME(ClassName) \ + virtual std::string getClassName() const {return #ClassName;} + +-/// GCC macro to suppress unused-variable warnings ++/// Macro to tell GCC this is a used variable, and not to optimize it out + #ifdef __GNUC__ +-#define SURGSIM_UNUSED_VARIABLE(x) __attribute__((unused)) x ++#define SURGSIM_USED_VARIABLE(x) x __attribute__((used)) + #else +-#define SURGSIM_UNUSED_VARIABLE(x) x ++#define SURGSIM_USED_VARIABLE(x) x + #endif + + ///@{ +--- a/SurgSim/Framework/ObjectFactory.h ++++ b/SurgSim/Framework/ObjectFactory.h +@@ -126,8 +126,8 @@ + /// 'DerivedClass' is 'ClassName' with namespace prefixes, + /// and 'ClassName' is the name of the class without namespace prefix. + #define SURGSIM_REGISTER(BaseClass, DerivedClass, ClassName) \ +- SURGSIM_UNUSED_VARIABLE(bool SURGSIM_CONCATENATE(ClassName, Registered) = \ +- BaseClass::getFactory().registerClass<DerivedClass>(#DerivedClass)); ++ SURGSIM_USED_VARIABLE(bool SURGSIM_CONCATENATE(ClassName, Registered)) = \ ++ BaseClass::getFactory().registerClass<DerivedClass>(#DerivedClass); + + /// Force compilation of the boolean symbol SURGSIM_CONCATENATE(ClassName, Registered) in SURGSIM_REGISTER macro, + /// which in turn registers DerivedClass into BaseClass's ObjectFactory. +@@ -144,7 +144,7 @@ + /// 'ClassName' should be the name of the class without any prefix. + #define SURGSIM_STATIC_REGISTRATION(ClassName) \ + extern bool SURGSIM_CONCATENATE(ClassName, Registered); \ +- SURGSIM_UNUSED_VARIABLE(static bool SURGSIM_CONCATENATE(ClassName, IsRegistered) = \ +- SURGSIM_CONCATENATE(ClassName, Registered)); ++ SURGSIM_USED_VARIABLE(static bool SURGSIM_CONCATENATE(ClassName, IsRegistered)) = \ ++ SURGSIM_CONCATENATE(ClassName, Registered); + + #endif // SURGSIM_FRAMEWORK_OBJECTFACTORY_H diff --git a/debian/patches/backport-e762a2ea9.patch b/debian/patches/backport-e762a2ea9.patch new file mode 100644 index 0000000..51afdad --- /dev/null +++ b/debian/patches/backport-e762a2ea9.patch @@ -0,0 +1,76 @@ +Description: Fix gcc5 related issues [Patch 1/2] + Backported commits from upstream that fix building with GCC 5. + This commit fixes an error with a ObjectFactory, a couple of + failing unit tests, and a variable might be used uninitialized + warning. +Author: Paul Novotny <[email protected]> +Origin: upstream, https://github.com/simquest/opensurgsim/commit/e762a2ea9 +Last-Update: 2015-09-08 + +--- a/SurgSim/Framework/Macros.h ++++ b/SurgSim/Framework/Macros.h +@@ -21,11 +21,11 @@ + #define SURGSIM_CLASSNAME(ClassName) \ + virtual std::string getClassName() const {return #ClassName;} + +-/// GCC macro to write out an _Pragma statement inside a macro, disabled for other platforms ++/// GCC macro to suppress unused-variable warnings + #ifdef __GNUC__ +-#define SURGSIM_DO_PRAGMA(x) _Pragma (#x) ++#define SURGSIM_UNUSED_VARIABLE(x) __attribute__((unused)) x + #else +-#define SURGSIM_DO_PRAGMA(x) ++#define SURGSIM_UNUSED_VARIABLE(x) x + #endif + + ///@{ +--- a/SurgSim/Framework/ObjectFactory.h ++++ b/SurgSim/Framework/ObjectFactory.h +@@ -105,7 +105,7 @@ + + private: + +- typedef boost::function<std::shared_ptr<Base>(Parameter1)> Constructor; ++ typedef boost::function<std::shared_ptr<Base>(const Parameter1&)> Constructor; + + /// All the constructors. + std::map<std::string, Constructor> m_constructors; +@@ -126,8 +126,8 @@ + /// 'DerivedClass' is 'ClassName' with namespace prefixes, + /// and 'ClassName' is the name of the class without namespace prefix. + #define SURGSIM_REGISTER(BaseClass, DerivedClass, ClassName) \ +- bool SURGSIM_CONCATENATE(ClassName, Registered) = \ +- BaseClass::getFactory().registerClass<DerivedClass>(#DerivedClass); \ ++ SURGSIM_UNUSED_VARIABLE(bool SURGSIM_CONCATENATE(ClassName, Registered) = \ ++ BaseClass::getFactory().registerClass<DerivedClass>(#DerivedClass)); + + /// Force compilation of the boolean symbol SURGSIM_CONCATENATE(ClassName, Registered) in SURGSIM_REGISTER macro, + /// which in turn registers DerivedClass into BaseClass's ObjectFactory. +@@ -143,10 +143,8 @@ + /// This macro should be put in the DerivedClass's header file, under the same namespace in which the DerivedClass is. + /// 'ClassName' should be the name of the class without any prefix. + #define SURGSIM_STATIC_REGISTRATION(ClassName) \ +- SURGSIM_DO_PRAGMA (GCC diagnostic push); \ +- SURGSIM_DO_PRAGMA (GCC diagnostic ignored "-Wunused-variable"); \ + extern bool SURGSIM_CONCATENATE(ClassName, Registered); \ +- static bool SURGSIM_CONCATENATE(ClassName, IsRegistered) = SURGSIM_CONCATENATE(ClassName, Registered); \ +- SURGSIM_DO_PRAGMA (GCC diagnostic pop) ++ SURGSIM_UNUSED_VARIABLE(static bool SURGSIM_CONCATENATE(ClassName, IsRegistered) = \ ++ SURGSIM_CONCATENATE(ClassName, Registered)); + +-#endif // SURGSIM_FRAMEWORK_OBJECTFACTORY_H +\ No newline at end of file ++#endif // SURGSIM_FRAMEWORK_OBJECTFACTORY_H +--- a/SurgSim/Physics/Fem3DElementCorotationalTetrahedron.cpp ++++ b/SurgSim/Physics/Fem3DElementCorotationalTetrahedron.cpp +@@ -180,8 +180,8 @@ + // Now we compute some useful matrices for the next step + double determinant; + bool invertible; +- SurgSim::Math::Matrix33d G, Ginv; +- G = (scaling.trace() * SurgSim::Math::Matrix33d::Identity() - scaling) * m_rotation.transpose(); ++ Math::Matrix33d G = (scaling.trace() * Math::Matrix33d::Identity() - scaling) * m_rotation.transpose(); ++ Math::Matrix33d Ginv = Math::Matrix33d::Zero(); + G.computeInverseAndDetWithCheck(Ginv, determinant, invertible); + if (!invertible) + { diff --git a/debian/patches/series b/debian/patches/series index fd9ff98..bb55fe7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -2,3 +2,5 @@ backport-03c10f32d.patch use-debian-yaml-cpp.patch add-version-to-libs.patch backport-cb568a34f.patch +backport-e762a2ea9.patch +backport-d0a635981.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/opensurgsim.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
