Commit Graph

183 Commits

Author SHA1 Message Date
Gavin Andresen b1024662ea Port leveldb to MinGW32
Several changes to make the native windows leveldb code compile
with mingw32 and run on 32-bit Windows:
* Remove -std=c++0x dependency (modified code to use NULL instead of
  nullptr)
* Link with -lshlwapi
* Only #define snprintf/etc if compiling with Visual Studio
* Do not link against DbgHelp.lib (wrote a CreateDir instead of using
  DbgHelp's MakeSureDirectoryPathExists
* Define WINVER=0x0500 so MinGW32 can use the 64-bit-filesystem Windows
  api calls
* Define __USE_MINGW_ANSI_STDIO=1 to use MinGW's printf (which supports
  %ll)

I also cleaned up makefile.mingw, assuming that dependencies would be in
the standard /usr/local/{include,lib} by default but allowing overriding
with make DEPSDIR=... etc
2013-01-23 10:42:46 -05:00
Gavin Andresen 5a4af8f71f Merge pull request #2167 from Diapolo/Qt_laa_flag
enable GCC large address aware linker flag (Windows only)
2013-01-23 07:00:24 -08:00
Wladimir J. van der Laan ac3907bf27 Merge pull request #2109 from Diapolo/qt-pro-file-win32
Bitcoin-Qt: ensure all Windows scopes use win32 as identifier
2013-01-19 06:28:36 -08:00
Gavin Andresen 0e31ae9818 Merge pull request #2060 from sipa/parallel
Parallel script verification
2013-01-17 16:58:58 -08:00
Philip Kaufmann 1f0ce2dd68 enable GCC large address aware linker flag (Windows only)
- this flag allows bitcoin-qt.exe / bitcoind.exe (32-bit application) to
  handle addresses larger than 2GB (up to 3GB on x86 Windows and up to
  4GB on x64 Windows)
2013-01-17 22:01:42 +01:00
Matt Corallo bd21612c37 Add a CBloomFilter class for use as a transaction filter. 2013-01-16 12:48:01 -05:00
Matt Corallo 7ab026f449 Add MurmurHash3 implementation to hash.h/add hash.cpp. 2013-01-16 12:48:01 -05:00
Pieter Wuille f9cae832e6 Parallelize script verification
* During block verification (when parallelism is requested), script
  check actions are stored instead of being executed immediately.
* After every processed transactions, its signature actions are
  pushed to a CScriptCheckQueue, which maintains a queue and some
  synchronization mechanism.
* Two or more threads (if enabled) start processing elements from
  this queue,
* When the block connection code is finished processing transactions,
  it joins the worker pool until the queue is empty.

As cs_main is held the entire time, and all verification must be
finished before the block continues processing, this does not reach
the best possible performance. It is a less drastic change than
some more advanced mechanisms (like doing verification out-of-band
entirely, and rolling back blocks when a failure is detected).

The -par=N flag controls the number of threads (1-16). 0 means auto,
and is the default.
2013-01-08 02:00:59 +01:00
Pieter Wuille 0fb9073edd Split off hash.h from util.h 2012-12-18 21:39:29 +01:00
Philip Kaufmann 7601152ce2 Bitcoin-Qt: ensure all Windows scopes use win32 as identifier
- currently we sometimes use "windows" or "win32", but as per
  http://doc.qt.digia.com/qt/qmake-advanced-usage.html, windows seems to
  be not officially supported (only win32 is mentioned there)
2012-12-15 11:02:37 +01:00
Philip Kaufmann a4b43645aa add threadsafety.h to bitcoin-qt.pro
- to be able to see threadsafety.h in the Qt Creator IDE the file needs to
  be added to the HEADERS section
2012-12-12 19:31:18 +01:00
Gavin Andresen 59b8a869ab Compile c/objective-c code max compatiblity when RELEASE 2012-12-12 11:31:29 -05:00
grimd34th 90841fd5e0 VariantClear@4 + shutdown@8 patch
merged 2 windows:LIBS lines so they happen when they need to (#976)
added -loleaut32 to fix VariantClear
moved -lws2_32 and others to existing windows:LIBS line
2012-11-04 21:00:57 -05:00
Matt Corallo 3b4f8ad71d Use && instead of ; in leveldb calls to makefile. 2012-10-29 15:43:17 -04:00
Wladimir J. van der Laan 2d53ba2c69 Merge pull request #1925 from Diapolo/gcc-hardening
GCC hardening for Bitcoin-Qt
2012-10-25 01:07:19 -07:00
Philip Kaufmann 6b08099d7b fix a double inclusion of txdb.h in bitcoin-qt.pro 2012-10-21 21:22:39 +02:00
Pieter Wuille fcfa7a588e Update version numbers to 0.7.99 2012-10-21 12:10:08 +02:00
Pieter Wuille 4ca60bba5c Remove BDB block database support 2012-10-20 23:08:57 +02:00
Pieter Wuille 2d8a48292b LevelDB block and coin databases
Split off CBlockTreeDB and CCoinsViewDB into txdb-*.{cpp,h} files,
implemented by either LevelDB or BDB.

Based on code from earlier commits by Mike Hearn in his leveldb
branch.
2012-10-20 23:08:57 +02:00
Pieter Wuille 43b7905e98 LevelDB glue
Database-independent glue for supporting LevelDB databases.

Based on code from earlier commits by Mike Hearn in his leveldb
branch.
2012-10-20 23:08:56 +02:00
Pieter Wuille 3ff3a2bd60 Makefile integration of LevelDB 2012-10-20 23:08:56 +02:00
Philip Kaufmann 493940038f Bitcoin-Qt: remove unneeded "--param ssp-buffer-size=1" flag
- that flag is not needed when using "-fstack-protector-all", so remove it
  (see:
  http://stackoverflow.com/questions/1629685/when-and-how-to-use-gccs-stack-protection-feature)
2012-10-13 10:25:17 +02:00
Philip Kaufmann 10d3603ffa Bitcoin-Qt: add new GCC compiler hardening options
- this patch enables several new GCC compiler hardening options that
  allows us to increase the security of our binaries (see:
  https://wiki.debian.org/Hardening)

-D_FORTIFY_SOURCE=2:
Enables compile-time protection against static sized buffer overflows.

-Wl,-z,relro -Wl,-z,now:
Enables full RELRO (RELocation Read-Only), which is a generic mitigation
technique to harden the data sections of an ELF binary/process. See:
http://isisblogs.poly.edu/2011/06/01/relro-relocation-read-only/ for
further details.
2012-10-12 23:16:27 +02:00
Wladimir J. van der Laan ac0ad5dc63 Merge pull request #1901 from laanwj/2012_10_remove_strlcpy
get rid of strlcpy.h
2012-10-11 00:39:51 -07:00
Gavin Andresen 1d1f32d16d Bump versions for 0.7.1 release 2012-10-09 12:37:35 -04:00
Wladimir J. van der Laan 6032e4f4e7 get rid of strlcpy.h
Don't use hand-rolled string manipulation routine with a fixed
buffer in the bitcoin core, instead make use of c++ strings and boost.
2012-10-07 14:38:37 +02:00
Wladimir J. van der Laan 827d8c2e0c Revert "Remove -Wformat* warnings from makefiles"
This reverts commit 14ac0adcc7.
2012-10-01 19:45:42 +02:00
Wladimir J. van der Laan 14ac0adcc7 Remove -Wformat* warnings from makefiles
commit 5a1a3622 effectively enabled these warnings, but they need
to be fixed before being enabled in the general build scripts.
2012-09-27 04:10:21 +02:00
Wladimir J. van der Laan f5cb3488be Merge pull request #1857 from Diapolo/pro-file
change last occurance of mac to macx in Qt project-file
2012-09-25 02:53:12 -07:00
Wladimir J. van der Laan dc2a68dc43 Merge pull request #1847 from gavinandresen/osx_pthread
Compile/link Bitcoin-Qt.app with -pthread on OSX
2012-09-25 02:52:34 -07:00
Philip Kaufmann 6ca5ee6211 change last occurance of mac to macx in Qt project-file 2012-09-24 22:59:31 +02:00
Philip Kaufmann 807f3e83ba Bitcoin-Qt: expand GCC Stack-Smashing Protector usage (non Windows)
This patch currently excludes our Windows executable!

- change to use -fstack-protector-all
- the minimum size of buffers (i.e. arrays) that will receive stack
  smashing protection was changed to 1 byte (GCC default: 8)
- warn about functions that will not be protected against stack
  smashing by adding -Wstack-protector
2012-09-22 12:28:39 +02:00
Gavin Andresen d6c4400d57 Compile/link Bitcoin-Qt.app with -pthread 2012-09-21 15:42:38 -04:00
Wladimir J. van der Laan 1ba4925755 Merge pull request #1705 from Diapolo/cleanup_bitcoingui
Qt: re-order GUI code and remove FIRST_CLASS_MESSAGING
2012-09-20 23:08:52 -07:00
Philip Kaufmann f875921176 Bitcoin-Qt (Windows only): add version info to Resource File
- add version information to bitcoin-qt.rc, which is displayed on Windows, when looking in the executable properties and selecting "Details"
- introduce a new clientversion.h (used in bitcoin-qt.rc to generate
  version information), which takes only the version defines from
  version.h and is included in it (to allow usage with the windres rc-file
  compiler)
- move #define STRINGIFY(s) #s into clientversion.h as that is used in
  bitcoin-qt.rc and rename to DO_STRINGIZE(X)
- add #define STRINGIZE(X) DO_STRINGIZE(X), which is needed to convert the
  version defines into a version string in the rc-file
- this ensures we only need to update 1 file and have bitcoin-qt.exe
  version information

- for RC-file documentation see:
  http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058%28v=vs.85%29.aspx
2012-09-07 16:08:18 +02:00
Gavin Andresen 91c218a1cb Merge branch 'testnet_alert' of git://github.com/gavinandresen/bitcoin-git 2012-09-05 11:38:38 -04:00
Philip Kaufmann c3856bb011 add missing netbase.h to Qt project-file 2012-08-30 19:11:41 +02:00
Philip Kaufmann 5fc3a0f707 remove FIRST_CLASS_MESSAGING support from the client
- removes the FIRST_CLASS_MESSAGING support from the client, which was no
  default setting anyway
2012-08-29 19:57:51 +02:00
Wladimir J. van der Laan 1b4bd4c976 Merge pull request #1731 from luke-jr/opt_ipv6
Optional IPv6 spaces cleanup
2012-08-29 10:50:46 -07:00
Wladimir J. van der Laan 3f37f20ddc Remove json/*.cpp from Qt build system
They are unneeded as jsonspirit is always used as template library,
the other makefiles don't include them either.
2012-08-29 08:02:55 +02:00
Gavin Andresen f35c6c4fb9 Refactor: move alert code from main to alert.cpp/h 2012-08-28 17:04:54 -04:00
Luke Dashjr 0eeb54cb89 I forgot to paint the bike shed 2012-08-27 20:18:37 +00:00
Wladimir J. van der Laan ba7ba84f07 Add boost chrono lib for windows builds (required for boost 1.50) 2012-08-27 22:16:24 +02:00
Gavin Andresen 03fa53a640 Version numbers -> 0.7.0 2012-08-27 14:20:56 -04:00
Matt Corallo a1755ec426 Upgrade to Boost 1.50 2012-08-27 14:20:56 -04:00
Luke Dashjr 9655d73f49 Allow building with IPv6 support, but it disabled by default 2012-08-23 21:01:01 +00:00
Luke Dashjr e422bebbdc Make IPv6 support buildtime-optional again (defaults to enabled) 2012-08-23 20:49:51 +00:00
Wladimir J. van der Laan 4942b21203 bitcoin-qt.pro: Add test sources to OTHER_FILES so that they can be edited easier in Qt creator
- Also add src/version.h
2012-08-22 14:18:27 +02:00
Jeff Garzik c625ae04d2 RPC, cosmetic: move more RPC code to new rpcblockchain.cpp module 2012-08-21 11:03:38 -04:00
Jeff Garzik e3bc569865 RPC, cosmetic: move wallet-related RPCs to new rpcwallet.cpp module 2012-08-21 10:38:57 -04:00