[llvm-commits] [compiler-rt] r162671 - in /compiler-rt/trunk/lib: asan/asan_stack.cc sanitizer_common/sanitizer_linux.cc sanitizer_common/sanitizer_mac.cc sanitizer_common/sanitizer_posix.cc sanitizer_common/sanitizer_procmaps.h tsan/rtl/tsan_platform_linux.cc
Alexey Samsonov
samsonov at google.com
Mon Aug 27 06:48:48 PDT 2012
Author: samsonov
Date: Mon Aug 27 08:48:48 2012
New Revision: 162671
URL: http://llvm.org/viewvc/llvm-project?rev=162671&view=rev
Log:
[Sanitizer] Rename ProcessMaps to MemoryMappingLayout and fix Windows build by providing stub implementation
Modified:
compiler-rt/trunk/lib/asan/asan_stack.cc
compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps.h
compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc
Modified: compiler-rt/trunk/lib/asan/asan_stack.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_stack.cc?rev=162671&r1=162670&r2=162671&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_stack.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_stack.cc Mon Aug 27 08:48:48 2012
@@ -44,7 +44,7 @@
}
void AsanStackTrace::PrintStack(uptr *addr, uptr size) {
- ProcessMaps proc_maps;
+ MemoryMappingLayout proc_maps;
uptr frame_num = 0;
for (uptr i = 0; i < size && addr[i]; i++) {
uptr pc = patch_pc(addr[i]);
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=162671&r1=162670&r2=162671&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Mon Aug 27 08:48:48 2012
@@ -96,7 +96,7 @@
CHECK_EQ(getrlimit(RLIMIT_STACK, &rl), 0);
// Find the mapping that contains a stack variable.
- ProcessMaps proc_maps;
+ MemoryMappingLayout proc_maps;
uptr start, end, offset;
uptr prev_end = 0;
while (proc_maps.Next(&start, &end, &offset, 0, 0)) {
@@ -161,7 +161,7 @@
}
// ----------------- sanitizer_procmaps.h
-ProcessMaps::ProcessMaps() {
+MemoryMappingLayout::MemoryMappingLayout() {
proc_self_maps_buff_len_ =
ReadFileToBuffer("/proc/self/maps", &proc_self_maps_buff_,
&proc_self_maps_buff_mmaped_size_, 1 << 26);
@@ -170,11 +170,11 @@
Reset();
}
-ProcessMaps::~ProcessMaps() {
+MemoryMappingLayout::~MemoryMappingLayout() {
UnmapOrDie(proc_self_maps_buff_, proc_self_maps_buff_mmaped_size_);
}
-void ProcessMaps::Reset() {
+void MemoryMappingLayout::Reset() {
current_ = proc_self_maps_buff_;
}
@@ -207,8 +207,8 @@
return c >= '0' && c <= '9';
}
-bool ProcessMaps::Next(uptr *start, uptr *end, uptr *offset,
- char filename[], uptr filename_size) {
+bool MemoryMappingLayout::Next(uptr *start, uptr *end, uptr *offset,
+ char filename[], uptr filename_size) {
char *last = proc_self_maps_buff_ + proc_self_maps_buff_len_;
if (current_ >= last) return false;
uptr dummy;
@@ -253,10 +253,10 @@
return true;
}
-// Gets the object name and the offset by walking ProcessMaps.
-bool ProcessMaps::GetObjectNameAndOffset(uptr addr, uptr *offset,
- char filename[],
- uptr filename_size) {
+// Gets the object name and the offset by walking MemoryMappingLayout.
+bool MemoryMappingLayout::GetObjectNameAndOffset(uptr addr, uptr *offset,
+ char filename[],
+ uptr filename_size) {
return IterateForObjectNameAndOffset(addr, offset, filename, filename_size);
}
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc?rev=162671&r1=162670&r2=162671&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc Mon Aug 27 08:48:48 2012
@@ -108,11 +108,11 @@
// ----------------- sanitizer_procmaps.h
-ProcessMaps::ProcessMaps() {
+MemoryMappingLayout::MemoryMappingLayout() {
Reset();
}
-ProcessMaps::~ProcessMaps() {
+MemoryMappingLayout::~MemoryMappingLayout() {
}
// More information about Mach-O headers can be found in mach-o/loader.h
@@ -129,11 +129,12 @@
// Because these fields are taken from the images as is, one needs to add
// _dyld_get_image_vmaddr_slide() to get the actual addresses at runtime.
-void ProcessMaps::Reset() {
+void MemoryMappingLayout::Reset() {
// Count down from the top.
// TODO(glider): as per man 3 dyld, iterating over the headers with
// _dyld_image_count is thread-unsafe. We need to register callbacks for
- // adding and removing images which will invalidate the ProcessMaps state.
+ // adding and removing images which will invalidate the MemoryMappingLayout
+ // state.
current_image_ = _dyld_image_count();
current_load_cmd_count_ = -1;
current_load_cmd_addr_ = 0;
@@ -148,7 +149,7 @@
// segment.
// Note that the segment addresses are not necessarily sorted.
template<u32 kLCSegment, typename SegmentCommand>
-bool ProcessMaps::NextSegmentLoad(
+bool MemoryMappingLayout::NextSegmentLoad(
uptr *start, uptr *end, uptr *offset,
char filename[], uptr filename_size) {
const char* lc = current_load_cmd_addr_;
@@ -168,8 +169,8 @@
return false;
}
-bool ProcessMaps::Next(uptr *start, uptr *end, uptr *offset,
- char filename[], uptr filename_size) {
+bool MemoryMappingLayout::Next(uptr *start, uptr *end, uptr *offset,
+ char filename[], uptr filename_size) {
for (; current_image_ >= 0; current_image_--) {
const mach_header* hdr = _dyld_get_image_header(current_image_);
if (!hdr) continue;
@@ -219,9 +220,9 @@
return false;
}
-bool ProcessMaps::GetObjectNameAndOffset(uptr addr, uptr *offset,
- char filename[],
- uptr filename_size) {
+bool MemoryMappingLayout::GetObjectNameAndOffset(uptr addr, uptr *offset,
+ char filename[],
+ uptr filename_size) {
return IterateForObjectNameAndOffset(addr, offset, filename, filename_size);
}
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc?rev=162671&r1=162670&r2=162671&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc Mon Aug 27 08:48:48 2012
@@ -103,7 +103,7 @@
// several worker threads on Mac, which aren't expected to map big chunks of
// memory).
bool MemoryRangeIsAvailable(uptr range_start, uptr range_end) {
- ProcessMaps procmaps;
+ MemoryMappingLayout procmaps;
uptr start, end;
while (procmaps.Next(&start, &end,
/*offset*/0, /*filename*/0, /*filename_size*/0)) {
@@ -114,7 +114,7 @@
}
void DumpProcessMap() {
- ProcessMaps proc_maps;
+ MemoryMappingLayout proc_maps;
uptr start, end;
const sptr kBufSize = 4095;
char *filename = (char*)MmapOrDie(kBufSize, __FUNCTION__);
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps.h?rev=162671&r1=162670&r2=162671&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps.h Mon Aug 27 08:48:48 2012
@@ -18,9 +18,18 @@
namespace __sanitizer {
-class ProcessMaps {
+#ifdef _WIN32
+class MemoryMappingLayout {
+ MemoryMappingLayout() {
+ UNIMPLEMENTED();
+ }
+};
+
+#else // _WIN32
+
+class MemoryMappingLayout {
public:
- ProcessMaps();
+ MemoryMappingLayout();
bool Next(uptr *start, uptr *end, uptr *offset,
char filename[], uptr filename_size);
void Reset();
@@ -28,7 +37,7 @@
// address 'addr'. Returns true on success.
bool GetObjectNameAndOffset(uptr addr, uptr *offset,
char filename[], uptr filename_size);
- ~ProcessMaps();
+ ~MemoryMappingLayout();
private:
// Default implementation of GetObjectNameAndOffset.
@@ -77,6 +86,8 @@
#endif
};
+#endif // _WIN32
+
} // namespace __sanitizer
#endif // SANITIZER_PROCMAPS_H
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc?rev=162671&r1=162670&r2=162671&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc Mon Aug 27 08:48:48 2012
@@ -135,7 +135,7 @@
#ifndef TSAN_GO
static void CheckPIE() {
// Ensure that the binary is indeed compiled with -pie.
- ProcessMaps proc_maps;
+ MemoryMappingLayout proc_maps;
uptr start, end;
if (proc_maps.Next(&start, &end,
/*offset*/0, /*filename*/0, /*filename_size*/0)) {
More information about the llvm-commits
mailing list