[compiler-rt] r175622 - [Sanitizer] use raw syscall instead of _exit() function on Linux
Alexander Potapenko
glider at google.com
Wed Feb 20 09:18:24 PST 2013
Have you just renamed Exit to internal__exit?
On Feb 20, 2013 5:56 PM, "Alexey Samsonov" <samsonov at google.com> wrote:
> Author: samsonov
> Date: Wed Feb 20 07:54:32 2013
> New Revision: 175622
>
> URL: http://llvm.org/viewvc/llvm-project?rev=175622&view=rev
> Log:
> [Sanitizer] use raw syscall instead of _exit() function on Linux
>
> Modified:
> compiler-rt/trunk/lib/asan/asan_report.cc
> compiler-rt/trunk/lib/asan/asan_rtl.cc
> compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc
> compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
> 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_posix.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/asan/asan_report.cc
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_report.cc?rev=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_report.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_report.cc Wed Feb 20 07:54:32 2013
> @@ -435,9 +435,9 @@ class ScopedInErrorReport {
> // an error report will finish doing it.
> SleepForSeconds(Max(100, flags()->sleep_before_dying + 1));
> }
> - // If we're still not dead for some reason, use raw Exit() instead
> of
> + // If we're still not dead for some reason, use raw _exit() instead
> of
> // Die() to bypass any additional checks.
> - Exit(flags()->exitcode);
> + internal__exit(flags()->exitcode);
> }
> ASAN_ON_ERROR();
> reporting_thread_tid = asanThreadRegistry().GetCurrentTidOrInvalid();
>
> Modified: compiler-rt/trunk/lib/asan/asan_rtl.cc
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_rtl.cc?rev=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_rtl.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_rtl.cc Wed Feb 20 07:54:32 2013
> @@ -51,7 +51,7 @@ static void AsanDie() {
> death_callback();
> if (flags()->abort_on_error)
> Abort();
> - Exit(flags()->exitcode);
> + internal__exit(flags()->exitcode);
> }
>
> static void AsanCheckFailed(const char *file, int line, const char *cond,
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc?rev=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc Wed Feb 20
> 07:54:32 2013
> @@ -45,7 +45,7 @@ void NORETURN Die() {
> if (DieCallback) {
> DieCallback();
> }
> - Exit(1);
> + internal__exit(1);
> }
>
> static CheckFailedCallbackType CheckFailedCallback;
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h?rev=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h Wed Feb 20
> 07:54:32 2013
> @@ -140,7 +140,6 @@ void SortArray(uptr *array, uptr size);
>
> // Exit
> void NORETURN Abort();
> -void NORETURN Exit(int exitcode);
> void NORETURN Die();
> void NORETURN SANITIZER_INTERFACE_ATTRIBUTE
> CheckFailed(const char *file, int line, const char *cond, u64 v1, u64 v2);
>
> 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=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_libc.h Wed Feb 20
> 07:54:32 2013
> @@ -45,6 +45,7 @@ char *internal_strrchr(const char *s, in
> char *internal_strstr(const char *haystack, const char *needle);
> // Works only for base=10 and doesn't set errno.
> s64 internal_simple_strtoll(const char *nptr, char **endptr, int base);
> +int internal_snprintf(char *buffer, uptr length, const char *format, ...);
>
> // Return true if all bytes in [mem, mem+size) are zero.
> // Optimized for the case when the result is true.
> @@ -70,14 +71,15 @@ fd_t internal_open(const char *filename,
>
> uptr internal_read(fd_t fd, void *buf, uptr count);
> uptr internal_write(fd_t fd, const void *buf, uptr count);
> +
> +// OS
> uptr internal_filesize(fd_t fd); // -1 on error.
> int internal_stat(const char *path, void *buf);
> int internal_lstat(const char *path, void *buf);
> int internal_fstat(fd_t fd, void *buf);
> -
> 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, ...);
> +void NORETURN internal__exit(int exitcode);
>
> // Threading
> int internal_sched_yield();
>
> 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=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Wed Feb 20
> 07:54:32 2013
> @@ -140,6 +140,11 @@ int internal_sched_yield() {
> return syscall(__NR_sched_yield);
> }
>
> +void internal__exit(int exitcode) {
> + syscall(__NR_exit_group, exitcode);
> + Die(); // Unreachable.
> +}
> +
> // ----------------- sanitizer_common.h
> bool FileExists(const char *filename) {
> #if SANITIZER_LINUX_USES_64BIT_SYSCALLS
>
> 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=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc Wed Feb 20
> 07:54:32 2013
> @@ -106,6 +106,10 @@ int internal_sched_yield() {
> return sched_yield();
> }
>
> +void internal__exit(int exitcode) {
> + _exit(exitcode);
> +}
> +
> // ----------------- sanitizer_common.h
> bool FileExists(const char *filename) {
> struct stat st;
>
> 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=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc Wed Feb 20
> 07:54:32 2013
> @@ -209,10 +209,6 @@ void SleepForMillis(int millis) {
> usleep(millis * 1000);
> }
>
> -void Exit(int exitcode) {
> - _exit(exitcode);
> -}
> -
> void Abort() {
> abort();
> }
>
> 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=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_linux.cc
> (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_linux.cc
> Wed Feb 20 07:54:32 2013
> @@ -99,7 +99,7 @@ bool StartSymbolizerSubprocess(const cha
> for (int fd = getdtablesize(); fd > 2; fd--)
> internal_close(fd);
> execl(path_to_symbolizer, path_to_symbolizer, (char*)0);
> - Exit(1);
> + internal__exit(1);
> }
>
> // Continue execution in parent process.
>
> 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=175622&r1=175621&r2=175622&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc Wed Feb 20
> 07:54:32 2013
> @@ -167,10 +167,6 @@ void SleepForMillis(int millis) {
> Sleep(millis);
> }
>
> -void Exit(int exitcode) {
> - _exit(exitcode);
> -}
> -
> void Abort() {
> abort();
> _exit(-1); // abort is not NORETURN on Windows.
> @@ -257,6 +253,10 @@ int internal_sched_yield() {
> return 0;
> }
>
> +void internal__exit(int exitcode) {
> + _exit(exitcode);
> +}
> +
> // ---------------------- BlockingMutex ---------------- {{{1
> const uptr LOCK_UNINITIALIZED = 0;
> const uptr LOCK_READY = (uptr)-1;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130220/b64cfc3d/attachment.html>
More information about the llvm-commits
mailing list