Sat, 29 Jul 2006

Patch to build palm-db-tools_0.3.6 with recent g++ versions

A freshly downloaded version of palm-db-tools (using the most recent version 0.3.6 from June 2003) will not compile with g++ 4.0.3 and its pickier interpretation of C++.

A simple patch which removes trailing semicolons after class definitions, and adds virtual destructors for a few classes, is below. The mailing list archives show one other patch for a different (yet probably relevant :) problem, and its from November 2003.

By the way, would be nice if someone added the package to Debian. The Makefile's make clean target isn't quite right, and make install isn't exactly correct either. Plus, I seem to be building this by hand every few years, and it's so much easier to just apt-get. And no, my plate is already too full.

diff -ru palm-db-tools-0.3.6.orig/libpalm/Block.h palm-db-tools-0.3.6/libpalm/Block.h
--- palm-db-tools-0.3.6.orig/libpalm/Block.h	2003-06-19 18:37:47.000000000 -0500
+++ palm-db-tools-0.3.6/libpalm/Block.h	2006-07-29 15:04:19.000000000 -0500
@@ -176,7 +176,7 @@
 	size_type m_size;
     };
 
-};
+}
 
 bool operator == (const PalmLib::Block& lhs, const PalmLib::Block& rhs);
 
diff -ru palm-db-tools-0.3.6.orig/libpalm/File.h palm-db-tools-0.3.6/libpalm/File.h
--- palm-db-tools-0.3.6.orig/libpalm/File.h	2003-06-19 18:37:47.000000000 -0500
+++ palm-db-tools-0.3.6/libpalm/File.h	2006-07-29 15:04:42.000000000 -0500
@@ -89,6 +89,6 @@
 	uid_map_t m_uid_map;
     };
 
-};
+}
 
 #endif
diff -ru palm-db-tools-0.3.6.orig/libsupport/infofile.h palm-db-tools-0.3.6/libsupport/infofile.h
--- palm-db-tools-0.3.6.orig/libsupport/infofile.h	2003-06-19 18:37:47.000000000 -0500
+++ palm-db-tools-0.3.6/libsupport/infofile.h	2006-07-29 15:07:08.000000000 -0500
@@ -33,6 +33,7 @@
         {
         public:
             virtual void parse(int linenum, std::vector< std::string> array) = 0;
+	  virtual ~Parser() {};
         };
         class ConfigParser: public Parser
         {
@@ -40,6 +41,7 @@
                 ConfigParser(DataFile::CSVConfig& state)
                     : m_Config(state)
                     {}
+	        virtual ~ConfigParser() {};
                 virtual void parse(int linenum, std::vector< std::string> array);
             private:
                 DataFile::CSVConfig& m_Config;
@@ -50,6 +52,7 @@
                 DatabaseParser(PalmLib::FlatFile::Database& db)
                     : m_DB(db)
                     {}
+	        virtual ~DatabaseParser() {};
                 virtual void parse(int linenum, std::vector< std::string> array);
             private:
                 PalmLib::FlatFile::Database& m_DB;
@@ -60,6 +63,7 @@
                 TypeParser(std::string& p_Type)
                     : m_Type(p_Type)
                     {}
+	        virtual ~TypeParser() {};
                 virtual void parse(int linenum, std::vector< std::string> array);
             private:
                 std::string& m_Type;

/computers/misc | permanent link