diff options
| author | 2014-06-05 20:48:42 -0700 | |
|---|---|---|
| committer | 2014-06-10 23:19:29 -0700 | |
| commit | c5f17732d8144491c642776b6b48c85dfadf4b52 (patch) | |
| tree | 811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1 /runtime/gc/allocator/rosalloc.cc | |
| parent | 08654d40cdd256f6a6c8619bf06d04d4c819714a (diff) | |
Remove deprecated WITH_HOST_DALVIK.
Bug: 13751317
Fix the Mac build:
- disable x86 selector removal that causes OS/X 10.9 kernel panics,
- madvise don't need does zero memory on the Mac, factor into MemMap
routine,
- switch to the elf.h in elfutils to avoid Linux kernel dependencies,
- we can't rely on exclusive_owner_ being available from other pthread
libraries so maintain our own when futexes aren't available (we
can't rely on the OS/X 10.8 hack any more),
- fix symbol naming in assembly code,
- work around C library differences,
- disable backtrace in DumpNativeStack to avoid a broken libbacktrace
dependency,
- disable main thread signal handling logic,
- align the stack in stub_test,
- use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.
Not all host tests are passing on the Mac with this change. dex2oat
works as does running HelloWorld.
Change-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3
Diffstat (limited to 'runtime/gc/allocator/rosalloc.cc')
| -rw-r--r-- | runtime/gc/allocator/rosalloc.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/gc/allocator/rosalloc.cc b/runtime/gc/allocator/rosalloc.cc index 10b88b3506..55262f2359 100644 --- a/runtime/gc/allocator/rosalloc.cc +++ b/runtime/gc/allocator/rosalloc.cc @@ -1507,6 +1507,9 @@ bool RosAlloc::Trim() { if (madvise_size > 0) { DCHECK_ALIGNED(madvise_begin, kPageSize); DCHECK_EQ(RoundUp(madvise_size, kPageSize), madvise_size); + if (!kMadviseZeroes) { + memset(madvise_begin, 0, madvise_size); + } CHECK_EQ(madvise(madvise_begin, madvise_size, MADV_DONTNEED), 0); } if (madvise_begin - zero_begin) { @@ -2117,6 +2120,9 @@ size_t RosAlloc::ReleasePages() { start = reinterpret_cast<byte*>(fpr) + kPageSize; } byte* end = reinterpret_cast<byte*>(fpr) + fpr_size; + if (!kMadviseZeroes) { + memset(start, 0, end - start); + } CHECK_EQ(madvise(start, end - start, MADV_DONTNEED), 0); reclaimed_bytes += fpr_size; size_t num_pages = fpr_size / kPageSize; |