summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/meetings/fosdem_2013.mdwn2
-rw-r--r--contributing.mdwn9
-rw-r--r--llvm.mdwn22
-rw-r--r--microkernel/mach/thread.mdwn4
-rw-r--r--open_issues/llvm.mdwn157
-rw-r--r--open_issues/mmap_write-only.mdwn3
-rw-r--r--open_issues/select_vs_signals.mdwn13
-rw-r--r--source_repositories/llvm.mdwn17
m---------toolchain/logs12
9 files changed, 222 insertions, 17 deletions
diff --git a/community/meetings/fosdem_2013.mdwn b/community/meetings/fosdem_2013.mdwn
index 4acf0c90..ac678b5e 100644
--- a/community/meetings/fosdem_2013.mdwn
+++ b/community/meetings/fosdem_2013.mdwn
@@ -21,7 +21,7 @@ Bruxelles.
[[!table class="table_style_1" data="""
"Name","Attending","Arrival","Return","Share room with us"
-"Samuel Thibault","yes","","","yes"
+"Samuel Thibault","yes","friday 5pm","monday 10am","no"
"""]]
diff --git a/contributing.mdwn b/contributing.mdwn
index ba0d3c90..b8a28088 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -187,6 +187,15 @@ the other hand, there are people (you?) who enjoy documenting technical
matters, so don't hesitate to [[contact_us]] if technical documentation shall
be your contribution to GNU Hurd development.
+A good start is probably to just start using the Hurd, and play with
+the translators. In the process you will probably find that some of the
+documentations are missing some details, are outdated, etc. That is were you can
+start contributing for instance.
+
+As an advice: do not start yet another documentation from scratch. There are
+already a lot of tutorials in the wilds, and they are almost all completely
+outdated. Rather contribute to the existing official documentation: this wiki,
+the documentation in the Hurd source, the Debian Hurd port pages.
## Web Pages
diff --git a/llvm.mdwn b/llvm.mdwn
new file mode 100644
index 00000000..d214881a
--- /dev/null
+++ b/llvm.mdwn
@@ -0,0 +1,22 @@
+[[!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="LLVM"]]
+
+
+# <http://www.llvm.org/>
+
+
+# [[Maintenance|open_issues/llvm]]
+
+
+# Open Issues
+
+[[!inline pages=tag/open_issue_llvm raw=yes feeds=no]]
diff --git a/microkernel/mach/thread.mdwn b/microkernel/mach/thread.mdwn
index e27bb117..ccce643e 100644
--- a/microkernel/mach/thread.mdwn
+++ b/microkernel/mach/thread.mdwn
@@ -12,8 +12,8 @@ License|/fdl]]."]]"""]]
A Mach *thread* belongs to exactly one [[task]], and is the means of execution.
The task supplies the resources.
-Mach threads are implemented inside the [[kernel]], as opposed to other
-systems' user-level thread packages.
+Mach threads are implemented inside the [[kernel]], like in many operating
+systems, unlike some user-level thread packages (aka "green" threads).
A thread (theoretically) runs concurrently with all the other threads of a
system. If the system provides several processors, they can be used for
diff --git a/open_issues/llvm.mdwn b/open_issues/llvm.mdwn
index d0b7b91d..ac52b7c8 100644
--- a/open_issues/llvm.mdwn
+++ b/open_issues/llvm.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 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
@@ -8,10 +8,155 @@ 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]]."]]"""]]
-[[!tag open_issue_llvm open_issue_porting]]
+[[!tag open_issue_llvm]]
-[LLVM](http://www.llvm.org/) needs a little bit of porting for being usable on
-GNU/Hurd.
+Here's what's to be done for maintaining [[/LLVM]].
-Apparently this has already been done within Debian;
-<http://anonscm.debian.org/viewvc/pkg-llvm/llvm/trunk/debian/patches/>.
+Apart from the target-specific configuration machinery, there shouldn't be any
+major differences within LLVM between the GNU/Hurd and GNU/Linux ports, for
+example. Especially all the compiler magic is all the same.
+
+[[!toc levels=2]]
+
+
+# [[General information|/llvm]]
+
+
+# [[Sources|source_repositories/llvm]]
+
+
+# Configuration
+
+<!--
+
+For all of llvm, clang, compiler-rt, test-suite:
+
+git checkout reviewed
+git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstream/master
+-i
+/^commit |^merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:
+
+-->
+
+Last reviewed up to the [[Git mirror's sources|source_repositories/llvm]]: llvm
+llvmf85ec865f0f803273ab38e3b1a19fe185c7e88ac (2012-12-23), clang
+debc018be39668db5cefb6418cd210aa716d6e7a (2012-12-23), compiler-rt
+cab6133c5d7478e96882cb54467e29b3716c0d89 (2012-12-23), test-suite
+1451ba86fc87d067ed3d244352e4025a8134b0a7 (2012-12-23).
+
+ * Configure fragments that have `*linux*` cases might/should often contain
+ those for us (and GNU/k*BSD) as well.
+
+ * <http://anonscm.debian.org/viewvc/pkg-llvm/llvm/trunk/debian/patches/>.
+
+ * [low] Some `PATH_MAX`/`MAXPATHLEN` things.
+
+ * Review `gs:` usage in `[llvm]/lib/Target/X86/`, `[llvm]/test/CodeGen/X86/`,
+ `[llvm]/test/MC/X86/`.
+./clang/tschwinge/Hank_Mobley/docs/LanguageExtensions.rst: movl %gs:(%eax), %eax
+./clang/tschwinge/Hank_Mobley/test/Sema/asm.c: asm volatile ("movb %%gs:%P2,%b0" : "=q"(b) : "0"(0), "i"(5L));
+
+
+# Build
+
+Here's a log of a LLVM build run; this is from our [[Git repository's
+sources|source_repositories/llvm]], llvm
+llvmf85ec865f0f803273ab38e3b1a19fe185c7e88ac (2012-12-23), clang
+debc018be39668db5cefb6418cd210aa716d6e7a (2012-12-23), compiler-rt
+cab6133c5d7478e96882cb54467e29b3716c0d89 (2012-12-23), test-suite
+1451ba86fc87d067ed3d244352e4025a8134b0a7 (2012-12-23), run on kepler.SCHWINGE
+and coulomb.SCHWINGE.
+
+ $ export LC_ALL=C
+ $ (cd ../Horace_Silver/ && ln -sfn ../../../clang/tschwinge/Hank_Mobley tools/clang)
+ $ (cd ../Horace_Silver/ && ln -sfn ../../../compiler-rt/tschwinge/Doug_Watkins projects/compiler-rt)
+ $ (cd ../Horace_Silver/ && ln -sfn ../../../test-suite/tschwinge/Art_Blakey projects/test-suite)
+ $ ../Horace_Silver/configure --prefix="$PWD".install --enable-optimized SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 2>&1 | tee log_build
+ $ make VERBOSE=1 2>&1 | tee log_build_
+
+Different hosts may default to different shells and compiler versions; thus
+harmonized.
+
+Passing `--enable-debug-symbols`, the GNU/Hurd build terminates with a SIGBUS
+when linking `Release+Debug+Asserts/bin/clang` (which is bigger than 500 MiB
+for the corresponding GNU/Linux build).
+
+This takes up around 3 GiB, and needs roughly 1.75 h on kepler.SCHWINGE and
+4.25 h on coulomb.SCHWINGE.
+
+<!--
+
+ $ (make VERBOSE=1 && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make VERBOSE=1 install && touch .go-test) 2>&1 | tee log_install && test -f .go-test && { make -k VERBOSE=1 LIT_ARGS='-v --threads=1' check-all 2>&1 | tee log_test_check-all; make -k -C projects/test-suite/ 2>&1 | tee log_test_test-suite; }
+
+-->
+
+
+## Analysis
+
+ $ toolchain/logs/process llvm build
+
+ -checking type of operating system we're going to host on... Linux
+ -checking type of operating system we're going to target... Linux
+ +checking type of operating system we're going to host on... GNU
+ +checking type of operating system we're going to target... GNU
+
+ -checking mach/mach.h usability... no
+ -checking mach/mach.h presence... no
+ -checking for mach/mach.h... no
+ +checking mach/mach.h usability... yes
+ +checking mach/mach.h presence... yes
+ +checking for mach/mach.h... yes
+
+ -checking for mmap of files... yes
+ +checking for mmap of files... no
+ checking if /dev/zero is needed for mmap... no
+ +configure: WARNING: mmap() of files required but not found
+
+ Due to [[mmap_write-only]].
+
+ -checking type of operating system we're going to target... Linux
+ +checking type of operating system we're going to target... Unknown
+
+ +In file included from [...]/tschwinge/Horace_Silver/lib/Support/Process.cpp:29:0:
+ +[...]/tschwinge/Horace_Silver/lib/Support/Unix/Process.inc: In function 'unsigned int getColumns(int)':
+ +[...]/tschwinge/Horace_Silver/lib/Support/Unix/Process.inc:220:21: warning: enumeral and non-enumeral type in conditional expression [enabled b
+
+ include/llvm/Config/*
+ Makefile.config
+
+TODO
+
+
+# Install
+
+ $ make VERBOSE=1 install 2>&1 | tee log_install
+
+This takes up around 350 MiB, and needs roughly 1 min on kepler.SCHWINGE and 12
+min on coulomb.SCHWINGE.
+
+
+## Analysis
+
+ $ toolchain/logs/process llvm install
+
+TODO
+
+
+# Testsuite
+
+ $ make -k VERBOSE=1 LIT_ARGS='-v --threads=1' check-all 2>&1 | tee log_test_check-all
+ $ make -k -C projects/test-suite/ 2>&1 | tee log_test_test-suite
+
+`LIT_ARGS=-v` is default for `VERBOSE=1`, but we want only one worker thread,
+for stable order and usable test output log.
+
+This needs roughly 10 min (`check-all`) + 145 min (test-suite) = 155 min on
+kepler.SCHWINGE and 40 min (`check-all`) + 80 min (test-suite) = 120 min on
+coulomb.SCHWINGE.
+
+
+## Analysis
+
+ $ toolchain/logs/process llvm test
+
+TODO
diff --git a/open_issues/mmap_write-only.mdwn b/open_issues/mmap_write-only.mdwn
index 467274c5..b64e8641 100644
--- a/open_issues/mmap_write-only.mdwn
+++ b/open_issues/mmap_write-only.mdwn
@@ -8,7 +8,8 @@ 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]]."]]"""]]
-[[!tag open_issue_glibc]]
+[[!tag open_issue_glibc open_issue_llvm]]
+
# IRC, freenode, #hurd, 2011-12-14
diff --git a/open_issues/select_vs_signals.mdwn b/open_issues/select_vs_signals.mdwn
index bbd69d00..927b888e 100644
--- a/open_issues/select_vs_signals.mdwn
+++ b/open_issues/select_vs_signals.mdwn
@@ -20,6 +20,19 @@ IRC, freenode, #hurd, 2011-04-02
<youpi> the sudo bug is select() not being able to get interrupted by
signals
+IRC, freenode, #hurd, 2012-01-05
+
+ <youpi> it's a know issue in select
+ <youpi> it's not interruptible by a SIGALRM for instance
+ <youpi> which is what ntpdate uses
+ <youpi> when __io_select is used, it *is* interruptible
+ <youpi> but when __mach_msg is used, it is *not* interruptible
+ <youpi> it happens that by luck, ntpdate uses just one fd, and thus it's __io_select which is used, and thus it gets an interruption after 1s (instead of after 60s, the timeout)
+ <youpi> with braunr's patch, it's __mach_msg which is used to wait, and thus the interruption doesn't happen, and we have to wait 60s, the timeout...
+ <youpi> so braunr's patch is still correct, it's the __mach_msg call which we do need to make interruptible (it was already on the todolist)
+
+Proposed patch on http://cygwin.com/ml/libc-alpha/2013-01/msg00189.html
+
---
See also [[select]] and [[select_bogus_fd]].
diff --git a/source_repositories/llvm.mdwn b/source_repositories/llvm.mdwn
new file mode 100644
index 00000000..9788aae1
--- /dev/null
+++ b/source_repositories/llvm.mdwn
@@ -0,0 +1,17 @@
+[[!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]]."]]"""]]
+
+There are repositories for maintenance of [[/LLVM]] for the Hurd's needs:
+`grubber:~tschwinge/tmp/llvm/git`, `grubber:~tschwinge/tmp/llvm/clang/git`,
+`grubber:~tschwinge/tmp/llvm/compiler-rt/git`,
+`grubber:~tschwinge/tmp/llvm/test-suite/git`.
+
+These repositories are based on the [upstream Git mirror
+repositories](http://llvm.org/docs/GettingStarted.html#git-mirror).
diff --git a/toolchain/logs b/toolchain/logs
-Subproject b2218016e588eed4e81eeb85b35f58bcd784da4
+Subproject eaa077b495ce4ba717317c37a7673f6b5adb489