[Box Backup] VSS on x64 not working with x86 binaries

Achim achim+box at qustodium.net
Mon Oct 24 11:38:31 BST 2011


Hello Chris:

On Sun, 23 Oct 2011 23:33:41 +0100 (BST), Chris Wilson
<chris at qwirx.com> wrote:
> How did you add the new configuration? I can't see that option.

I uploaded my notes to the following page
<http://cuba-project.org/Box_Backup_x64>

> I've just checked in a change that should fix the assertion error, I hope.

Indeed, as of R3028 VSS works fine on x64: thank you very much!

The "unmangling" of VSS filenames to standard filenames seems to be
affected though, because it does not work (or is this a problem with the
loglevel setting?):

2011-10-24 11:07:21 [NOTICE]  Uploading complete file:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Boot\it-IT\bootmgr.exe.mui
2011-10-24 11:07:21 [NOTICE]  Uploaded file:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Boot\it-IT\bootmgr.exe.mui,
total size = 70144, uploaded size = 16233
2011-10-24 11:07:21 [NOTICE]  Uploading complete file:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Boot\ja-JP\bootmgr.exe.mui
2011-10-24 11:07:22 [NOTICE]  Uploaded file:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Boot\ja-JP\bootmgr.exe.mui,
total size = 56320, uploaded size = 14421


In addition, there are quite a few warnings generated by compiling for
an x64 target, I am not sure which ones are important and which ones can
be ignored. I include the build log below for reference.

Please let me know if you need help with the x64 build configurations!

Best regards, Achim

=================== x64 build log ===================
------ Rebuild All started: Project: qdbm, Configuration: Debug x64
------
  myconf.c
..\..\..\qdbm\myconf.c(167): warning C4267: 'function' : conversion
from 'size_t' to 'DWORD', possible loss of data
..\..\..\qdbm\myconf.c(429): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
  depot.c
..\..\..\qdbm\depot.c(359): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(360): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(510): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(540): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(596): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(635): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(1281): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(1393): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(1403): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(1443): warning C4267: 'function' : conversion
from 'size_t' to 'int', possible loss of data
..\..\..\qdbm\depot.c(1550): warning C4267: '=' : conversion from
'size_t' to 'int', possible loss of data
  Generating Code...
  qdbm.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\qdbm.lib
------ Rebuild All started: Project: common, Configuration: Debug x64
------
  trunk_3028M
  BufferedStream.cpp
  BufferedWriteStream.cpp
  FileModificationTime.cpp
  GetLine.cpp
  InvisibleTempFileStream.cpp
  NamedLock.cpp
  RateLimitingStream.cpp
  autogen_CompressException.cpp
  CompressStream.cpp
  autogen_CommonException.cpp
  autogen_ConversionException.cpp
  BoxException.cpp
  BoxTime.cpp
  BoxTimeToText.cpp
  CollectInBufferStream.cpp
  Configuration.cpp
  ConversionString.cpp
  DebugAssertFailed.cpp
  DebugMemLeakFinder.cpp
  DebugPrintf.cpp
  Generating Code...
  Compiling...
  EventWatchFilesystemObject.cpp
  ExcludeList.cpp
  FdGetLine.cpp
  FileStream.cpp
  IOStream.cpp
  IOStreamGetLine.cpp
  Logging.cpp
  MemBlockStream.cpp
  PartialReadStream.cpp
  PathUtils.cpp
  ReadGatherStream.cpp
  ReadLoggingStream.cpp
  StreamableMemBlock.cpp
  Timer.cpp
  UnixUser.cpp
  Utils.cpp
  WaitForEvent.cpp
  autogen_CipherException.cpp
  CipherAES.cpp
  CipherBlowfish.cpp
  Generating Code...
  Compiling...
  CipherContext.cpp
  CipherDescription.cpp
  MD5Digest.cpp
  Random.cpp
  RollingChecksum.cpp
  Message.cpp
  emu.cpp
  getopt_long.cpp
  autogen_ConnectionException.cpp
  autogen_ServerException.cpp
  Daemon.cpp
  LocalProcessStream.cpp
  Protocol.cpp
  ProtocolUncertainStream.cpp
  Socket.cpp
  SocketStream.cpp
  SocketStreamTLS.cpp
  SSLLib.cpp
  TLSContext.cpp
  WinNamedPipeStream.cpp
  Generating Code...
pcre.lib(pcre3d.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR
already defined in Ws2_32.lib(WS2_32.dll); second definition ignored
pcre.lib(pcre3d.dll) : warning LNK4221: This object file does not
define any previously undefined public symbols, so it will not be used
by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: regfree already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_regfree already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: regexec already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_regexec already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: regerror already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_regerror
already defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: regcomp already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_regcomp already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006:
__imp_pcre_stack_malloc already defined in pcre.lib(pcre3d.dll); second
definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_pcre_stack_free
already defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_pcre_malloc
already defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_pcre_free
already defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_pcre_callout
already defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: DllGetVersion already
defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4006: __imp_DllGetVersion
already defined in pcre.lib(pcre3d.dll); second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
pcreposix.lib(pcreposix3d.dll) : warning LNK4006:
__NULL_IMPORT_DESCRIPTOR already defined in Ws2_32.lib(WS2_32.dll);
second definition ignored
pcreposix.lib(pcreposix3d.dll) : warning LNK4221: This object file does
not define any previously undefined public symbols, so it will not be
used by any link operation that consumes this library
libeay32.lib(LIBEAY32.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR
already defined in Ws2_32.lib(WS2_32.dll); second definition ignored
libeay32.lib(LIBEAY32.dll) : warning LNK4221: This object file does not
define any previously undefined public symbols, so it will not be used
by any link operation that consumes this library
ssleay32.lib(SSLEAY32.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR
already defined in Ws2_32.lib(WS2_32.dll); second definition ignored
ssleay32.lib(SSLEAY32.dll) : warning LNK4221: This object file does not
define any previously undefined public symbols, so it will not be used
by any link operation that consumes this library
zdll.lib(zlib1.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already
defined in Ws2_32.lib(WS2_32.dll); second definition ignored
zdll.lib(zlib1.dll) : warning LNK4221: This object file does not define
any previously undefined public symbols, so it will not be used by any
link operation that consumes this library
  common.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\common.lib
------ Rebuild All started: Project: libbackupstore, Configuration:
Debug x64 ------
  RaidFileWrite.cpp
  RaidFileUtil.cpp
  RaidFileRead.cpp
  RaidFileController.cpp
  autogen_RaidFileException.cpp
  StoreStructure.cpp
  BackupStoreRefCountDatabase.cpp
  BackupStoreInfo.cpp
  BackupStoreFileRevDiff.cpp
  BackupStoreFilenameClear.cpp
  BackupStoreFilename.cpp
  BackupStoreFileEncodeStream.cpp
  BackupStoreFileDiff.cpp
  BackupStoreFileCryptVar.cpp
  BackupStoreFileCombine.cpp
  BackupStoreFileCmbIdx.cpp
  BackupStoreFileCmbDiff.cpp
  BackupStoreFile.cpp
  BackupStoreDirectory.cpp
  BackupStoreContext.cpp
  Generating Code...
  Compiling...
  BackupStoreConfigVerify.cpp
  BackupStoreCheckData.cpp
  BackupStoreCheck2.cpp
  BackupStoreCheck.cpp
  BackupStoreAccounts.cpp
  BackupStoreAccountDatabase.cpp
  BackupCommands.cpp
  BackupClientFileAttributes.cpp
  autogen_BackupStoreException.cpp
  autogen_BackupProtocol.cpp
  Generating Code...
  libbackupstore.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\libbackupstore.lib
------ Rebuild All started: Project: libbackupclient, Configuration:
Debug x64 ------
  BackupStoreObjectDump.cpp
  BackupDaemonConfigVerify.cpp
  BackupClientRestore.cpp
  BackupClientMakeExcludeList.cpp
  BackupClientCryptoKeys.cpp
  Generating Code...
  libbackupclient.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\libbackupclient.lib
------ Rebuild All started: Project: bbackupctl, Configuration: Debug
x64 ------
  bbackupctl.cpp
  bbackupctl.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\bbackupctl.exe
------ Rebuild All started: Project: win32test, Configuration: Debug
x64 ------
  emu.cpp
  testlibwin32.cpp
  Generating Code...
  win32test.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\win32test.exe
------ Rebuild All started: Project: bbackupd, Configuration: Debug x64
------
  autogen_ClientException.cpp
  BackupClientContext.cpp
c:\program files\microsoft sdks\windows\v7.1\include\msxml.h(7994):
warning C4002: too many actual parameters for macro 'open'
  BackupClientDeleteList.cpp
c:\program files\microsoft sdks\windows\v7.1\include\msxml.h(7994):
warning C4002: too many actual parameters for macro 'open'
  BackupClientDirectoryRecord.cpp
c:\program files\microsoft sdks\windows\v7.1\include\msxml.h(7994):
warning C4002: too many actual parameters for macro 'open'
  BackupClientInodeToIDMap.cpp
  BackupDaemon.cpp
c:\program files\microsoft sdks\windows\v7.1\include\msxml.h(7994):
warning C4002: too many actual parameters for macro 'open'
..\..\..\bin\bbackupd\BackupDaemon.cpp(200): warning C4355: 'this' :
used in base member initializer list
..\..\..\bin\bbackupd\BackupDaemon.cpp(201): warning C4355: 'this' :
used in base member initializer list
..\..\..\bin\bbackupd\BackupDaemon.cpp(202): warning C4355: 'this' :
used in base member initializer list
..\..\..\bin\bbackupd\BackupDaemon.cpp(203): warning C4355: 'this' :
used in base member initializer list
  bbackupd.cpp
c:\program files\microsoft sdks\windows\v7.1\include\msxml.h(7994):
warning C4002: too many actual parameters for macro 'open'
  Win32BackupService.cpp
c:\program files\microsoft sdks\windows\v7.1\include\msxml.h(7994):
warning C4002: too many actual parameters for macro 'open'
  Win32ServiceFunctions.cpp
  Generating Code...
  bbackupd.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\bbackupd.exe
  bbackupd.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\bbackupd.exe
------ Rebuild All started: Project: bbstoreaccounts, Configuration:
Debug x64 ------
  bbstoreaccounts.cpp
  bbstoreaccounts.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\bbstoreaccounts.exe
------ Rebuild All started: Project: bbstored, Configuration: Debug x64
------
  HousekeepStoreAccount.cpp
..\..\..\bin\bbstored\HousekeepStoreAccount.cpp(269): warning C4018:
'<' : signed/unsigned mismatch
..\..\..\bin\bbstored\HousekeepStoreAccount.cpp(441): warning C4018:
'<=' : signed/unsigned mismatch
  BBStoreDHousekeeping.cpp
  bbstored.cpp
  BackupStoreDaemon.cpp
  Generating Code...
  bbstored.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\bbstored.exe
------ Rebuild All started: Project: bbackupquery, Configuration: Debug
x64 ------
  autogen_Documentation.cpp
  BackupQueries.cpp
  bbackupquery.cpp
  CommandCompletion.cpp
  Generating Code...
  boxquery.vcxproj ->
C:\Users\ajl\BoxBackup\boxbackup\infrastructure\msvc\2010\..\..\..\Debug\bbackupquery.exe
========== Rebuild All: 10 succeeded, 0 failed, 0 skipped ==========




More information about the Boxbackup mailing list