[Box Backup] Distribution Patches - Debian - Part1: gcc 4.4 fixes

Reinhard Tartler boxbackup@boxbackup.org
Fri, 03 Apr 2009 09:05:23 +0200


Hi there,

As a reaction on Cris' recent note on the (lack of) distribtion
notification of patches, I'll start a series of threads with each change
done to the boxbackup source on this mailing list. Feel free to
integrate any of these changes to the boxbackup tree.

You can see all patches online at 
http://patch-tracking.debian.net/package/boxbackup/0.11~rc2+r2072-1

(though look if there are newer versions of the package available. The
patches I'm posting are already rebased against trunk, the version in
the package is already rather old ATM).

So here we go.

In order to compile with recent versions of gcc, some includes needs to be adjusted.

Some of the patches in this diff are required for gcc-4.3, some others
for gcc-4.4. I haven't disentagled which patch is required for what
exact version of gcc, but all of them are rather obvious and probably be
applied upstream.

--- a/bin/bbackupobjdump/bbackupobjdump.cpp
+++ b/bin/bbackupobjdump/bbackupobjdump.cpp
@@ -9,7 +9,8 @@
 
 #include "Box.h"
 
-#include <stdio.h>
+#include <cstdio>
+#include <cstring>
 
 #include "MainHelper.h"
 #include "FileStream.h"
--- a/bin/bbackupquery/bbackupquery.cpp
+++ b/bin/bbackupquery/bbackupquery.cpp
@@ -14,7 +14,8 @@
 #endif
 
 #include <errno.h>
-#include <stdio.h>
+#include <cstdio>
+#include <cstdlib>
 
 #ifdef HAVE_SYS_TYPES_H
 	#include <sys/types.h>
--- a/bin/bbstoreaccounts/bbstoreaccounts.cpp
+++ b/bin/bbstoreaccounts/bbstoreaccounts.cpp
@@ -36,6 +36,8 @@
 
 #include "MemLeakFindOn.h"
 
+#include <cstring>
+
 // max size of soft limit as percent of hard limit
 #define MAX_SOFT_LIMIT_SIZE		97
 
--- a/lib/backupclient/BackupClientFileAttributes.cpp
+++ b/lib/backupclient/BackupClientFileAttributes.cpp
@@ -28,6 +28,8 @@
 #include <sys/xattr.h>
 #endif
 
+#include <cstring>
+
 #include "BackupClientFileAttributes.h"
 #include "CommonException.h"
 #include "FileModificationTime.h"
--- a/lib/backupclient/BackupStoreFile.h
+++ b/lib/backupclient/BackupStoreFile.h
@@ -12,6 +12,7 @@
 
 #include <cstdlib>
 #include <memory>
+#include <cstdlib>
 
 #include "BackupClientFileAttributes.h"
 #include "BackupStoreFilename.h"
--- a/lib/backupclient/BackupStoreFileDiff.cpp
+++ b/lib/backupclient/BackupStoreFileDiff.cpp
@@ -35,6 +35,8 @@
 
 #include "MemLeakFindOn.h"
 
+#include <cstring>
+
 using namespace BackupStoreFileCryptVar;
 using namespace BackupStoreFileCreation;
 
--- a/lib/backupclient/BackupStoreFileEncodeStream.cpp
+++ b/lib/backupclient/BackupStoreFileEncodeStream.cpp
@@ -26,6 +26,8 @@
 
 #include "MemLeakFindOn.h"
 
+#include <cstring>
+
 using namespace BackupStoreFileCryptVar;
 
 
--- a/lib/common/Configuration.cpp
+++ b/lib/common/Configuration.cpp
@@ -22,6 +22,8 @@
 
 #include "MemLeakFindOn.h"
 
+#include <cstring>
+
 // utility whitespace function
 inline bool iw(int c)
 {
--- a/lib/common/DebugMemLeakFinder.cpp
+++ b/lib/common/DebugMemLeakFinder.cpp
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <set>
+#include <cstdlib> // for std::atexit
 
 #include "MemLeakFinder.h"
 
@@ -130,7 +131,7 @@ void *memleakfinder_malloc(size_t size, 
 {
 	InternalAllocGuard guard;
 
-	void *b = ::malloc(size);
+	void *b = std::malloc(size);
 	if(!memleakfinder_global_enable) return b;
 	if(!memleakfinder_initialised)   return b;
 
@@ -146,7 +147,7 @@ void *memleakfinder_realloc(void *ptr, s
 
 	if(!memleakfinder_global_enable || !memleakfinder_initialised)
 	{
-		return ::realloc(ptr, size);
+		return std::realloc(ptr, size);
 	}
 
 	// Check it's been allocated
@@ -158,7 +159,7 @@ void *memleakfinder_realloc(void *ptr, s
 			"objects?");
 	}
 
-	void *b = ::realloc(ptr, size);
+	void *b = std::realloc(ptr, size);
 
 	if(ptr && i!=sMallocBlocks.end())
 	{
@@ -215,7 +216,7 @@ void memleakfinder_free(void *ptr)
 	}
 
 	//TRACE1("free(), %08x\n", ptr);
-	::free(ptr);
+	std::free(ptr);
 }
 
 
@@ -426,7 +427,7 @@ void memleakfinder_setup_exit_report(con
 	atexit_markertext[sizeof(atexit_markertext)-1] = 0;
 	if(!atexit_registered)
 	{
-		atexit(memleakfinder_atexit);
+		std::atexit(memleakfinder_atexit);
 		atexit_registered = true;
 	}
 }
@@ -490,7 +491,7 @@ static void *internal_new(size_t size, c
 
 	{
 		InternalAllocGuard guard;
-		r = ::malloc(size);
+		r = std::malloc(size);
 	}
 	
 	if (sInternalAllocDepth == 0)
@@ -533,7 +534,7 @@ void internal_delete(void *ptr)
 {
 	InternalAllocGuard guard;
 
-	::free(ptr);
+	std::free(ptr);
 	remove_object_block(ptr);
 	//TRACE1("delete[]() called, %08x\n", ptr);
 }
--- a/lib/common/MemLeakFinder.h
+++ b/lib/common/MemLeakFinder.h
@@ -12,7 +12,7 @@
 
 #ifdef MEMLEAKFINDER_FULL_MALLOC_MONITORING
 	// include stdlib now, to avoid problems with having the macros defined already
-	#include <stdlib.h>
+	#include <cstdlib>
 #endif
 
 // global enable flag
--- a/lib/common/StreamableMemBlock.cpp
+++ b/lib/common/StreamableMemBlock.cpp
@@ -10,7 +10,7 @@
 #include "Box.h"
 
 #include <new>
-#include <stdlib.h>
+#include <cstdlib>
 #include <string.h>
 
 #include "StreamableMemBlock.h"
--- a/lib/common/Test.h
+++ b/lib/common/Test.h
@@ -10,7 +10,7 @@
 #ifndef TEST__H
 #define TEST__H
 
-#include <string>
+#include <cstring>
 
 #ifdef WIN32
 #define BBACKUPCTL      "..\\..\\bin\\bbackupctl\\bbackupctl.exe"
--- a/lib/common/WaitForEvent.h
+++ b/lib/common/WaitForEvent.h
@@ -22,6 +22,8 @@
 	#endif
 #endif
 
+#include <cstdlib>
+
 #include "CommonException.h"
 
 #include "MemLeakFindOn.h"
--- a/lib/raidfile/RaidFileRead.h
+++ b/lib/raidfile/RaidFileRead.h
@@ -10,7 +10,8 @@
 #ifndef RAIDFILEREAD__H
 #define RAIDFILEREAD__H
 
-#include <string>
+#include <cstring>
+#include <cstdlib>
 #include <memory>
 #include <vector>
 
--- a/lib/common/Logging.cpp
+++ b/lib/common/Logging.cpp
@@ -11,6 +11,10 @@
 
 #include <errno.h>
 #include <time.h>
+#include <string.h> // for stderror
+
+// c.f. http://bugs.debian.org/512510
+#include <cstdio>
 
 #ifdef HAVE_SYSLOG_H
 	#include <syslog.h>
--- a/bin/bbackupctl/bbackupctl.cpp
+++ b/bin/bbackupctl/bbackupctl.cpp
@@ -9,7 +9,8 @@
 
 #include "Box.h"
 
-#include <stdio.h>
+#include <cstdio>
+#include <cstdlib>
 
 #ifdef HAVE_UNISTD_H
 	#include <unistd.h>


-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4