summaryrefslogtreecommitdiff
path: root/deps/v8/src/base
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/base')
-rw-r--r--deps/v8/src/base/atomicops.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_arm64_gcc.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_arm_gcc.h6
-rw-r--r--deps/v8/src/base/atomicops_internals_atomicword_compat.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_mac.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_mips64_gcc.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_mips_gcc.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_portable.h4
-rw-r--r--deps/v8/src/base/atomicops_internals_ppc_gcc.h4
-rw-r--r--deps/v8/src/base/atomicops_internals_x86_gcc.cc3
-rw-r--r--deps/v8/src/base/atomicops_internals_x86_gcc.h3
-rw-r--r--deps/v8/src/base/atomicops_internals_x86_msvc.h3
-rw-r--r--deps/v8/src/base/build_config.h4
-rw-r--r--deps/v8/src/base/cpu.cc3
-rw-r--r--deps/v8/src/base/cpu.h3
-rw-r--r--deps/v8/src/base/lazy-instance.h3
-rw-r--r--deps/v8/src/base/logging.h7
-rw-r--r--deps/v8/src/base/macros.h5
-rw-r--r--deps/v8/src/base/once.cc3
-rw-r--r--deps/v8/src/base/once.h3
-rw-r--r--deps/v8/src/base/platform/condition-variable.cc3
-rw-r--r--deps/v8/src/base/platform/condition-variable.h3
-rw-r--r--deps/v8/src/base/platform/elapsed-timer.h3
-rw-r--r--deps/v8/src/base/platform/mutex.cc3
-rw-r--r--deps/v8/src/base/platform/mutex.h3
-rw-r--r--deps/v8/src/base/platform/platform-aix.cc4
-rw-r--r--deps/v8/src/base/platform/platform-cygwin.cc3
-rw-r--r--deps/v8/src/base/platform/platform-freebsd.cc3
-rw-r--r--deps/v8/src/base/platform/platform-linux.cc3
-rw-r--r--deps/v8/src/base/platform/platform-macos.cc3
-rw-r--r--deps/v8/src/base/platform/platform-openbsd.cc3
-rw-r--r--deps/v8/src/base/platform/platform-qnx.cc3
-rw-r--r--deps/v8/src/base/platform/platform-solaris.cc3
-rw-r--r--deps/v8/src/base/platform/platform-win32.cc23
-rw-r--r--deps/v8/src/base/platform/platform.h5
-rw-r--r--deps/v8/src/base/platform/semaphore.cc7
-rw-r--r--deps/v8/src/base/platform/semaphore.h3
-rw-r--r--deps/v8/src/base/platform/time.cc3
-rw-r--r--deps/v8/src/base/platform/time.h3
-rw-r--r--deps/v8/src/base/utils/random-number-generator.cc3
-rw-r--r--deps/v8/src/base/utils/random-number-generator.h3
41 files changed, 111 insertions, 51 deletions
diff --git a/deps/v8/src/base/atomicops.h b/deps/v8/src/base/atomicops.h
index e76b3d02d2..3e628fead9 100644
--- a/deps/v8/src/base/atomicops.h
+++ b/deps/v8/src/base/atomicops.h
@@ -133,7 +133,8 @@ Atomic64 Acquire_Load(volatile const Atomic64* ptr);
Atomic64 Release_Load(volatile const Atomic64* ptr);
#endif // V8_HOST_ARCH_64_BIT
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
// Include our platform specific implementation.
#if defined(THREAD_SANITIZER)
diff --git a/deps/v8/src/base/atomicops_internals_arm64_gcc.h b/deps/v8/src/base/atomicops_internals_arm64_gcc.h
index b01783e6a7..f24050a3e6 100644
--- a/deps/v8/src/base/atomicops_internals_arm64_gcc.h
+++ b/deps/v8/src/base/atomicops_internals_arm64_gcc.h
@@ -311,6 +311,7 @@ inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
return *ptr;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
diff --git a/deps/v8/src/base/atomicops_internals_arm_gcc.h b/deps/v8/src/base/atomicops_internals_arm_gcc.h
index e399657e13..6c8b27ea24 100644
--- a/deps/v8/src/base/atomicops_internals_arm_gcc.h
+++ b/deps/v8/src/base/atomicops_internals_arm_gcc.h
@@ -59,7 +59,8 @@ inline void MemoryBarrier() {
// variant of the target architecture is being used. This tests against
// any known ARMv6 or ARMv7 variant, where it is possible to directly
// use ldrex/strex instructions to implement fast atomic operations.
-#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
+#if defined(__ARM_ARCH_8A__) || \
+ defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
@@ -296,6 +297,7 @@ inline void NoBarrier_Store(volatile Atomic8* ptr, Atomic8 value) {
inline Atomic8 NoBarrier_Load(volatile const Atomic8* ptr) { return *ptr; }
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
diff --git a/deps/v8/src/base/atomicops_internals_atomicword_compat.h b/deps/v8/src/base/atomicops_internals_atomicword_compat.h
index 0530ced2a4..4f758a7299 100644
--- a/deps/v8/src/base/atomicops_internals_atomicword_compat.h
+++ b/deps/v8/src/base/atomicops_internals_atomicword_compat.h
@@ -92,7 +92,8 @@ inline AtomicWord Release_Load(volatile const AtomicWord* ptr) {
reinterpret_cast<volatile const Atomic32*>(ptr));
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // !defined(V8_HOST_ARCH_64_BIT)
diff --git a/deps/v8/src/base/atomicops_internals_mac.h b/deps/v8/src/base/atomicops_internals_mac.h
index 84f9dbcd75..c112506238 100644
--- a/deps/v8/src/base/atomicops_internals_mac.h
+++ b/deps/v8/src/base/atomicops_internals_mac.h
@@ -210,6 +210,7 @@ inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
#endif // defined(__LP64__)
#undef ATOMICOPS_COMPILER_BARRIER
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_MAC_H_
diff --git a/deps/v8/src/base/atomicops_internals_mips64_gcc.h b/deps/v8/src/base/atomicops_internals_mips64_gcc.h
index ccb973c039..85b4e462b9 100644
--- a/deps/v8/src/base/atomicops_internals_mips64_gcc.h
+++ b/deps/v8/src/base/atomicops_internals_mips64_gcc.h
@@ -302,6 +302,7 @@ inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
return *ptr;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
diff --git a/deps/v8/src/base/atomicops_internals_mips_gcc.h b/deps/v8/src/base/atomicops_internals_mips_gcc.h
index 442fdd0f96..8d65db2127 100644
--- a/deps/v8/src/base/atomicops_internals_mips_gcc.h
+++ b/deps/v8/src/base/atomicops_internals_mips_gcc.h
@@ -155,6 +155,7 @@ inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
return *ptr;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
diff --git a/deps/v8/src/base/atomicops_internals_portable.h b/deps/v8/src/base/atomicops_internals_portable.h
index a3a6e74c72..bb99973786 100644
--- a/deps/v8/src/base/atomicops_internals_portable.h
+++ b/deps/v8/src/base/atomicops_internals_portable.h
@@ -132,7 +132,7 @@ inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
return __sync_add_and_fetch(ptr, 0);
}
-}
-} // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_PORTABLE_H_
diff --git a/deps/v8/src/base/atomicops_internals_ppc_gcc.h b/deps/v8/src/base/atomicops_internals_ppc_gcc.h
index daa27b4693..0d16500d1b 100644
--- a/deps/v8/src/base/atomicops_internals_ppc_gcc.h
+++ b/deps/v8/src/base/atomicops_internals_ppc_gcc.h
@@ -162,7 +162,7 @@ inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
}
#endif
-}
-} // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_PPC_GCC_H_
diff --git a/deps/v8/src/base/atomicops_internals_x86_gcc.cc b/deps/v8/src/base/atomicops_internals_x86_gcc.cc
index ab7dd8d091..c0310300a1 100644
--- a/deps/v8/src/base/atomicops_internals_x86_gcc.cc
+++ b/deps/v8/src/base/atomicops_internals_x86_gcc.cc
@@ -47,7 +47,8 @@ struct AtomicOps_x86CPUFeatureStruct AtomicOps_Internalx86CPUFeatures = {
#endif
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
namespace {
diff --git a/deps/v8/src/base/atomicops_internals_x86_gcc.h b/deps/v8/src/base/atomicops_internals_x86_gcc.h
index ec87c42121..55bc44cd8b 100644
--- a/deps/v8/src/base/atomicops_internals_x86_gcc.h
+++ b/deps/v8/src/base/atomicops_internals_x86_gcc.h
@@ -267,7 +267,8 @@ inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
#endif // defined(__x86_64__)
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#undef ATOMICOPS_COMPILER_BARRIER
diff --git a/deps/v8/src/base/atomicops_internals_x86_msvc.h b/deps/v8/src/base/atomicops_internals_x86_msvc.h
index adc40318e9..c37bc78df6 100644
--- a/deps/v8/src/base/atomicops_internals_x86_msvc.h
+++ b/deps/v8/src/base/atomicops_internals_x86_msvc.h
@@ -197,6 +197,7 @@ inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
#endif // defined(_WIN64)
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ATOMICOPS_INTERNALS_X86_MSVC_H_
diff --git a/deps/v8/src/base/build_config.h b/deps/v8/src/base/build_config.h
index 8016218e5c..5f66d21fcf 100644
--- a/deps/v8/src/base/build_config.h
+++ b/deps/v8/src/base/build_config.h
@@ -68,6 +68,10 @@
# endif
#endif
+#if defined(__ARM_ARCH_8A__)
+# define CAN_USE_ARMV8_INSTRUCTIONS 1
+#endif
+
// Target architecture detection. This may be set externally. If not, detect
// in the same way as the host architecture, that is, target the native
diff --git a/deps/v8/src/base/cpu.cc b/deps/v8/src/base/cpu.cc
index 4f587201fa..692494afcb 100644
--- a/deps/v8/src/base/cpu.cc
+++ b/deps/v8/src/base/cpu.cc
@@ -691,4 +691,5 @@ CPU::CPU()
#endif // V8_HOST_ARCH_PPC
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/cpu.h b/deps/v8/src/base/cpu.h
index 1dc0a91f65..ca108fa2bf 100644
--- a/deps/v8/src/base/cpu.h
+++ b/deps/v8/src/base/cpu.h
@@ -145,6 +145,7 @@ class CPU final {
bool is_fp64_mode_;
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_CPU_H_
diff --git a/deps/v8/src/base/lazy-instance.h b/deps/v8/src/base/lazy-instance.h
index a20689a16c..4c0a3f897b 100644
--- a/deps/v8/src/base/lazy-instance.h
+++ b/deps/v8/src/base/lazy-instance.h
@@ -232,6 +232,7 @@ struct LazyDynamicInstance {
CreateTrait, InitOnceTrait, DestroyTrait> type;
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_LAZY_INSTANCE_H_
diff --git a/deps/v8/src/base/logging.h b/deps/v8/src/base/logging.h
index 511ebf1e9c..e4e3f49bfa 100644
--- a/deps/v8/src/base/logging.h
+++ b/deps/v8/src/base/logging.h
@@ -11,7 +11,8 @@
#include "src/base/build_config.h"
-extern "C" void V8_Fatal(const char* file, int line, const char* format, ...);
+extern "C" V8_NORETURN void V8_Fatal(const char* file, int line,
+ const char* format, ...);
// The FATAL, UNREACHABLE and UNIMPLEMENTED macros are useful during
@@ -28,7 +29,7 @@ extern "C" void V8_Fatal(const char* file, int line, const char* format, ...);
V8_Fatal("", 0, "%s", (msg))
#define UNIMPLEMENTED() \
V8_Fatal("", 0, "unimplemented code")
-#define UNREACHABLE() ((void) 0)
+#define UNREACHABLE() V8_Fatal("", 0, "unreachable code")
#endif
@@ -153,6 +154,7 @@ void DumpBacktrace();
#define DCHECK(condition) CHECK(condition)
#define DCHECK_EQ(v1, v2) CHECK_EQ(v1, v2)
#define DCHECK_NE(v1, v2) CHECK_NE(v1, v2)
+#define DCHECK_GT(v1, v2) CHECK_GT(v1, v2)
#define DCHECK_GE(v1, v2) CHECK_GE(v1, v2)
#define DCHECK_LT(v1, v2) CHECK_LT(v1, v2)
#define DCHECK_LE(v1, v2) CHECK_LE(v1, v2)
@@ -163,6 +165,7 @@ void DumpBacktrace();
#define DCHECK(condition) ((void) 0)
#define DCHECK_EQ(v1, v2) ((void) 0)
#define DCHECK_NE(v1, v2) ((void) 0)
+#define DCHECK_GT(v1, v2) ((void) 0)
#define DCHECK_GE(v1, v2) ((void) 0)
#define DCHECK_LT(v1, v2) ((void) 0)
#define DCHECK_LE(v1, v2) ((void) 0)
diff --git a/deps/v8/src/base/macros.h b/deps/v8/src/base/macros.h
index 6dc96f4f3b..f47b0b9d55 100644
--- a/deps/v8/src/base/macros.h
+++ b/deps/v8/src/base/macros.h
@@ -417,7 +417,8 @@ template <>
inline bool is_fundamental<uint8_t>() {
return true;
}
-}
-} // namespace v8::base
+
+} // namespace base
+} // namespace v8
#endif // V8_BASE_MACROS_H_
diff --git a/deps/v8/src/base/once.cc b/deps/v8/src/base/once.cc
index eaabf40d9a..818a9f2e84 100644
--- a/deps/v8/src/base/once.cc
+++ b/deps/v8/src/base/once.cc
@@ -50,4 +50,5 @@ void CallOnceImpl(OnceType* once, PointerArgFunction init_func, void* arg) {
}
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/once.h b/deps/v8/src/base/once.h
index 6bf741d38a..790a8866e0 100644
--- a/deps/v8/src/base/once.h
+++ b/deps/v8/src/base/once.h
@@ -97,6 +97,7 @@ inline void CallOnce(OnceType* once,
}
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_ONCE_H_
diff --git a/deps/v8/src/base/platform/condition-variable.cc b/deps/v8/src/base/platform/condition-variable.cc
index e5b9bd0810..fcd6cf7974 100644
--- a/deps/v8/src/base/platform/condition-variable.cc
+++ b/deps/v8/src/base/platform/condition-variable.cc
@@ -313,4 +313,5 @@ bool ConditionVariable::WaitFor(Mutex* mutex, const TimeDelta& rel_time) {
#endif // V8_OS_POSIX
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/condition-variable.h b/deps/v8/src/base/platform/condition-variable.h
index 9cb706460f..72d6f28507 100644
--- a/deps/v8/src/base/platform/condition-variable.h
+++ b/deps/v8/src/base/platform/condition-variable.h
@@ -113,6 +113,7 @@ typedef LazyStaticInstance<
#define LAZY_CONDITION_VARIABLE_INITIALIZER LAZY_STATIC_INSTANCE_INITIALIZER
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_PLATFORM_CONDITION_VARIABLE_H_
diff --git a/deps/v8/src/base/platform/elapsed-timer.h b/deps/v8/src/base/platform/elapsed-timer.h
index 3fe7e8f720..f9a9ef4361 100644
--- a/deps/v8/src/base/platform/elapsed-timer.h
+++ b/deps/v8/src/base/platform/elapsed-timer.h
@@ -92,6 +92,7 @@ class ElapsedTimer final {
#endif
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_PLATFORM_ELAPSED_TIMER_H_
diff --git a/deps/v8/src/base/platform/mutex.cc b/deps/v8/src/base/platform/mutex.cc
index 8b1e305701..14016058ae 100644
--- a/deps/v8/src/base/platform/mutex.cc
+++ b/deps/v8/src/base/platform/mutex.cc
@@ -188,4 +188,5 @@ bool RecursiveMutex::TryLock() {
return true;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/mutex.h b/deps/v8/src/base/platform/mutex.h
index 18e85de7bc..61df19d66a 100644
--- a/deps/v8/src/base/platform/mutex.h
+++ b/deps/v8/src/base/platform/mutex.h
@@ -210,6 +210,7 @@ class LockGuard final {
DISALLOW_COPY_AND_ASSIGN(LockGuard);
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_PLATFORM_MUTEX_H_
diff --git a/deps/v8/src/base/platform/platform-aix.cc b/deps/v8/src/base/platform/platform-aix.cc
index 03e9aa3717..ea2824d8c3 100644
--- a/deps/v8/src/base/platform/platform-aix.cc
+++ b/deps/v8/src/base/platform/platform-aix.cc
@@ -239,5 +239,5 @@ bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
bool VirtualMemory::HasLazyCommits() { return true; }
-}
-} // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-cygwin.cc b/deps/v8/src/base/platform/platform-cygwin.cc
index 18f151ac29..a49e28723d 100644
--- a/deps/v8/src/base/platform/platform-cygwin.cc
+++ b/deps/v8/src/base/platform/platform-cygwin.cc
@@ -252,4 +252,5 @@ bool VirtualMemory::HasLazyCommits() {
return false;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-freebsd.cc b/deps/v8/src/base/platform/platform-freebsd.cc
index b279e0c926..8b3398039f 100644
--- a/deps/v8/src/base/platform/platform-freebsd.cc
+++ b/deps/v8/src/base/platform/platform-freebsd.cc
@@ -255,4 +255,5 @@ bool VirtualMemory::HasLazyCommits() {
return false;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-linux.cc b/deps/v8/src/base/platform/platform-linux.cc
index 2a2abfeb25..a4b742adc7 100644
--- a/deps/v8/src/base/platform/platform-linux.cc
+++ b/deps/v8/src/base/platform/platform-linux.cc
@@ -388,4 +388,5 @@ bool VirtualMemory::HasLazyCommits() {
return true;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-macos.cc b/deps/v8/src/base/platform/platform-macos.cc
index f16f329fc3..419281f669 100644
--- a/deps/v8/src/base/platform/platform-macos.cc
+++ b/deps/v8/src/base/platform/platform-macos.cc
@@ -249,4 +249,5 @@ bool VirtualMemory::HasLazyCommits() {
return false;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-openbsd.cc b/deps/v8/src/base/platform/platform-openbsd.cc
index 369dd8e1a6..af145e2fca 100644
--- a/deps/v8/src/base/platform/platform-openbsd.cc
+++ b/deps/v8/src/base/platform/platform-openbsd.cc
@@ -286,4 +286,5 @@ bool VirtualMemory::HasLazyCommits() {
return false;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-qnx.cc b/deps/v8/src/base/platform/platform-qnx.cc
index b16652886e..3c90467627 100644
--- a/deps/v8/src/base/platform/platform-qnx.cc
+++ b/deps/v8/src/base/platform/platform-qnx.cc
@@ -312,4 +312,5 @@ bool VirtualMemory::HasLazyCommits() {
return false;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-solaris.cc b/deps/v8/src/base/platform/platform-solaris.cc
index 7e07f1a1e2..a2ce2c13f6 100644
--- a/deps/v8/src/base/platform/platform-solaris.cc
+++ b/deps/v8/src/base/platform/platform-solaris.cc
@@ -208,4 +208,5 @@ bool VirtualMemory::HasLazyCommits() {
return false;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/platform-win32.cc b/deps/v8/src/base/platform/platform-win32.cc
index a73dc523c4..6afa6f9c37 100644
--- a/deps/v8/src/base/platform/platform-win32.cc
+++ b/deps/v8/src/base/platform/platform-win32.cc
@@ -751,9 +751,19 @@ void* OS::GetRandomMmapAddr() {
static void* RandomizedVirtualAlloc(size_t size, int action, int protection) {
LPVOID base = NULL;
+ static BOOL use_aslr = -1;
+#ifdef V8_HOST_ARCH_32_BIT
+ // Don't bother randomizing on 32-bit hosts, because they lack the room and
+ // don't have viable ASLR anyway.
+ if (use_aslr == -1 && !IsWow64Process(GetCurrentProcess(), &use_aslr))
+ use_aslr = FALSE;
+#else
+ use_aslr = TRUE;
+#endif
- if (protection == PAGE_EXECUTE_READWRITE || protection == PAGE_NOACCESS) {
- // For exectutable pages try and randomize the allocation address
+ if (use_aslr &&
+ (protection == PAGE_EXECUTE_READWRITE || protection == PAGE_NOACCESS)) {
+ // For executable pages try and randomize the allocation address
for (size_t attempts = 0; base == NULL && attempts < 3; ++attempts) {
base = VirtualAlloc(OS::GetRandomMmapAddr(), size, action, protection);
}
@@ -823,6 +833,9 @@ void OS::Abort() {
}
// Make the MSVCRT do a silent abort.
raise(SIGABRT);
+
+ // Make sure function doesn't return.
+ abort();
}
@@ -1133,9 +1146,9 @@ static std::vector<OS::SharedLibraryAddress> LoadSymbols(
WideCharToMultiByte(CP_UTF8, 0, module_entry.szExePath, -1, &lib_name[0],
lib_name_length, NULL, NULL);
result.push_back(OS::SharedLibraryAddress(
- lib_name, reinterpret_cast<unsigned int>(module_entry.modBaseAddr),
- reinterpret_cast<unsigned int>(module_entry.modBaseAddr +
- module_entry.modBaseSize)));
+ lib_name, reinterpret_cast<uintptr_t>(module_entry.modBaseAddr),
+ reinterpret_cast<uintptr_t>(module_entry.modBaseAddr +
+ module_entry.modBaseSize)));
cont = _Module32NextW(snapshot, &module_entry);
}
CloseHandle(snapshot);
diff --git a/deps/v8/src/base/platform/platform.h b/deps/v8/src/base/platform/platform.h
index 2d08ecbd7f..89d6225ede 100644
--- a/deps/v8/src/base/platform/platform.h
+++ b/deps/v8/src/base/platform/platform.h
@@ -194,7 +194,7 @@ class OS {
static void Sleep(TimeDelta interval);
// Abort the current process.
- static void Abort();
+ V8_NORETURN static void Abort();
// Debug break.
static void DebugBreak();
@@ -479,6 +479,7 @@ class Thread {
DISALLOW_COPY_AND_ASSIGN(Thread);
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_PLATFORM_PLATFORM_H_
diff --git a/deps/v8/src/base/platform/semaphore.cc b/deps/v8/src/base/platform/semaphore.cc
index 0679c00d95..9e7b59a1d2 100644
--- a/deps/v8/src/base/platform/semaphore.cc
+++ b/deps/v8/src/base/platform/semaphore.cc
@@ -75,6 +75,10 @@ bool Semaphore::WaitFor(const TimeDelta& rel_time) {
Semaphore::Semaphore(int count) {
DCHECK(count >= 0);
+#if V8_LIBC_GLIBC
+ // sem_init in glibc prior to 2.1 does not zero out semaphores.
+ memset(&native_handle_, 0, sizeof(native_handle_));
+#endif
int result = sem_init(&native_handle_, 0, count);
DCHECK_EQ(0, result);
USE(result);
@@ -201,4 +205,5 @@ bool Semaphore::WaitFor(const TimeDelta& rel_time) {
#endif // V8_OS_MACOSX
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/semaphore.h b/deps/v8/src/base/platform/semaphore.h
index fa131018b3..18700d1ba0 100644
--- a/deps/v8/src/base/platform/semaphore.h
+++ b/deps/v8/src/base/platform/semaphore.h
@@ -96,6 +96,7 @@ struct LazySemaphore {
#define LAZY_SEMAPHORE_INITIALIZER LAZY_DYNAMIC_INSTANCE_INITIALIZER
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_PLATFORM_SEMAPHORE_H_
diff --git a/deps/v8/src/base/platform/time.cc b/deps/v8/src/base/platform/time.cc
index 5162182b7a..e847d54de8 100644
--- a/deps/v8/src/base/platform/time.cc
+++ b/deps/v8/src/base/platform/time.cc
@@ -644,4 +644,5 @@ bool TimeTicks::KernelTimestampAvailable() {
#endif // V8_OS_WIN
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/platform/time.h b/deps/v8/src/base/platform/time.h
index 5fc01e88fd..29300e5404 100644
--- a/deps/v8/src/base/platform/time.h
+++ b/deps/v8/src/base/platform/time.h
@@ -398,6 +398,7 @@ inline TimeTicks operator+(const TimeDelta& delta, const TimeTicks& ticks) {
return ticks + delta;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_PLATFORM_TIME_H_
diff --git a/deps/v8/src/base/utils/random-number-generator.cc b/deps/v8/src/base/utils/random-number-generator.cc
index 29a48ffb05..4cf06a9047 100644
--- a/deps/v8/src/base/utils/random-number-generator.cc
+++ b/deps/v8/src/base/utils/random-number-generator.cc
@@ -136,4 +136,5 @@ void RandomNumberGenerator::SetSeed(int64_t seed) {
seed_ = (seed ^ kMultiplier) & kMask;
}
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
diff --git a/deps/v8/src/base/utils/random-number-generator.h b/deps/v8/src/base/utils/random-number-generator.h
index 62c6b27b1b..10f2789c7d 100644
--- a/deps/v8/src/base/utils/random-number-generator.h
+++ b/deps/v8/src/base/utils/random-number-generator.h
@@ -94,6 +94,7 @@ class RandomNumberGenerator final {
int64_t seed_;
};
-} } // namespace v8::base
+} // namespace base
+} // namespace v8
#endif // V8_BASE_UTILS_RANDOM_NUMBER_GENERATOR_H_