From 9310134dfcd5c5736c68046b74508d3933429d5f Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Fri, 29 Aug 2008 16:59:12 +0200 Subject: [PATCH 1/3] Ok. last fix was wrong, PTHREAD_MUTEX_RECURSIVE_NP is only valid on linux... --- runtime/internal/critical.c | 2 +- runtime/internal/monitor.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/internal/critical.c b/runtime/internal/critical.c index 36cedd34..9bb41143 100644 --- a/runtime/internal/critical.c +++ b/runtime/internal/critical.c @@ -81,7 +81,7 @@ void _STD_critical_term() #include #include -#if __APPLE__ +#if !linux #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE #endif diff --git a/runtime/internal/monitor.c b/runtime/internal/monitor.c index 85042404..3f5a22fb 100644 --- a/runtime/internal/monitor.c +++ b/runtime/internal/monitor.c @@ -127,7 +127,7 @@ void _d_monitor_unlock(Object *h) #if USE_PTHREADS -#if __APPLE__ +#if !linux #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE #endif From 1565f00f857d615e2f7ee3797f4612141c2e63a0 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Sun, 31 Aug 2008 18:38:16 +0200 Subject: [PATCH 2/3] Fixed toobj.cpp to compile with latest LLVM, seems a method overload was removed recently. --- gen/toobj.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen/toobj.cpp b/gen/toobj.cpp index 1a237ddf..4da50bb3 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -192,7 +192,7 @@ void Module::genobjfile(int multiobj) if (global.params.disassemble) { Logger::println("Writing LLVM asm to: %s\n", llfile->name->toChars()); std::ofstream aos(llpath.c_str()); - ir.module->print(aos); + ir.module->print(aos, NULL); } delete ir.module; From 9f0633a7dd0b826c3264cc0f9f7cd0c795ccd3ac Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Sun, 31 Aug 2008 18:51:14 +0200 Subject: [PATCH 3/3] Added some sanity checks for target detection. --- dmd/mars.c | 4 ++++ dmd/mars.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/dmd/mars.c b/dmd/mars.c index 4b00ad07..85a1c1e7 100644 --- a/dmd/mars.c +++ b/dmd/mars.c @@ -341,6 +341,8 @@ int main(int argc, char *argv[]) #error #endif /* linux */ + assert(global.params.os != OSinvalid); + //VersionCondition::addPredefinedGlobalIdent("D_Bits"); VersionCondition::addPredefinedGlobalIdent("all"); @@ -767,6 +769,8 @@ int main(int argc, char *argv[]) assert(0 && "Invalid arch"); } + assert(global.params.cpu != ARCHinvalid); + if (allowForceEndianness && global.params.forceBE) { VersionCondition::addPredefinedGlobalIdent("BigEndian"); global.params.isLE = false; diff --git a/dmd/mars.h b/dmd/mars.h index d224bef9..5d50b61b 100644 --- a/dmd/mars.h +++ b/dmd/mars.h @@ -40,6 +40,7 @@ struct Array; // LLVMDC enum ARCH { + ARCHinvalid, ARCHx86, ARCHx86_64, ARCHppc, @@ -48,6 +49,7 @@ enum ARCH enum OS { + OSinvalid, OSLinux, OSWindows, OSMacOSX