diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2013-04-07 19:09:27 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2013-04-07 19:09:27 +0200 |
commit | af6767d9b60f29222e8e266ad4a2f8064a11fd99 (patch) | |
tree | 5544aade1e182cce29b585633793400da476080e | |
parent | 325d3600adae1a2da62f9a24ac34ad2b47a22f97 (diff) |
community/gsoc/project_ideas/gcc_asan -> open_issues/_san.
-rw-r--r-- | community/gsoc/project_ideas.mdwn | 1 | ||||
-rw-r--r-- | open_issues/_san.mdwn (renamed from community/gsoc/project_ideas/gcc_asan.mdwn) | 30 | ||||
-rw-r--r-- | open_issues/code_analysis.mdwn | 16 |
3 files changed, 26 insertions, 21 deletions
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 5a274cc5..31d1b164 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -110,7 +110,6 @@ other: language_bindings, gccgo, perl_python. --> [[!inline pages="community/gsoc/project_ideas/libcap" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/xattr" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/valgrind" show=0 feeds=no actions=yes]] -[[!inline pages="community/gsoc/project_ideas/gcc_asan" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/driver_glue_code" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/dtrace" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/libdiskfs_locking" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/gcc_asan.mdwn b/open_issues/_san.mdwn index 21a30666..fad53727 100644 --- a/community/gsoc/project_ideas/gcc_asan.mdwn +++ b/open_issues/_san.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2012, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -8,17 +8,35 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -[[!meta title="Port GCC's AddressSanitizer to the Hurd"]] +[[!meta title="Port the GCC and LLVM/clang Sanitizers (*san) to the Hurd"]] [[!tag open_issue_gcc]] -See the entry on the [[open_issues/code_analysis]] page. +GCC and LLVM/clang provide several *sanitizers*, +<http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation>, such +as: -See also the [[valgrind]] task. + * Address Sanitizer, a memory error detector (ASan; `-fsanitize=address`) -A follow-up project is porting GCC's ThreadSanitizer. + [Finding races and memory errors with GCC instrumentation + (AddressSanitizer)](http://gcc.gnu.org/wiki/cauldron2012#Finding_races_and_memory_errors_with_GCC_instrumentation_.28AddressSanitizer.29), + GNU Tools Cauldron 2012. <http://code.google.com/p/address-sanitizer/>. -Possible mentors: Thomas Schwinge (tschwinge) + * Memory Sanitizer, an detector of uninitialized reads (MSan; + `-fsanitize=memory) + + <http://code.google.com/p/memory-sanitizer/> + + * Thread Sanitizer, a data race detector (TSan; `-fsanitize=thread`) + + <http://code.google.com/p/data-race-test/wiki/ThreadSanitizer> + + * Undefined Behavior Sanitizer (UBsan; `-fsanitize=undefined`) + +Porting these to the Hurd is not a trivial task, for they have intimate +knowledge about the operating system kernel they're running on, and from a +first look they reimplement a lot of [[/glibc]] by directly using +[[system_call]]s -- which is basically a no-go on GNU Hurd. # IRC, OFTC, #gcc, 2012-12-11 diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn index 138f3d6c..5219b015 100644 --- a/open_issues/code_analysis.mdwn +++ b/open_issues/code_analysis.mdwn @@ -157,20 +157,8 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks. <youpi> ah, no, the libthreads code properly sets the guard, just for grow-up stacks - * GCC's AddressSanitizer, a memory error detector (ASan; - `-fsanitize=address`) - - [Finding races and memory errors with GCC instrumentation - (AddressSanitizer)](http://gcc.gnu.org/wiki/cauldron2012#Finding_races_and_memory_errors_with_GCC_instrumentation_.28AddressSanitizer.29), - GNU Tools Cauldron 2012. <http://code.google.com/p/address-sanitizer/>. - - Not yet [[ported to the Hurd|community/gsoc/project_ideas/gcc_asan]]. - - * GCC's ThreadSanitizer, a data race detector (TSan; `-fsanitize=thread`) - - <http://code.google.com/p/data-race-test/wiki/ThreadSanitizer> - - Not yet [[ported to the Hurd|community/gsoc/project_ideas/gcc_asan]]. + * GCC, LLVM/clang: [[Address Sanitizer (asan), Memory Sanitizer (msan), + Thread Sanitizer (tasn), Undefined Behavor Sanitizer (ubsan), ...|_san]] * [GCC plugins](http://gcc.gnu.org/wiki/plugins) |