[llvm-commits] [compiler-rt] r163213 - in /compiler-rt/trunk/lib/sanitizer_common: sanitizer_libc.h sanitizer_linux.cc sanitizer_mac.cc sanitizer_symbolizer_linux.cc sanitizer_win.cc

Alexey Samsonov samsonov at google.com
Wed Sep 5 07:48:24 PDT 2012


Author: samsonov
Date: Wed Sep  5 09:48:24 2012
New Revision: 163213

URL: http://llvm.org/viewvc/llvm-project?rev=163213&view=rev
Log:
[Sanitizer] implement readlink as syscall on Linux

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h
    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_symbolizer_linux.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h?rev=163213&r1=163212&r2=163213&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h Wed Sep  5 09:48:24 2012
@@ -60,6 +60,7 @@
 uptr internal_write(fd_t fd, const void *buf, uptr count);
 uptr internal_filesize(fd_t fd);  // -1 on error.
 int internal_dup2(int oldfd, int newfd);
+uptr internal_readlink(const char *path, char *buf, uptr bufsize);
 int internal_snprintf(char *buffer, uptr length, const char *format, ...);
 
 // Threading

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=163213&r1=163212&r2=163213&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Wed Sep  5 09:48:24 2012
@@ -80,6 +80,10 @@
   return syscall(__NR_dup2, oldfd, newfd);
 }
 
+uptr internal_readlink(const char *path, char *buf, uptr bufsize) {
+  return (uptr)syscall(__NR_readlink, path, buf, bufsize);
+}
+
 int internal_sched_yield() {
   return syscall(__NR_sched_yield);
 }

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=163213&r1=163212&r2=163213&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc Wed Sep  5 09:48:24 2012
@@ -71,6 +71,10 @@
   return dup2(oldfd, newfd);
 }
 
+uptr internal_readlink(const char *path, char *buf, uptr bufsize) {
+  return readlink(path, buf, bufsize);
+}
+
 int internal_sched_yield() {
   return sched_yield();
 }

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_linux.cc?rev=163213&r1=163212&r2=163213&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_linux.cc Wed Sep  5 09:48:24 2012
@@ -125,8 +125,8 @@
   module_name.data()[0] = '\0';
   if (data->current_n == 0) {
     // First module is the binary itself.
-    uptr module_name_len = readlink("/proc/self/exe",
-                                    module_name.data(), module_name.size());
+    uptr module_name_len = internal_readlink(
+        "/proc/self/exe", module_name.data(), module_name.size());
     CHECK_NE(module_name_len, (uptr)-1);
     CHECK_LT(module_name_len, module_name.size());
     module_name[module_name_len] = '\0';

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc?rev=163213&r1=163212&r2=163213&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc Wed Sep  5 09:48:24 2012
@@ -179,6 +179,11 @@
   return 0;
 }
 
+uptr internal_readlink(const char *path, char *buf, uptr bufsize) {
+  UNIMPLEMENTED();
+  return 0;
+}
+
 int internal_sched_yield() {
   UNIMPLEMENTED();
   return 0;





More information about the llvm-commits mailing list