summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2012-12-14 11:32:23 +0100
committerThomas Schwinge <thomas@codesourcery.com>2012-12-14 11:32:23 +0100
commitd67f6589bf710235ad56731c4c06a75cfad75462 (patch)
treeeb24a17604d8c090848603d14409a504e9191b7d
parent573d363a3458b8a37e6ec929c778dae8abf90fab (diff)
open_issues/gcc: a1d48e100791bc67ff355e0931a604e767c827b7 (2012-12-10; be3860ba8df48cca3253da4f02fd2d42d856ce80 (2012-12-10))
-rw-r--r--community/gsoc/project_ideas.mdwn5
-rw-r--r--community/gsoc/project_ideas/gcc_asan.mdwn21
-rw-r--r--open_issues/automatic_backtraces_when_assertions_hit.mdwn2
-rw-r--r--open_issues/boehm_gc.mdwn2
-rw-r--r--open_issues/code_analysis.mdwn13
-rw-r--r--open_issues/formal_verification.mdwn5
-rw-r--r--open_issues/gcc.mdwn120
m---------toolchain/logs10
8 files changed, 118 insertions, 60 deletions
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index 8ce10ffa..b85087ad 100644
--- a/community/gsoc/project_ideas.mdwn
+++ b/community/gsoc/project_ideas.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 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
@@ -109,6 +109,7 @@ other: language_bindings, gnat, 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
new file mode 100644
index 00000000..229c46ec
--- /dev/null
+++ b/community/gsoc/project_ideas/gcc_asan.mdwn
@@ -0,0 +1,21 @@
+[[!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)
diff --git a/open_issues/automatic_backtraces_when_assertions_hit.mdwn b/open_issues/automatic_backtraces_when_assertions_hit.mdwn
index f6bf5856..df7294e9 100644
--- a/open_issues/automatic_backtraces_when_assertions_hit.mdwn
+++ b/open_issues/automatic_backtraces_when_assertions_hit.mdwn
@@ -76,4 +76,4 @@ In context of the [[ext2fs_libports_reference_counting_assertion]].
# GCC's libbacktrace
-Introduced in commit ecd3459e7bb829202601e3274411135a15c64dde.
+Introduced in GCC commit ecd3459e7bb829202601e3274411135a15c64dde.
diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn
index 6ab39b2e..7f860bba 100644
--- a/open_issues/boehm_gc.mdwn
+++ b/open_issues/boehm_gc.mdwn
@@ -359,8 +359,6 @@ restults of GNU/Linux and GNU/Hurd look very similar.
# TODO
- * Port stuff to [[GCC]], and test it there.
-
* What are other applications to test Boehm GC? Also especially in
combination with [[/libpthread]] and dynamic loading of shared libraries?
diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn
index b3908243..8c604e3f 100644
--- a/open_issues/code_analysis.mdwn
+++ b/open_issues/code_analysis.mdwn
@@ -137,11 +137,20 @@ 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 (ASan; `-faddress-sanitizer`)
+ * 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.
+ 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]].
* Input fuzzing
diff --git a/open_issues/formal_verification.mdwn b/open_issues/formal_verification.mdwn
index b7db76ee..474670c3 100644
--- a/open_issues/formal_verification.mdwn
+++ b/open_issues/formal_verification.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 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
@@ -15,6 +16,8 @@ Especially in the field of [[DSL]]s, this is used for asserting program codes'
correctness, as explained in {{$microkernel/barrelfish#fof_plos09}}, for
example.
+See also [[code_analysis]].
+
[[!toc]]
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index 574a743b..f5022c16 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -33,12 +33,12 @@ example. Especially all the compiler magic is all the same.
git checkout reviewed
git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstream/trunk
-i
-/^commit |^Merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:
+/^commit |^merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:
-->
-Last reviewed up to the [[Git mirror's 769bf18a20ee2540ca7601cdafabd62b18b9751b
-(2012-10-01) sources|source_repositories/gcc]].
+Last reviewed up to the [[Git mirror's be3860ba8df48cca3253da4f02fd2d42d856ce80
+(2012-12-10) sources|source_repositories/gcc]].
<http://gcc.gnu.org/install/configure.html> has documentation for the
`configure` switches.
@@ -301,12 +301,39 @@ Last reviewed up to the [[Git mirror's 769bf18a20ee2540ca7601cdafabd62b18b9751b
"20110609002620.GA16719@const.famille.thibault.fr"]]. commit
026e608ecebcb2a6193971006a85276307d79b00.
+ * 549e2197b118efb2d947aaa15d445b05c1b5ed62 `Import the asan runtime library
+ into GCC tree`. Linux-specific things:
+ `ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX`, `ASAN_LINUX`, `ASAN_POSIX`,
+ `libsanitizer/asan/asan_linux.cc`,
+ `libsanitizer/asan/asan_malloc_linux.cc`,
+ `libsanitizer/asan/asan_posix.cc`,
+ `libsanitizer/interception/interception.h`,
+ `libsanitizer/interception/interception_linux.cc`,
+ `libsanitizer/interception/interception_linux.h`,
+ `libsanitizer/sanitizer_common/sanitizer_allocator.cc`,
+ `libsanitizer/sanitizer_common/sanitizer_linux.cc`,
+ `libsanitizer/sanitizer_common/sanitizer_posix.cc`,
+ `libsanitizer/sanitizer_common/sanitizer_procmaps.h`,
+ `libsanitizer/sanitizer_common/sanitizer_symbolizer_linux.cc`.
+ 4afab99bf0fe2d6905a9fa9d6ab886ca102312df `Enable libsanitizer just on x86
+ linux for now`. 492e75a7336b4dbfe38207ea3abf8d5bd72376a9 `Move
+ libsanitizer configure logic to subdirectory`.
+ 6aea389d84c2172668af5f108e2b17e131120d0b `Add STATIC_LIBASAN_LIBS for
+ -static-libasan`. Further commits later on.
+
+ * 9cf754572854d9d9cd43c277eb7afb12e4911358 `Import tsan runtime from
+ llvm`. Linux-specific things: `libsanitizer/tsan/tsan_platform.h`,
+ `libsanitizer/tsan/tsan_platform_linux.cc`,
+ `libsanitizer/tsan/tsan_symbolize_addr2line_linux.cc`.
+ a96132f29aa3dfe94141a87537f62ea73ce0fc19 `Set TSAN_SUPPORTED=yes for
+ x86_64/i686-linux for 64-bit multilib`. Further commits later on.
+
# Build
Here's a log of a GCC build run; this is from our [[Git repository's
-b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26;
-769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01))
+a1d48e100791bc67ff355e0931a604e767c827b7 (2012-12-10;
+be3860ba8df48cca3253da4f02fd2d42d856ce80 (2012-12-10))
sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
$ export LC_ALL=C
@@ -319,8 +346,8 @@ sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
Different hosts may default to different shells and compiler versions; thus
harmonized.
-This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
-13.25 h on coulomb.SCHWINGE.
+This takes up around 3.5 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
+14.25 h on coulomb.SCHWINGE.
<!--
@@ -338,42 +365,6 @@ This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
Addressed in Debian glibc.
- * DFP
-
- Addressed in *hurd/decimal_floating_point* branch.
-
- +configure: WARNING: decimal float is not supported for this target, ignored
-
- ... and later on:
-
- -checking for decimal floating point... bid
- +checking for decimal floating point... configure: WARNING: decimal float is not supported for this target, ignored
- +dpd
-
- ... and later on:
-
- -checking whether decimal floating point is supported... yes
- +checking whether decimal floating point is supported... no
- +configure: WARNING: decimal float is not supported for this target, ignored
-
- * `libstdc++-v3/acinclude.m4`: ISO/IEC TR 24733
-
- -checking for ISO/IEC TR 24733 ... yes
- +checking for ISO/IEC TR 24733 ... no
-
- * `--enable-decimal-float`, `--enable-fixed-point`, `--with-long-double-128`
-
- `configure: WARNING: decimal float is not supported for this target,
- ignored`
-
- * `libgcc/configure.ac` [might
- need](http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00315.html) to be
- aligned for us to the `*linux*` cases. As well as at the end of
- `libgcc/config.host`. Check.
-
- checking whether decimal floating point is supported... no
- checking whether fixed-point is supported... no
-
* `host-linux.c` vs. `host-default.c`
* *fixincludes* stuff
@@ -508,13 +499,34 @@ This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
TODO.
+ * 769bf18a20ee2540ca7601cdafabd62b18b9751b..be3860ba8df48cca3253da4f02fd2d42d856ce80
+
+ Both GNU/Linux and GNU/Hurd:
+
+ checking whether gcc-4.6 supports -fno-exceptions... yes
+ checking whether gcc-4.6 supports -fno-rtti... yes
+ +checking whether gcc-4.6 supports ... yes
+ checking valgrind.h usability... no
+ checking valgrind.h presence... no
+
+ checking for ld... /usr/bin/ld
+ +[...]/hurd/master/gcc/configure: 21384: test: xld: unexpected operator
+ +[...]/hurd/master/gcc/configure: 21385: test: xld: unexpected operator
+ checking whether we are using gold... no
+
+ checking for unwind.h... yes
+ checking for _Unwind_Backtrace... yes
+ +checking for option... yes
+ checking whether gcc-4.6 supports -W... yes
+ checking whether gcc-4.6 supports -Wall... yes
+
# Install
$ make install 2>&1 | tee log_install
[...]
-This takes up around 850 MiB, and needs roughly 4 min on kepler.SCHWINGE and 35
+This takes up around 1 GiB, and needs roughly 5 min on kepler.SCHWINGE and 37
min on coulomb.SCHWINGE.
@@ -595,10 +607,10 @@ coulomb.SCHWINGE:
$ make -k check-target 2>&1 | tee log_test_4_check-target
[...]
-This needs roughly 6.75 h on kepler.SCHWINGE and 3.5 h (`check-fixincludes`,
-`gcc/check-ada`) + 10 h (`gcc/check-c`) + 3.75 h (`gcc/check-c++`) + 5.5 h
+This needs roughly 7 h on kepler.SCHWINGE and 4 h (`check-fixincludes`,
+`gcc/check-ada`) + 12.5 h (`gcc/check-c`) + 4.25 h (`gcc/check-c++`) + 5.5 h
(`gcc/check-fortran`, `gcc/check-java`, `gcc/check-lto`, `gcc/check-objc`) +
-8.25 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 31 h on
+9 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 35.25 h on
coulomb.SCHWINGE.
@@ -623,6 +635,20 @@ coulomb.SCHWINGE.
769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)), there are
regressions (FAILs) in libgomp execution tests on coulomb.SCHWINGE.
+ * 769bf18a20ee2540ca7601cdafabd62b18b9751b..be3860ba8df48cca3253da4f02fd2d42d856ce80
+
+ On GNU/Hurd:
+
+ Running [...]/hurd/master/gcc/testsuite/g++.dg/tls/tls.exp ...
+ +FAIL: g++.dg/tls/thread_local3.C -std=gnu++11 execution test
+ +FAIL: g++.dg/tls/thread_local3g.C -std=gnu++11 execution test
+ +FAIL: g++.dg/tls/thread_local4.C -std=gnu++11 execution test
+ +FAIL: g++.dg/tls/thread_local4g.C -std=gnu++11 execution test
+ +FAIL: g++.dg/tls/thread_local5.C -std=gnu++11 execution test
+ +FAIL: g++.dg/tls/thread_local5g.C -std=gnu++11 execution test
+
+ They used to PASS.
+
* TODO
diff --git a/toolchain/logs b/toolchain/logs
-Subproject 272397686eea60669290da0add796ca601b1a2e
+Subproject 568e51125eea2b68cf4bfa9ce0bef99af9bea5d