From 50f3a993e7fa1da0f7893f106fe7ec0e590422f0 Mon Sep 17 00:00:00 2001 From: "bmeurer@chromium.org" Date: Wed, 28 Aug 2013 08:35:04 +0000 Subject: [PATCH] Fix compilation with recent MinGW64 versions. Don't check for WIN32 define. Use V8_OS_* macros whenever possible, and if not use _WIN32. BUG=v8:2300 R=yangguo@chromium.org Review URL: https://codereview.chromium.org/23687003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/disasm-arm.cc | 3 --- src/ast.h | 4 ---- src/flag-definitions.h | 2 +- src/gdb-jit.cc | 2 +- src/ia32/regexp-macro-assembler-ia32.cc | 4 ++-- src/mips/disasm-mips.cc | 3 --- src/platform.h | 29 +++++++++++------------------ src/preparser.h | 5 ----- src/v8dll-main.cc | 6 +++--- src/win32-headers.h | 1 + src/x64/regexp-macro-assembler-x64.cc | 4 ++-- test/cctest/test-api.cc | 16 ++++++++-------- 12 files changed, 29 insertions(+), 50 deletions(-) diff --git a/src/arm/disasm-arm.cc b/src/arm/disasm-arm.cc index ecdf638..acffaa3 100644 --- a/src/arm/disasm-arm.cc +++ b/src/arm/disasm-arm.cc @@ -50,9 +50,6 @@ #include #include #include -#ifndef WIN32 -#include -#endif #include "v8.h" diff --git a/src/ast.h b/src/ast.h index 0fac145..bf76cfa 100644 --- a/src/ast.h +++ b/src/ast.h @@ -123,10 +123,6 @@ namespace internal { STATEMENT_NODE_LIST(V) \ EXPRESSION_NODE_LIST(V) -#ifdef WIN32 -#undef Yield -#endif - // Forward declarations class AstConstructionVisitor; template class AstNodeFactory; diff --git a/src/flag-definitions.h b/src/flag-definitions.h index 2d6863b..0ea5a32 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -620,7 +620,7 @@ DEFINE_int(testing_int_flag, 13, "testing_int_flag") DEFINE_float(testing_float_flag, 2.5, "float-flag") DEFINE_string(testing_string_flag, "Hello, world!", "string-flag") DEFINE_int(testing_prng_seed, 42, "Seed used for threading test randomness") -#ifdef WIN32 +#ifdef _WIN32 DEFINE_string(testing_serialization_file, "C:\\Windows\\Temp\\serdes", "file in which to testing_serialize heap") #else diff --git a/src/gdb-jit.cc b/src/gdb-jit.cc index 74db807..664673f 100644 --- a/src/gdb-jit.cc +++ b/src/gdb-jit.cc @@ -1872,7 +1872,7 @@ static void DestroyCodeEntry(JITCodeEntry* entry) { static void RegisterCodeEntry(JITCodeEntry* entry, bool dump_if_enabled, const char* name_hint) { -#if defined(DEBUG) && !defined(WIN32) +#if defined(DEBUG) && !V8_OS_WIN static int file_num = 0; if (FLAG_gdbjit_dump && dump_if_enabled) { static const int kMaxFileNameSize = 64; diff --git a/src/ia32/regexp-macro-assembler-ia32.cc b/src/ia32/regexp-macro-assembler-ia32.cc index dfcc869..7d9e2f7 100644 --- a/src/ia32/regexp-macro-assembler-ia32.cc +++ b/src/ia32/regexp-macro-assembler-ia32.cc @@ -711,7 +711,7 @@ Handle RegExpMacroAssemblerIA32::GetCode(Handle source) { // position registers. __ mov(Operand(ebp, kInputStartMinusOne), eax); -#ifdef WIN32 +#if V8_OS_WIN // Ensure that we write to each stack page, in order. Skipping a page // on Windows can cause segmentation faults. Assuming page size is 4k. const int kPageSize = 4096; @@ -721,7 +721,7 @@ Handle RegExpMacroAssemblerIA32::GetCode(Handle source) { i += kRegistersPerPage) { __ mov(register_location(i), eax); // One write every page. } -#endif // WIN32 +#endif // V8_OS_WIN Label load_char_start_regexp, start_regexp; // Load newline if index is at start, previous character otherwise. diff --git a/src/mips/disasm-mips.cc b/src/mips/disasm-mips.cc index 708df39..691df94 100644 --- a/src/mips/disasm-mips.cc +++ b/src/mips/disasm-mips.cc @@ -50,9 +50,6 @@ #include #include #include -#ifndef WIN32 -#include -#endif #include "v8.h" diff --git a/src/platform.h b/src/platform.h index 384ae15..10a7e2c 100644 --- a/src/platform.h +++ b/src/platform.h @@ -44,6 +44,12 @@ #ifndef V8_PLATFORM_H_ #define V8_PLATFORM_H_ +#include + +#include "lazy-instance.h" +#include "utils.h" +#include "v8globals.h" + #ifdef __sun # ifndef signbit namespace std { @@ -55,19 +61,12 @@ int signbit(double x); // GCC specific stuff #ifdef __GNUC__ -// Needed for va_list on at least MinGW and Android. -#include - #define __GNUC_VERSION__ (__GNUC__ * 10000 + __GNUC_MINOR__ * 100) #endif // __GNUC__ - -// Windows specific stuff. -#ifdef WIN32 - // Microsoft Visual C++ specific stuff. -#ifdef _MSC_VER +#if V8_CC_MSVC #include "win32-headers.h" #include "win32-math.h" @@ -76,7 +75,7 @@ int strncasecmp(const char* s1, const char* s2, int n); inline int lrint(double flt) { int intgr; -#if defined(V8_TARGET_ARCH_IA32) +#if V8_TARGET_ARCH_IA32 __asm { fld flt fistp intgr @@ -91,18 +90,12 @@ inline int lrint(double flt) { return intgr; } -#endif // _MSC_VER +#endif // V8_CC_MSVC -#ifndef __CYGWIN__ // Random is missing on both Visual Studio and MinGW. +#if V8_CC_MSVC || V8_CC_MINGW int random(); -#endif - -#endif // WIN32 - -#include "lazy-instance.h" -#include "utils.h" -#include "v8globals.h" +#endif // V8_CC_MSVC || V8_CC_MINGW namespace v8 { namespace internal { diff --git a/src/preparser.h b/src/preparser.h index faddecc..9358d6b 100644 --- a/src/preparser.h +++ b/src/preparser.h @@ -104,11 +104,6 @@ class DuplicateFinder { }; -#ifdef WIN32 -#undef Yield -#endif - - class PreParser { public: enum PreParseResult { diff --git a/src/v8dll-main.cc b/src/v8dll-main.cc index 49d8689..7f6c9f9 100644 --- a/src/v8dll-main.cc +++ b/src/v8dll-main.cc @@ -30,8 +30,8 @@ #undef USING_V8_SHARED #include "../include/v8.h" -#ifdef WIN32 -#include // NOLINT +#if V8_OS_WIN +#include "win32-headers.h" extern "C" { BOOL WINAPI DllMain(HANDLE hinstDLL, @@ -41,4 +41,4 @@ BOOL WINAPI DllMain(HANDLE hinstDLL, return TRUE; } } -#endif +#endif // V8_OS_WIN diff --git a/src/win32-headers.h b/src/win32-headers.h index 2b5d7d7..c83937c 100644 --- a/src/win32-headers.h +++ b/src/win32-headers.h @@ -96,3 +96,4 @@ #undef GetObject #undef CreateMutex #undef CreateSemaphore +#undef Yield diff --git a/src/x64/regexp-macro-assembler-x64.cc b/src/x64/regexp-macro-assembler-x64.cc index dcd317c..49d9de6 100644 --- a/src/x64/regexp-macro-assembler-x64.cc +++ b/src/x64/regexp-macro-assembler-x64.cc @@ -761,7 +761,7 @@ Handle RegExpMacroAssemblerX64::GetCode(Handle source) { // position registers. __ movq(Operand(rbp, kInputStartMinusOne), rax); -#ifdef WIN32 +#if V8_OS_WIN // Ensure that we have written to each stack page, in order. Skipping a page // on Windows can cause segmentation faults. Assuming page size is 4k. const int kPageSize = 4096; @@ -771,7 +771,7 @@ Handle RegExpMacroAssemblerX64::GetCode(Handle source) { i += kRegistersPerPage) { __ movq(register_location(i), rax); // One write every page. } -#endif // WIN32 +#endif // V8_OS_WIN // Initialize code object pointer. __ Move(code_object_pointer(), masm_.CodeObject()); diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc index c4e1366..ccf1cbd 100644 --- a/test/cctest/test-api.cc +++ b/test/cctest/test-api.cc @@ -25,17 +25,17 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#include - -#ifndef WIN32 -#include // kill -#include // getpid -#endif // WIN32 +#include +#include #include #include #include "v8.h" +#if V8_OS_POSIX +#include // NOLINT +#endif + #include "api.h" #include "arguments.h" #include "cctest.h" @@ -20031,7 +20031,7 @@ THREADED_TEST(JSONParseNumber) { } -#ifndef WIN32 +#if V8_OS_POSIX class ThreadInterruptTest { public: ThreadInterruptTest() : sem_(NULL), sem_value_(0) { } @@ -20273,4 +20273,4 @@ TEST(AccessCheckThrows) { v8::V8::SetFailedAccessCheckCallbackFunction(NULL); } -#endif // WIN32 +#endif // V8_OS_POSIX -- 2.7.4