From af6767d9b60f29222e8e266ad4a2f8064a11fd99 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 7 Apr 2013 19:09:27 +0200 Subject: community/gsoc/project_ideas/gcc_asan -> open_issues/_san. --- community/gsoc/project_ideas.mdwn | 1 - community/gsoc/project_ideas/gcc_asan.mdwn | 46 --------------------- open_issues/_san.mdwn | 64 ++++++++++++++++++++++++++++++ open_issues/code_analysis.mdwn | 16 +------- 4 files changed, 66 insertions(+), 61 deletions(-) delete mode 100644 community/gsoc/project_ideas/gcc_asan.mdwn create mode 100644 open_issues/_san.mdwn 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/community/gsoc/project_ideas/gcc_asan.mdwn deleted file mode 100644 index 21a30666..00000000 --- a/community/gsoc/project_ideas/gcc_asan.mdwn +++ /dev/null @@ -1,46 +0,0 @@ -[[!meta copyright="Copyright © 2012 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 -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -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"]] - -[[!tag open_issue_gcc]] - -See the entry on the [[open_issues/code_analysis]] page. - -See also the [[valgrind]] task. - -A follow-up project is porting GCC's ThreadSanitizer. - -Possible mentors: Thomas Schwinge (tschwinge) - - -# IRC, OFTC, #gcc, 2012-12-11 - - hmm, is libtsan not multi-libbed? - richi: it only works on x86_64 right now - ugh - richi: so, it is multilibbed, but only built on multilibs and - targets which are supported - richi: as it often needs lots of RAM, it is probably not going to - be supported on 32-bit targets at all - richi: no reason not to support it on say ppc64 or sparc64 or s390x - I guess, just needs work - jakub: where is asan supported? everywhere? - richi: but then, I haven't even read what exactly libtsan does, - only looked at the atomics in there, and did the GCC side from what I - knew should be instrumented - richi: asan is right now supported on x86_64/i686, ppc/ppc64, - perhaps partially x86 darwin (don't care) and in theory arm (nobody - tested) - richi: porting isn't that hard, but the library isn't as clean as - it would be desirable portability wise - richi: that said, I don't want to spend as much time as I've done - so far on it, and in the time I'll allocate for it optimizing the code it - generates is higher on the todo list than ports to other targets diff --git a/open_issues/_san.mdwn b/open_issues/_san.mdwn new file mode 100644 index 00000000..fad53727 --- /dev/null +++ b/open_issues/_san.mdwn @@ -0,0 +1,64 @@ +[[!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 +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +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 the GCC and LLVM/clang Sanitizers (*san) to the Hurd"]] + +[[!tag open_issue_gcc]] + +GCC and LLVM/clang provide several *sanitizers*, +, such +as: + + * Address Sanitizer, 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. . + + * Memory Sanitizer, an detector of uninitialized reads (MSan; + `-fsanitize=memory) + + + + * Thread Sanitizer, a data race detector (TSan; `-fsanitize=thread`) + + + + * 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 + + hmm, is libtsan not multi-libbed? + richi: it only works on x86_64 right now + ugh + richi: so, it is multilibbed, but only built on multilibs and + targets which are supported + richi: as it often needs lots of RAM, it is probably not going to + be supported on 32-bit targets at all + richi: no reason not to support it on say ppc64 or sparc64 or s390x + I guess, just needs work + jakub: where is asan supported? everywhere? + richi: but then, I haven't even read what exactly libtsan does, + only looked at the atomics in there, and did the GCC side from what I + knew should be instrumented + richi: asan is right now supported on x86_64/i686, ppc/ppc64, + perhaps partially x86 darwin (don't care) and in theory arm (nobody + tested) + richi: porting isn't that hard, but the library isn't as clean as + it would be desirable portability wise + richi: that said, I don't want to spend as much time as I've done + so far on it, and in the time I'll allocate for it optimizing the code it + generates is higher on the todo list than ports to other targets 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. 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. . - - Not yet [[ported to the Hurd|community/gsoc/project_ideas/gcc_asan]]. - - * GCC's ThreadSanitizer, a data race detector (TSan; `-fsanitize=thread`) - - - - 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) -- cgit v1.2.3