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
This commit is contained in:
@@ -37,7 +37,7 @@ namespace leveldb {
|
||||
namespace port {
|
||||
|
||||
Mutex::Mutex() :
|
||||
cs_(nullptr) {
|
||||
cs_(NULL) {
|
||||
assert(!cs_);
|
||||
cs_ = static_cast<void *>(new CRITICAL_SECTION());
|
||||
::InitializeCriticalSection(static_cast<CRITICAL_SECTION *>(cs_));
|
||||
@@ -48,7 +48,7 @@ Mutex::~Mutex() {
|
||||
assert(cs_);
|
||||
::DeleteCriticalSection(static_cast<CRITICAL_SECTION *>(cs_));
|
||||
delete static_cast<CRITICAL_SECTION *>(cs_);
|
||||
cs_ = nullptr;
|
||||
cs_ = NULL;
|
||||
assert(!cs_);
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ void InitOnce(OnceType* once, void (*initializer)()) {
|
||||
}
|
||||
|
||||
void* AtomicPointer::Acquire_Load() const {
|
||||
void * p = nullptr;
|
||||
void * p = NULL;
|
||||
InterlockedExchangePointer(&p, rep_);
|
||||
return p;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user