diff options
author | Ian Rogers <irogers@google.com> | 2014-06-05 20:48:42 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-06-10 23:19:29 -0700 |
commit | c5f17732d8144491c642776b6b48c85dfadf4b52 (patch) | |
tree | 811daa488ae5ee5dfd9b3b73bd210bc1506e5ca1 /runtime/mem_map.cc | |
parent | 08654d40cdd256f6a6c8619bf06d04d4c819714a (diff) | |
download | art-c5f17732d8144491c642776b6b48c85dfadf4b52.zip art-c5f17732d8144491c642776b6b48c85dfadf4b52.tar.gz art-c5f17732d8144491c642776b6b48c85dfadf4b52.tar.bz2 |
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/mem_map.cc')
-rw-r--r-- | runtime/mem_map.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/runtime/mem_map.cc b/runtime/mem_map.cc index 22a61a2..81a8623 100644 --- a/runtime/mem_map.cc +++ b/runtime/mem_map.cc @@ -473,6 +473,18 @@ MemMap* MemMap::RemapAtEnd(byte* new_end, const char* tail_name, int tail_prot, return new MemMap(tail_name, actual, tail_size, actual, tail_base_size, tail_prot); } +void MemMap::MadviseDontNeedAndZero() { + if (base_begin_ != nullptr || base_size_ != 0) { + if (!kMadviseZeroes) { + memset(base_begin_, 0, base_size_); + } + int result = madvise(base_begin_, base_size_, MADV_DONTNEED); + if (result == -1) { + PLOG(WARNING) << "madvise failed"; + } + } +} + bool MemMap::Protect(int prot) { if (base_begin_ == nullptr && base_size_ == 0) { prot_ = prot; |