summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/gsoc/project_ideas/file_locking.mdwn9
-rw-r--r--contributing.mdwn2
-rw-r--r--contributing/web_pages/news/moth_next.mdwn47
-rw-r--r--hurd/dde/guide.mdwn56
-rw-r--r--hurd/running/qemu.mdwn10
-rw-r--r--hurd/status.mdwn2
-rw-r--r--hurd/translator/procfs/jkoenig/discussion.mdwn5
-rw-r--r--mailing_lists.mdwn9
-rw-r--r--mailing_lists/commit-hurd.mdwn (renamed from hurd/faq/top.mdwn)9
-rw-r--r--open_issues/binutils.mdwn19
-rw-r--r--open_issues/binutils/log_build.diff56
-rw-r--r--open_issues/binutils/log_install.diff4
-rw-r--r--open_issues/binutils/sum.diff34
-rw-r--r--open_issues/binutils/sum_hurd32
-rw-r--r--open_issues/binutils/sum_linux32
-rw-r--r--open_issues/gcc.mdwn47
-rw-r--r--open_issues/gdb.mdwn7
-rw-r--r--open_issues/glibc.mdwn136
-rw-r--r--open_issues/glibc_madvise_vs_static_linking.mdwn10
-rw-r--r--open_issues/gnat.mdwn9
-rw-r--r--open_issues/libtool.mdwn19
-rw-r--r--open_issues/translators_set_up_by_untrusted_users.mdwn4
-rw-r--r--shortcuts.mdwn7
-rw-r--r--sidebar.mdwn13
-rw-r--r--toolchain/cross-gnu.mdwn2
-rw-r--r--user/Maksym_Planeta.mdwn48
-rw-r--r--user/jkoenig.mdwn12
-rw-r--r--user/jkoenig/java.mdwn15
-rw-r--r--user/jkoenig/java/report.mdwn136
-rw-r--r--user/tlecarrour.mdwn51
-rw-r--r--user/tlecarrour/auto-apt.mdwn97
-rw-r--r--user/tlecarrour/gphoto2.mdwn53
-rw-r--r--user/tlecarrour/libgphoto2.mdwn51
-rw-r--r--user/tlecarrour/memstat.mdwn145
-rw-r--r--user/tlecarrour/patch_life_cycle.mdwn90
-rw-r--r--user/tlecarrour/pidgin-microblog.mdwn57
-rw-r--r--user/tlecarrour/porting_guide_for_dummies.mdwn230
-rw-r--r--user/tlecarrour/rng-tools.mdwn58
-rw-r--r--user/tlecarrour/sakura.mdwn77
-rw-r--r--user/tlecarrour/schism.mdwn116
-rw-r--r--user/tlecarrour/shush.mdwn75
-rw-r--r--user/tlecarrour/sitecopy.mdwn73
-rw-r--r--user/tlecarrour/suckless-tools.mdwn79
-rw-r--r--user/tlecarrour/up-imapproxy.mdwn59
44 files changed, 1914 insertions, 188 deletions
diff --git a/community/gsoc/project_ideas/file_locking.mdwn b/community/gsoc/project_ideas/file_locking.mdwn
index 0159b091..206d4d7d 100644
--- a/community/gsoc/project_ideas/file_locking.mdwn
+++ b/community/gsoc/project_ideas/file_locking.mdwn
@@ -1,12 +1,13 @@
-[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 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]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
[[!meta title="Fix and Complete File Locking Support"]]
@@ -23,6 +24,8 @@ which needs a complete implementation.
This task will require digging into parts of the code to understand how file
locking works on the Hurd. Only general programming skills are required.
+A preliminary patch is [[!GNU_Savannah_patch 332 desc="available"]].
+
Possible mentors: Samuel Thibault (youpi)
Exercise: Find one of the existing issues, either by looking at the task/bug
diff --git a/contributing.mdwn b/contributing.mdwn
index 825239e1..97ae450b 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -146,7 +146,7 @@ I'll have to think about it some more.
* Install qemu-kvm via your distros packages.
* Download the [qemu image](http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz): `wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz`
* Unpack it: `tar xf debian-hurd.img.tar.gz`
-* Run it: `qemu-kvm debian-hurd.img -m 512 -no-kvm-irqchip` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster)
+* Run it: `qemu-kvm debian-hurd.img -m 512 -no-kvm-irqchip` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ).
* login as root
* `apt-get update`
* `apt-get install -y git mercurial emacs vim`
diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn
index 9b0844bd..81a15264 100644
--- a/contributing/web_pages/news/moth_next.mdwn
+++ b/contributing/web_pages/news/moth_next.mdwn
@@ -30,8 +30,11 @@ This month [hurd hacker] [item]
<http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00079.html> -- Bouju
Alain submitted a patch to suport cpuinfo in the /proc interface
-rbraun committed the last patch to mplanetas branch of the slab allocator
-work, for integration.
+Richard Braun committed the last patch to mplanetas branch of the slab allocator
+work, for integration. http://lists.gnu.org/archive/html/bug-hurd/2011-12/msg00046.html
+
+
+
IRC, freenode, #hurd, 2011-11-14:
@@ -49,6 +52,7 @@ Features:
(22:32:42) braunr: but even "slower" here is completely negligible
**New porter box: exodar***
+Richard Brauh added Exodar, a new porter box. It is faster and more reliable, which facilitates testing and bug hunting: exodar.debian.net
I/O Path Documentation [[hurd/io_path/]]
@@ -56,10 +60,25 @@ Debugging:
- Pino Toscano: recvfrom() with null http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00161.html
- Maksym Planeta: tmpfs http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00125.html http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00118.html
-- Samuel Thibault: libtool http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00073.html mknod http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00070.html
+- Samuel Thibault: libtool http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00073.html mknod http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00070.html Fix POSIX 2008 visibility http://lists.gnu.org/archive/html/bug-hurd/2011-12/msg00004.html sudo setresuid http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645285
- Jim Meyering: gnu tools with user id 4294967295 http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00094.html
- Paul Eggert: Add error-checking on GNU http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00130.html
--
+
+Porting:
+
+- Sergio Lopez: webkitgtk+: http://lists.debian.org/debian-hurd/2011/10/msg00025.html
+- Svante Signell: pax: http://lists.debian.org/debian-hurd/2011/10/msg00105.html abiword http://lists.debian.org/debian-hurd/2011/11/msg00035.html syslog-ng http://lists.debian.org/debian-hurd/2011/11/msg00060.html ecl http://lists.debian.org/debian-hurd/2011/11/msg00058.html fakeroot http://lists.debian.org/debian-hurd/2011/12/msg00022.html daemon http://lists.debian.org/debian-hurd/2011/12/msg00025.html procps http://lists.debian.org/debian-hurd/2011/12/msg00046.html
+- Samuel Thibault: packagekit: http://lists.debian.org/debian-hurd/2011/10/msg00071.html evolution http://lists.debian.org/debian-hurd/2011/10/msg00070.html emacs23 http://lists.debian.org/debian-hurd/2011/12/msg00018.html gcc-4.7 http://lists.debian.org/debian-hurd/2011/12/msg00065.html iceweasel (firefox) http://lists.debian.org/debian-hurd/2011/12/msg00080.html
+
+Samuel Thibault: /dev/urandom as native translator: http://lists.debian.org/debian-hurd/2011/11/msg00092.html
+
+Samuel Thibault: Christmas gift: New CD set: http://lists.debian.org/debian-hurd/2011/12/msg00095.html
+
+Samuel Thibault identified three easy porting cases: http://lists.debian.org/debian-hurd/2011/11/msg00095.html:
+
+- undefined reference to dl_foo: add -ldl for building
+- undefined reference to `main': missing gnu* case in the linking part of configure.ac or .in (pd-* packages are already being handled by their maintainer)
+- undefined reference to clock_gettime or crypt: add -lrt or -lcrypt
Bouju Alain: Procfs with cpuinfo http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00084.html
@@ -77,13 +96,23 @@ Ludovic Courtès:
Pino Toscano and Thomas Schwinge: pthread improvements: http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00027.html http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00020.html http://lists.gnu.org/archive/html/bug-hurd/2011-11/msg00013.html
-Sergio Lopez: Better Memory Management and memfs: http://www.bddebian.com/~hurd-web/user/Sergio_Lopez/
+Sergio Lopez documented his work on Better Memory Management and memfs: http://www.bddebian.com/~hurd-web/user/Sergio_Lopez/
+
+Guillem Jover: First step for porting to x64: Fix Mach's int vs long discrepancy: http://lists.debian.org/debian-hurd/2011/10/msg00053.html
+
+Svante Signell: e2fsprogs quota fixes: http://lists.debian.org/debian-hurd/2011/10/msg00015.html
+
+As a sidenote, we would like to share a story about real-life debugging with the Hurd:
-(bug hurd done till 2011-11 (inclusive))
+ <youpi> yay GNU/Hurd
+ <youpi> I have added i_translator check in e2fsck, it was missing
+ <youpi> I had a volume that was keeping making ext2fs crash
+ <youpi> with a reproductible scenario
+ <youpi> could easily work out it was i_translator, then add a check to e2fsck, run it, which indeed fixed, them, and voilà, ext2fs was working again
+ <youpi> all that on the same machine with *no* system reboot
+ <youpi> just ext2fs restart :)
-TODO:
-- http://lists.gnu.org/archive/html/bug-hurd/2011-12
-- http://lists.debian.org/debian-hurd/2011/10/threads.html
+<!--bug hurd and debian hurd done-->
------
diff --git a/hurd/dde/guide.mdwn b/hurd/dde/guide.mdwn
index 6a83519c..bf41dd79 100644
--- a/hurd/dde/guide.mdwn
+++ b/hurd/dde/guide.mdwn
@@ -22,9 +22,14 @@ The whole process is much more cumbersome otherwise.
It also assumes that apart from networking,
your Hurd system is already installed and operational.
+Debian now already includes dde support in both gnumach (>=
+2:1.3.99.dfsg.git20120219-1) and hurd (>= 20120219-1), so in the steps below,
+building gnumach will not be needed. Also, be sure to use the dde-debian branch
+instead of dde.
+
We start by booting into Debian GNU/Linux,
-so we can download everything we will need for building DDE.
+so we can download everything we will need for building DDE. If you have already a way to download things from the Hurd image, skip to "Get DDE code" below.
Once there, first mount the Hurd partition (as root):
@@ -52,7 +57,7 @@ Download the packages for offline installation:
$ apt-get -c etc/apt/apt.conf.offline build-dep hurd gnumach
- $ apt-get -c etc/apt/apt.conf.offline install git-core build-essential libpciaccess-dev libpcap0.8-dev
+ $ apt-get -c etc/apt/apt.conf.offline install git-core build-essential libpciaccess-dev libpcap0.8-dev hurd-dev zlib1g-dev
Get DDE code:
@@ -60,6 +65,10 @@ Get DDE code:
$ mkdir dde && cd dde
+Note: here, use dde-debian instead of dde if you have gnumach >=
+2:1.3.99.dfsg.git20120219-1 already installed and running. Otherwise you will
+get "vm_allocate_contiguous: (ipc/mig) bad request message ID" error messages.
+
$ git clone git://git.sv.gnu.org/hurd/incubator.git -b dde hurd
$ git clone git://git.sv.gnu.org/hurd/gnumach.git -b master-user_level_drivers
@@ -82,10 +91,10 @@ the right source file from Linux:
Point a (JavaScript-capable) web browser at
- http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=tree;f=drivers/net;hb=HEAD
+ http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=tree;f=drivers/net;hb=refs/heads/linux-2.6.29.y
-(Note: you **have** to use 2.6.29,
-as this is the version DDE is currently based on.)
+(Note: you **have** to use some 2.6.29.y (whatever the y, prefer the latest), as
+this is the version DDE is currently based on.)
Find the right file to download
(forcedeth.c in this example);
@@ -105,7 +114,7 @@ Once there, install the packages previously downloaded (again as root):
$ apt-get build-dep hurd gnumach
- $ apt-get install git-core build-essential libpciaccess-dev libpcap0.8-dev
+ $ apt-get install git-core build-essential libpciaccess-dev libpcap0.8-dev hurd-dev zlib1g-dev
Make sure we can build stuff as normal user:
@@ -113,7 +122,7 @@ Make sure we can build stuff as normal user:
Now you can log in with the normal user account to build stuff.
-Build a DDE-enabled Mach:
+Build a DDE-enabled Mach. Not needed if you have gnumach >= 2:1.3.99.dfsg.git20120219-1 already installed and running:
$ cd ~me/dde/gnumach
@@ -123,7 +132,7 @@ Build a DDE-enabled Mach:
If not already present in DDE,
-we need to prepare the driver for the network card:
+we need to prepare the driver for the network card (else, skip to "Having prepared the driver" below):
$ cd ~me/dde/hurd
@@ -164,27 +173,25 @@ we can now build the necessary Hurd and DDE bits:
$ autoreconf -i && ./configure
- $ mkdir -p hurd/include/ddekit # workaround for a buildsystem bug... XXX I'm pretty sure this is not necessary anymore
+ $ make libddekit libmachdev devnode pfinet # Hurd components. This is not needed if you have the Debian hurd-dev >= 20120219-1 package already installed.
- $ make libddekit libmachdev devnode pfinet # Hurd components
+ $ make -C libdde_linux26 # common DDE driver code -- uses a different Makefile system than the Hurd components! This is not needed if you have the Debian hurd-dev >= 20120219-2 package already installed.
- $ cd libdde_linux26 # common DDE driver code -- uses a different Makefile system than the Hurd components!
+If you have the Debian hurd-dev >= 20120219-2 package already installed (and thus skipped the previous steps), run:
- $ make
+ $ make -C dde_forcedeth PKGDIR=/usr/share/libdde_linux26 # actual driver
- $ cd ../dde_forcedeth # actual driver
+otherwise, after doing the previous steps, use:
- $ make
+ $ make -C dde_forcedeth # actual driver
-Install the various built components to their final destinations (as root):
+Install the various built components to their final destinations (as root). You only need to install dde_forcedeth if you are already running the Debian gnumach >= 2:1.3.99.dfsg.git20120219-1 and hurd-dev >= 20120219-1 packages:
$ cd ~me/dde/
$ cp gnumach/gnumach /boot/gnumach_dde
- $ mkdir /hurd/dde
-
- $ cp hurd/devnode/devnode hurd/pfinet/pfinet hurd/dde_forcedeth/dde_forcedeth /hurd/dde
+ $ cp hurd/devnode/devnode hurd/pfinet/pfinet hurd/dde_forcedeth/dde_forcedeth /hurd
Now everything should be ready.
@@ -197,17 +204,24 @@ in the boottime grub menu while testing.)
Once there, set up the translators for the driver (as root):
- $ settrans -c /dev/forcedeth /hurd/dde/forcedeth
+ $ settrans -cap /dev/forcedeth /hurd/dde_forcedeth
+
+If that spews error "vm_allocate_contiguous: (ipc/mig) bad request message ID",
+you are mixing things: either use the debian kernel and the dde-debian incubator
+branch, or use your kernel built from the master-user_level_drivers branch and
+the dde incubator branch, but don't make any mixture.
- $ settrans -c /dev/eth0 /hurd/dde/devnode -M /dev/forcedeth eth0
+ $ settrans -cap /dev/eth0 /hurd/devnode -M /dev/forcedeth eth0
Finally, we can set up the actual network translator,
using something like:
- $ settrans -c /servers/socket/2 /hurd/dde/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0
+ $ settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0
For the exact syntax,
see the normal network setup documentation.
The only differences here
are the different location of the pfinet binary,
and the different syntax for the -i option.
+
+Check Arch/Hurd recipe on git://projects.archhurd.org/packages.git
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index b2812750..d7660c74 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2006, 2007, 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
@@ -20,6 +20,12 @@ You can use the following images to give the GNU/Hurd a try.
[[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]]
+## NixOS
+
+ * <http://hydra.nixos.org/jobset/gnu/hurd-master>
+
+ * <http://hydra.nixos.org/job/gnu/hurd-master/qemu_test>
+
## Unofficial Images
Note that the following images are unofficial ones: they have been prepared by
diff --git a/hurd/status.mdwn b/hurd/status.mdwn
index 447f3ae4..a48c128f 100644
--- a/hurd/status.mdwn
+++ b/hurd/status.mdwn
@@ -39,7 +39,7 @@ memory or semaphores are still under development.
All this applies to the current development version, and not to the
last release (0.2). We encourage everybody who is interested to try
-out the latest development version, and send feedback to the Hurd
+out the current development version, and send feedback to the Hurd
developers.
diff --git a/hurd/translator/procfs/jkoenig/discussion.mdwn b/hurd/translator/procfs/jkoenig/discussion.mdwn
index 135b4a88..339fab50 100644
--- a/hurd/translator/procfs/jkoenig/discussion.mdwn
+++ b/hurd/translator/procfs/jkoenig/discussion.mdwn
@@ -213,3 +213,8 @@ IRC, freenode, #hurd, 2011-07-25
Needed by glibc's `pldd` tool (commit
11988f8f9656042c3dfd9002ac85dff33173b9bd).
+
+
+# `/proc/self/exe`
+
+[[!message-id "alpine.LFD.2.02.1110111111260.2016@akari"]]
diff --git a/mailing_lists.mdwn b/mailing_lists.mdwn
index ff4dab9f..33f131d5 100644
--- a/mailing_lists.mdwn
+++ b/mailing_lists.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2011 Free Software Foundation, Inc."]]
+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
@@ -46,6 +46,13 @@ mailing lists.
Technical discussion and bug reports; main development list. If you want to
[[*contribute*|contributing]], please meet us here.
+<a name="commit-hurd"></a>
+## commit-hurd
+
+<http://lists.gnu.org/mailman/listinfo/commit-hurd>
+
+Commit notices for the GNU Hurd, and other automated status updates.
+
<a name="hurd-devel"></a>
## hurd-devel
diff --git a/hurd/faq/top.mdwn b/mailing_lists/commit-hurd.mdwn
index 9e385c0f..08fcaff4 100644
--- a/hurd/faq/top.mdwn
+++ b/mailing_lists/commit-hurd.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+[[!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
@@ -8,9 +8,4 @@ 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="What is a replacement for procps' top?"]]
-
-Here is a replacement to use, until the real `top` works, which depends on
-[[hurd/translator/procfs]] and some [[!taglink porting|open_issue_porting]].
-
- $ while :; do ps -e -v -s CPU --top=22 -r; sleep 5; done
+[[!meta redir=mailing_lists#commit-hurd]]
diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn
index 246e819d..cb71746b 100644
--- a/open_issues/binutils.mdwn
+++ b/open_issues/binutils.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 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
@@ -30,8 +30,17 @@ though, as explained below.
# Configuration
-Last reviewed up to the [[Git mirror's e605e0bc9fced128199177fff775851c7e50b4e5
-(2011-10-20) sources|source_repositories/binutils]].
+<!--
+
+git checkout reviewed
+git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -p -C --cc ..sourceware/master
+-i
+/^commit |^---$|hurd|linux
+
+-->
+
+Last reviewed up to the [[Git mirror's 6de66ef60a39ab2cdacf801dae0110f36a76537c
+(2012-02-15) sources|source_repositories/binutils]].
* Globally
@@ -108,7 +117,7 @@ Last reviewed up to the [[Git mirror's e605e0bc9fced128199177fff775851c7e50b4e5
# Build
Here's a log of a binutils build run; this is from our [[Git repository's
-6e78bdc1d64c55962d36ef29d15f06fb2415261b (2011-10-20)
+f42a507c8b1e79cec0e755249e9fb5c2e012fe83 (2012-02-15)
sources|source_repositories/binutils]], run on kepler.SCHWINGE and
coulomb.SCHWINGE.
diff --git a/open_issues/binutils/log_build.diff b/open_issues/binutils/log_build.diff
index 79946f63..66b398ff 100644
--- a/open_issues/binutils/log_build.diff
+++ b/open_issues/binutils/log_build.diff
@@ -1,6 +1,6 @@
---- /dev/fd/63 2011-10-22 11:44:16.461445903 +0200
-+++ /dev/fd/62 2011-10-22 11:44:16.461445903 +0200
-@@ -276,12 +276,12 @@
+--- /dev/fd/63 2012-02-15 23:34:46.633719867 +0100
++++ /dev/fd/62 2012-02-15 23:34:46.637719753 +0100
+@@ -279,12 +279,12 @@
checking for sys/sysinfo.h... yes
checking for machine/hal_sysinfo.h... no
checking for sys/table.h... no
@@ -15,7 +15,7 @@
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether errno must be declared... no
-@@ -351,13 +351,13 @@
+@@ -354,8 +354,8 @@
checking for working fork... yes
checking for working vfork... (cached) yes
checking for _doprnt... no
@@ -26,13 +26,7 @@
checking for sys_siglist... yes
checking for external symbol _system_configuration... no
checking for __fsetlocking... yes
- checking for canonicalize_file_name... yes
--checking for dup3... yes
-+checking for dup3... no
- checking for getrlimit... yes
- checking for getrusage... yes
- checking for getsysinfo... no
-@@ -374,7 +374,7 @@
+@@ -377,7 +377,7 @@
checking for strerror... yes
checking for strsignal... yes
checking for sysconf... yes
@@ -41,7 +35,7 @@
checking for sysmp... no
checking for table... no
checking for times... yes
-@@ -459,7 +459,7 @@
+@@ -462,7 +462,7 @@
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
@@ -50,7 +44,7 @@
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for ld option to reload object files... -r
-@@ -479,7 +479,7 @@
+@@ -482,7 +482,7 @@
checking if gcc-4.6 supports -c -o file.o... yes
checking if gcc-4.6 supports -c -o file.o... (cached) yes
checking whether the gcc-4.6 linker (ld) supports shared libraries... yes
@@ -59,7 +53,7 @@
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
-@@ -569,26 +569,26 @@
+@@ -572,26 +572,26 @@
checking sys/procfs.h usability... yes
checking sys/procfs.h presence... yes
checking for sys/procfs.h... yes
@@ -95,7 +89,7 @@
checking for win32_pstatus_t in sys/procfs.h... no
checking linker --as-needed support... yes
checking for cos in -lm... yes
-@@ -1229,36 +1229,15 @@
+@@ -1236,36 +1236,15 @@
/bin/dash ./libtool --tag=CC --mode=compile gcc-4.6 -DHAVE_CONFIG_H -I. -I../../master/bfd -I. -I../../master/bfd -I../../master/bfd/../include -DHAVE_bfd_elf32_i386_vec -DHAVE_bfd_elf32_little_generic_vec -DHAVE_bfd_elf32_big_generic_vec -DBINDIR='"[...]/hurd/master.build.install/bin"' -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT dwarf1.lo -MD -MP -MF .deps/dwarf1.Tpo -c -o dwarf1.lo ../../master/bfd/dwarf1.c
libtool: compile: gcc-4.6 -DHAVE_CONFIG_H -I. -I../../master/bfd -I. -I../../master/bfd -I../../master/bfd/../include -DHAVE_bfd_elf32_i386_vec -DHAVE_bfd_elf32_little_generic_vec -DHAVE_bfd_elf32_big_generic_vec -DBINDIR=\"[...]/hurd/master.build.install/bin\" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT dwarf1.lo -MD -MP -MF .deps/dwarf1.Tpo -c ../../master/bfd/dwarf1.c -o dwarf1.o
mv -f .deps/dwarf1.Tpo .deps/dwarf1.Plo
@@ -133,7 +127,7 @@
case " $f " in \
*" $i "*) ;; \
*) f="$f $i" ;; \
-@@ -1268,7 +1247,7 @@
+@@ -1275,7 +1254,7 @@
/bin/dash ../../master/bfd/../move-if-change tofiles ofiles
touch stamp-ofiles
/bin/dash ./libtool --tag=CC --mode=link gcc-4.6 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -release `cat libtool-soversion` -o libbfd.la -rpath [...]/hurd/master.build.install/lib archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo cache.lo coffgen.lo corefile.lo format.lo init.lo libbfd.lo opncls.lo reloc.lo section.lo syms.lo targets.lo hash.lo linker.lo srec.lo binary.lo tekhex.lo ihex.lo stabs.lo stab-syms.lo merge.lo dwarf2.lo simple.lo compress.lo verilog.lo `cat ofiles` -lz
@@ -142,7 +136,7 @@
libtool: link: ranlib .libs/libbfd.a
libtool: link: ( cd ".libs" && rm -f "libbfd.la" && ln -s "../libbfd.la" "libbfd.la" )
libtooldir=`/bin/dash ./libtool --config | sed -n -e 's/^objdir=//p'`; \
-@@ -1335,7 +1314,7 @@
+@@ -1342,7 +1321,7 @@
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
@@ -151,7 +145,7 @@
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for ld option to reload object files... -r
-@@ -1355,7 +1334,7 @@
+@@ -1362,7 +1341,7 @@
checking if gcc-4.6 supports -c -o file.o... yes
checking if gcc-4.6 supports -c -o file.o... (cached) yes
checking whether the gcc-4.6 linker (ld) supports shared libraries... yes
@@ -160,7 +154,7 @@
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
-@@ -1510,7 +1489,7 @@
+@@ -1519,7 +1498,7 @@
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
@@ -169,7 +163,7 @@
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for ld option to reload object files... -r
-@@ -1531,7 +1510,7 @@
+@@ -1540,7 +1519,7 @@
checking if gcc-4.6 supports -c -o file.o... (cached) yes
checking whether the gcc-4.6 linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
@@ -178,7 +172,7 @@
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
-@@ -1977,7 +1956,7 @@
+@@ -1986,7 +1965,7 @@
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
@@ -187,7 +181,7 @@
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for ld option to reload object files... -r
-@@ -1998,7 +1977,7 @@
+@@ -2007,7 +1986,7 @@
checking if gcc-4.6 supports -c -o file.o... (cached) yes
checking whether the gcc-4.6 linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
@@ -196,7 +190,7 @@
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
-@@ -2231,7 +2210,7 @@
+@@ -2242,7 +2221,7 @@
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
@@ -205,7 +199,7 @@
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for ld option to reload object files... -r
-@@ -2252,7 +2231,7 @@
+@@ -2263,7 +2242,7 @@
checking if gcc-4.6 supports -c -o file.o... (cached) yes
checking whether the gcc-4.6 linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
@@ -214,7 +208,7 @@
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
-@@ -2475,7 +2454,7 @@
+@@ -2490,7 +2469,7 @@
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
@@ -223,7 +217,7 @@
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for ld option to reload object files... -r
-@@ -2496,7 +2475,7 @@
+@@ -2511,7 +2490,7 @@
checking if gcc-4.6 supports -c -o file.o... (cached) yes
checking whether the gcc-4.6 linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
@@ -232,7 +226,7 @@
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
-@@ -2512,7 +2491,7 @@
+@@ -2527,7 +2506,7 @@
checking if g++-4.6 supports -c -o file.o... yes
checking if g++-4.6 supports -c -o file.o... (cached) yes
checking whether the g++-4.6 linker (ld) supports shared libraries... yes
@@ -240,8 +234,8 @@
+checking dynamic linker characteristics... gnu0.3 ld.so
checking how to hardcode library paths into programs... immediate
checking whether NLS is requested... yes
- checking for catalogs to be installed... bg da es fi fr ga id ja sv tr vi zh_CN zh_TW
-@@ -2592,13 +2571,13 @@
+ checking for catalogs to be installed... bg da es fi fr ga id it ja sv tr vi zh_CN zh_TW
+@@ -2607,13 +2586,13 @@
/bin/dash ../../master/ld/../ylwrap ../../master/ld/ldgram.y y.tab.c ldgram.c y.tab.h ldgram.h y.output ldgram.output -- bison -y -d
updating ldgram.h
(echo "/* This file is automatically generated. DO NOT EDIT! */";\
@@ -257,7 +251,7 @@
| sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
echo " &ld_${f}_emulation, \\"; \
done;\
-@@ -2712,17 +2691,11 @@
+@@ -2727,17 +2706,11 @@
gcc-4.6 -DHAVE_CONFIG_H -I. -I../../master/ld -I. -I../../master/ld -I../bfd -I../../master/ld/../bfd -I../../master/ld/../include -g -O2 -DENABLE_PLUGINS -DLOCALEDIR="\"[...]/hurd/master.build.install/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -MT plugin.o -MD -MP -MF .deps/plugin.Tpo -c -o plugin.o ../../master/ld/plugin.c
mv -f .deps/plugin.Tpo .deps/plugin.Po
cp ../../master/ld/emultempl/astring.sed stringify.sed
@@ -277,4 +271,4 @@
+libtool: link: gcc-4.6 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -g -O2 -o ld-new ldgram.o ldlex-wrapper.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o plugin.o eelf_i386.o ../bfd/.libs/libbfd.a ../libiberty/libiberty.a -lz -ldl
touch ld.1
perl ../../master/ld/../etc/texi2pod.pl -I ../../master/ld -I ../../master/ld/../bfd/doc -I ../bfd/doc -I ../../master/ld/../libiberty -Dman < ../../master/ld/ld.texinfo > ld.pod
- (pod2man --center="GNU Development Tools" --release="binutils-2.22.51" --section=1 ld.pod | \
+ (pod2man --center="GNU Development Tools" --release="binutils-2.22.52" --section=1 ld.pod | \
diff --git a/open_issues/binutils/log_install.diff b/open_issues/binutils/log_install.diff
index 100ebf5c..2b85b696 100644
--- a/open_issues/binutils/log_install.diff
+++ b/open_issues/binutils/log_install.diff
@@ -1,5 +1,5 @@
---- /dev/fd/63 2011-10-22 11:44:48.780903894 +0200
-+++ /dev/fd/62 2011-10-22 11:44:48.780903894 +0200
+--- /dev/fd/63 2012-02-15 23:35:01.029312528 +0100
++++ /dev/fd/62 2012-02-15 23:35:01.029312528 +0100
@@ -68,7 +68,6 @@
libtool: install: /usr/bin/install -c .libs/libbfd.a [...]/hurd/master.build.install/lib/libbfd.a
libtool: install: chmod 644 [...]/hurd/master.build.install/lib/libbfd.a
diff --git a/open_issues/binutils/sum.diff b/open_issues/binutils/sum.diff
index 0c612411..d555a1a4 100644
--- a/open_issues/binutils/sum.diff
+++ b/open_issues/binutils/sum.diff
@@ -1,25 +1,25 @@
---- open_issues/binutils/sum_linux 2011-10-22 11:49:33.000000000 +0200
-+++ open_issues/binutils/sum_hurd 2011-10-22 11:23:09.000000000 +0200
+--- open_issues/binutils/sum_linux 2012-02-15 23:36:39.000000000 +0100
++++ open_issues/binutils/sum_hurd 2012-02-15 23:36:51.000000000 +0100
@@ -1,5 +1,5 @@
--Test Run By thomas on Sat Oct 22 11:43:32 2011
+-Test Run By thomas on Wed Feb 15 23:08:06 2012
-Native configuration is i686-pc-linux-gnu
-+Test Run By thomas on Fri Oct 21 12:54:58 2011
++Test Run By thomas on Wed Feb 15 23:25:26 2012
+Native configuration is i686-unknown-gnu0.3
=== binutils tests ===
-@@ -122,8 +122,8 @@ Running [...]/hurd/master/binutils/tests
+@@ -123,8 +123,8 @@ Running [...]/hurd/master/binutils/tests
- # of expected passes 90
+ # of expected passes 91
# of unsupported tests 3
--Test Run By thomas on Sat Oct 22 11:43:59 2011
+-Test Run By thomas on Wed Feb 15 23:08:31 2012
-Native configuration is i686-pc-linux-gnu
-+Test Run By thomas on Fri Oct 21 12:56:51 2011
++Test Run By thomas on Wed Feb 15 23:27:26 2012
+Native configuration is i686-unknown-gnu0.3
=== ld tests ===
-@@ -331,10 +331,10 @@ Running [...]/hurd/master/ld/testsuite/l
+@@ -336,10 +336,10 @@ Running [...]/hurd/master/ld/testsuite/l
PASS: PIE init array
PASS: PIE fini array
PASS: PIE init array mixed
@@ -34,7 +34,7 @@
Running [...]/hurd/master/ld/testsuite/ld-elf/exclude.exp ...
PASS: ld link shared library
PASS: ld export symbols from archive
-@@ -592,8 +592,8 @@ Running [...]/hurd/master/ld/testsuite/l
+@@ -597,8 +597,8 @@ Running [...]/hurd/master/ld/testsuite/l
PASS: ELF DSO weak func last DSO
PASS: ELF weak func first
PASS: ELF weak func last
@@ -45,7 +45,7 @@
PASS: ELF DSO weak data first
PASS: ELF DSO weak data last
PASS: ELF DSO weak data first DSO
-@@ -604,10 +604,10 @@ Running [...]/hurd/master/ld/testsuite/l
+@@ -609,10 +609,10 @@ Running [...]/hurd/master/ld/testsuite/l
PASS: ELF weak data last
PASS: ELF weak data first common
PASS: ELF weak data last common
@@ -60,20 +60,20 @@
PASS: ELF DSO small bar (size)
PASS: ELF DSO foo with small bar (size)
PASS: ELF DSO big bar (size)
-@@ -940,13 +940,13 @@ Running [...]/hurd/master/ld/testsuite/l
+@@ -948,13 +948,13 @@ Running [...]/hurd/master/ld/testsuite/l
=== ld Summary ===
--# of expected passes 672
+-# of expected passes 677
-# of expected failures 8
-+# of expected passes 662
++# of expected passes 667
+# of expected failures 18
# of untested testcases 6
- [...]/hurd/master.build/ld/ld-new 2.22.51.20111021
+ [...]/hurd/master.build/ld/ld-new 2.22.52.20120215
--Test Run By thomas on Sat Oct 22 11:43:38 2011
+-Test Run By thomas on Wed Feb 15 23:08:12 2012
-Native configuration is i686-pc-linux-gnu
-+Test Run By thomas on Fri Oct 21 12:55:21 2011
++Test Run By thomas on Wed Feb 15 23:25:53 2012
+Native configuration is i686-unknown-gnu0.3
=== gas tests ===
diff --git a/open_issues/binutils/sum_hurd b/open_issues/binutils/sum_hurd
index 31f8f997..6be2bbb8 100644
--- a/open_issues/binutils/sum_hurd
+++ b/open_issues/binutils/sum_hurd
@@ -1,4 +1,4 @@
-Test Run By thomas on Fri Oct 21 12:54:58 2011
+Test Run By thomas on Wed Feb 15 23:25:26 2012
Native configuration is i686-unknown-gnu0.3
=== binutils tests ===
@@ -111,6 +111,7 @@ PASS: readelf -r
PASS: readelf -wi
PASS: readelf -wa (compressed)
PASS: readelf -p
+PASS: readelf -n
Running [...]/hurd/master/binutils/testsuite/binutils-all/size.exp ...
PASS: size (no arguments)
PASS: size -A
@@ -120,9 +121,9 @@ Running [...]/hurd/master/binutils/testsuite/binutils-all/x86-64/x86-64.exp ...
=== binutils Summary ===
-# of expected passes 90
+# of expected passes 91
# of unsupported tests 3
-Test Run By thomas on Fri Oct 21 12:56:51 2011
+Test Run By thomas on Wed Feb 15 23:27:26 2012
Native configuration is i686-unknown-gnu0.3
=== ld tests ===
@@ -217,6 +218,9 @@ PASS: objcopy -shared (tbss3)
PASS: objcopy -shared -z relro (tbss3)
PASS: objcopy -z max-page-size=0x100000 (tbss3)
PASS: objcopy -z max-page-size=0x100000 -z common-page-size=0x1000 (tbss3)
+Running [...]/hurd/master/ld/testsuite/ld-elf/comm-data.exp ...
+PASS: Common symbol override test (auxiliary shared object build)
+PASS: Common symbol override test
Running [...]/hurd/master/ld/testsuite/ld-elf/compress.exp ...
PASS: Build libfoo.so with compressed debug sections
PASS: Build libbar.so with compressed debug sections
@@ -319,6 +323,7 @@ PASS: ld-elf/unknown2
PASS: ld-elf/warn1
PASS: ld-elf/warn2
PASS: ld-elf/warn3
+PASS: ld-elf/zerosize1
PASS: Weak symbols in dynamic objects 1 (support)
PASS: Weak symbols in dynamic objects 1 (main test)
PASS: --gc-sections on tls variable
@@ -670,6 +675,7 @@ PASS: PR ld/12718
PASS: PR ld/12921
PASS: undefined symbol with compressed debug sections
PASS: PR ld/12627
+PASS: PR ld/13302
Running [...]/hurd/master/ld/testsuite/ld-ia64/ia64.exp ...
Running [...]/hurd/master/ld/testsuite/ld-ia64/line.exp ...
Running [...]/hurd/master/ld/testsuite/ld-ifunc/binutils.exp ...
@@ -688,6 +694,7 @@ PASS: ld-ifunc/ifunc-12-i386
PASS: ld-ifunc/ifunc-13-i386
PASS: ld-ifunc/ifunc-14-i386
PASS: ld-ifunc/ifunc-15-i386
+PASS: ld-ifunc/ifunc-16-i386
PASS: ld-ifunc/ifunc-2-i386
PASS: ld-ifunc/ifunc-2-local-i386
PASS: ld-ifunc/ifunc-3a-x86
@@ -715,6 +722,7 @@ Running [...]/hurd/master/ld/testsuite/ld-m68hc11/m68hc11.exp ...
Running [...]/hurd/master/ld/testsuite/ld-m68k/m68k-got.exp ...
Running [...]/hurd/master/ld/testsuite/ld-m68k/m68k.exp ...
Running [...]/hurd/master/ld/testsuite/ld-mep/mep.exp ...
+Running [...]/hurd/master/ld/testsuite/ld-mips-elf/comm-data.exp ...
Running [...]/hurd/master/ld/testsuite/ld-mips-elf/mips-elf-flags.exp ...
Running [...]/hurd/master/ld/testsuite/ld-mips-elf/mips-elf.exp ...
Running [...]/hurd/master/ld/testsuite/ld-misc/defsym.exp ...
@@ -940,12 +948,12 @@ Running [...]/hurd/master/ld/testsuite/ld-xtensa/xtensa.exp ...
=== ld Summary ===
-# of expected passes 662
+# of expected passes 667
# of expected failures 18
# of untested testcases 6
-[...]/hurd/master.build/ld/ld-new 2.22.51.20111021
+[...]/hurd/master.build/ld/ld-new 2.22.52.20120215
-Test Run By thomas on Fri Oct 21 12:55:21 2011
+Test Run By thomas on Wed Feb 15 23:25:53 2012
Native configuration is i686-unknown-gnu0.3
=== gas tests ===
@@ -1073,6 +1081,7 @@ PASS: Check bad size directive
PASS: Check bad group
PASS: gas/elf/warn-2.s (test for warnings, line )
PASS: gas/elf/warn-2.s (test for excess errors)
+Running [...]/hurd/master/gas/testsuite/gas/epiphany/allinsn.exp ...
Running [...]/hurd/master/gas/testsuite/gas/fr30/allinsn.exp ...
Running [...]/hurd/master/gas/testsuite/gas/fr30/fr30.exp ...
Running [...]/hurd/master/gas/testsuite/gas/frv/allinsn.exp ...
@@ -1128,6 +1137,7 @@ PASS: i386 displacement
PASS: i386 displacement (Intel mode)
PASS: i386 32bit displacement
PASS: i386 VMX
+PASS: i386 VMFUNC
PASS: i386 SMX
PASS: i386 suffix
PASS: i386 immed
@@ -1259,6 +1269,11 @@ PASS: i386 FMA
PASS: i386 FMA (Intel disassembly)
PASS: i386 FMA scalar insns
PASS: i386 FMA scalar insns (Intel disassembly)
+PASS: i386 HLE insns
+PASS: i386 HLE insns (Intel disassembly)
+PASS: i386 hlebad
+PASS: i386 RTM insns
+PASS: i386 RTM insns (Intel disassembly)
PASS: i386 FMA4
PASS: i386 LWP
PASS: i386 XOP
@@ -1337,6 +1352,7 @@ Running [...]/hurd/master/gas/testsuite/gas/m32r/rel32.exp ...
Running [...]/hurd/master/gas/testsuite/gas/m68hc11/m68hc11.exp ...
Running [...]/hurd/master/gas/testsuite/gas/m68k-coff/gas.exp ...
Running [...]/hurd/master/gas/testsuite/gas/m68k/all.exp ...
+Running [...]/hurd/master/gas/testsuite/gas/mach-o/mach-o.exp ...
Running [...]/hurd/master/gas/testsuite/gas/macros/macros.exp ...
PASS: macro test 1
PASS: macro test 2
@@ -1416,6 +1432,6 @@ Running [...]/hurd/master/gas/testsuite/gas/z8k/z8k.exp ...
=== gas Summary ===
-# of expected passes 346
-../as-new 2.22.51.20111021
+# of expected passes 352
+../as-new 2.22.52.20120215
diff --git a/open_issues/binutils/sum_linux b/open_issues/binutils/sum_linux
index 09c11722..bc92f500 100644
--- a/open_issues/binutils/sum_linux
+++ b/open_issues/binutils/sum_linux
@@ -1,4 +1,4 @@
-Test Run By thomas on Sat Oct 22 11:43:32 2011
+Test Run By thomas on Wed Feb 15 23:08:06 2012
Native configuration is i686-pc-linux-gnu
=== binutils tests ===
@@ -111,6 +111,7 @@ PASS: readelf -r
PASS: readelf -wi
PASS: readelf -wa (compressed)
PASS: readelf -p
+PASS: readelf -n
Running [...]/hurd/master/binutils/testsuite/binutils-all/size.exp ...
PASS: size (no arguments)
PASS: size -A
@@ -120,9 +121,9 @@ Running [...]/hurd/master/binutils/testsuite/binutils-all/x86-64/x86-64.exp ...
=== binutils Summary ===
-# of expected passes 90
+# of expected passes 91
# of unsupported tests 3
-Test Run By thomas on Sat Oct 22 11:43:59 2011
+Test Run By thomas on Wed Feb 15 23:08:31 2012
Native configuration is i686-pc-linux-gnu
=== ld tests ===
@@ -217,6 +218,9 @@ PASS: objcopy -shared (tbss3)
PASS: objcopy -shared -z relro (tbss3)
PASS: objcopy -z max-page-size=0x100000 (tbss3)
PASS: objcopy -z max-page-size=0x100000 -z common-page-size=0x1000 (tbss3)
+Running [...]/hurd/master/ld/testsuite/ld-elf/comm-data.exp ...
+PASS: Common symbol override test (auxiliary shared object build)
+PASS: Common symbol override test
Running [...]/hurd/master/ld/testsuite/ld-elf/compress.exp ...
PASS: Build libfoo.so with compressed debug sections
PASS: Build libbar.so with compressed debug sections
@@ -319,6 +323,7 @@ PASS: ld-elf/unknown2
PASS: ld-elf/warn1
PASS: ld-elf/warn2
PASS: ld-elf/warn3
+PASS: ld-elf/zerosize1
PASS: Weak symbols in dynamic objects 1 (support)
PASS: Weak symbols in dynamic objects 1 (main test)
PASS: --gc-sections on tls variable
@@ -670,6 +675,7 @@ PASS: PR ld/12718
PASS: PR ld/12921
PASS: undefined symbol with compressed debug sections
PASS: PR ld/12627
+PASS: PR ld/13302
Running [...]/hurd/master/ld/testsuite/ld-ia64/ia64.exp ...
Running [...]/hurd/master/ld/testsuite/ld-ia64/line.exp ...
Running [...]/hurd/master/ld/testsuite/ld-ifunc/binutils.exp ...
@@ -688,6 +694,7 @@ PASS: ld-ifunc/ifunc-12-i386
PASS: ld-ifunc/ifunc-13-i386
PASS: ld-ifunc/ifunc-14-i386
PASS: ld-ifunc/ifunc-15-i386
+PASS: ld-ifunc/ifunc-16-i386
PASS: ld-ifunc/ifunc-2-i386
PASS: ld-ifunc/ifunc-2-local-i386
PASS: ld-ifunc/ifunc-3a-x86
@@ -715,6 +722,7 @@ Running [...]/hurd/master/ld/testsuite/ld-m68hc11/m68hc11.exp ...
Running [...]/hurd/master/ld/testsuite/ld-m68k/m68k-got.exp ...
Running [...]/hurd/master/ld/testsuite/ld-m68k/m68k.exp ...
Running [...]/hurd/master/ld/testsuite/ld-mep/mep.exp ...
+Running [...]/hurd/master/ld/testsuite/ld-mips-elf/comm-data.exp ...
Running [...]/hurd/master/ld/testsuite/ld-mips-elf/mips-elf-flags.exp ...
Running [...]/hurd/master/ld/testsuite/ld-mips-elf/mips-elf.exp ...
Running [...]/hurd/master/ld/testsuite/ld-misc/defsym.exp ...
@@ -940,12 +948,12 @@ Running [...]/hurd/master/ld/testsuite/ld-xtensa/xtensa.exp ...
=== ld Summary ===
-# of expected passes 672
+# of expected passes 677
# of expected failures 8
# of untested testcases 6
-[...]/hurd/master.build/ld/ld-new 2.22.51.20111021
+[...]/hurd/master.build/ld/ld-new 2.22.52.20120215
-Test Run By thomas on Sat Oct 22 11:43:38 2011
+Test Run By thomas on Wed Feb 15 23:08:12 2012
Native configuration is i686-pc-linux-gnu
=== gas tests ===
@@ -1073,6 +1081,7 @@ PASS: Check bad size directive
PASS: Check bad group
PASS: gas/elf/warn-2.s (test for warnings, line )
PASS: gas/elf/warn-2.s (test for excess errors)
+Running [...]/hurd/master/gas/testsuite/gas/epiphany/allinsn.exp ...
Running [...]/hurd/master/gas/testsuite/gas/fr30/allinsn.exp ...
Running [...]/hurd/master/gas/testsuite/gas/fr30/fr30.exp ...
Running [...]/hurd/master/gas/testsuite/gas/frv/allinsn.exp ...
@@ -1128,6 +1137,7 @@ PASS: i386 displacement
PASS: i386 displacement (Intel mode)
PASS: i386 32bit displacement
PASS: i386 VMX
+PASS: i386 VMFUNC
PASS: i386 SMX
PASS: i386 suffix
PASS: i386 immed
@@ -1259,6 +1269,11 @@ PASS: i386 FMA
PASS: i386 FMA (Intel disassembly)
PASS: i386 FMA scalar insns
PASS: i386 FMA scalar insns (Intel disassembly)
+PASS: i386 HLE insns
+PASS: i386 HLE insns (Intel disassembly)
+PASS: i386 hlebad
+PASS: i386 RTM insns
+PASS: i386 RTM insns (Intel disassembly)
PASS: i386 FMA4
PASS: i386 LWP
PASS: i386 XOP
@@ -1337,6 +1352,7 @@ Running [...]/hurd/master/gas/testsuite/gas/m32r/rel32.exp ...
Running [...]/hurd/master/gas/testsuite/gas/m68hc11/m68hc11.exp ...
Running [...]/hurd/master/gas/testsuite/gas/m68k-coff/gas.exp ...
Running [...]/hurd/master/gas/testsuite/gas/m68k/all.exp ...
+Running [...]/hurd/master/gas/testsuite/gas/mach-o/mach-o.exp ...
Running [...]/hurd/master/gas/testsuite/gas/macros/macros.exp ...
PASS: macro test 1
PASS: macro test 2
@@ -1416,6 +1432,6 @@ Running [...]/hurd/master/gas/testsuite/gas/z8k/z8k.exp ...
=== gas Summary ===
-# of expected passes 346
-../as-new 2.22.51.20111021
+# of expected passes 352
+../as-new 2.22.52.20120215
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index 71b4b2ea..04d399f0 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -71,8 +71,17 @@ testsuite.
# Configuration
-Last reviewed up to the [[Git mirror's 3d83581faf4eaf52c1cf52cc0d11cc7dd1264275
-(2011-09-05) sources|source_repositories/gcc]].
+<!--
+
+git checkout reviewed
+git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -p -C --cc ..upstream/master
+-i
+/^commit |^---$|hurd|linux
+
+-->
+
+Last reviewed up to the [[Git mirror's 9aa4b6a8046270a9dbdf47827f1ea873217d7aa5
+(2011-11-28) sources|source_repositories/gcc]].
<http://gcc.gnu.org/install/configure.html> has documentation for the
`configure` switches.
@@ -96,6 +105,16 @@ Last reviewed up to the [[Git mirror's 3d83581faf4eaf52c1cf52cc0d11cc7dd1264275
* `gcc/acinclude.m4`:`gcc_GAS_FLAGS`: always pass `--32` to assembler for
x86 Linux. (Why?)
+ * `hurd/usr`
+
+ `NATIVE_SYSTEM_HEADER_DIR`, `638454a19c1c08f01c10517bc72a114250fc4f33`,
+ [[!message-id "mcrzkhcbftp.fsf@coign.corp.google.com"]].
+
+ Debian.
+
+ * Eventually: get rid of this special-casing. [[!message-id
+ "gckk1s$e0b$1@ger.gmane.org"]].
+
* [[`libmudflap`|libmudflap]].
* Might [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html) be
@@ -168,9 +187,7 @@ Last reviewed up to the [[Git mirror's 3d83581faf4eaf52c1cf52cc0d11cc7dd1264275
buildable out of the box)? See also
73905b5de0d9a086f22ded7638bb1c0ae1b91326.
- * [low, testsuite] 5c7992866145620ffd0bc75b4f23298162b2c17f
-
- `check_effective_target_pie` should include `*-*-gnu*`, too.
+ * Various testsuite bits should include `*-*-gnu*`, too.
* [low] [[toolchain/cross-gnu]] toolchain bootstrap vs. `fenv.h` in libgcc's
libbid:
@@ -220,11 +237,24 @@ Last reviewed up to the [[Git mirror's 3d83581faf4eaf52c1cf52cc0d11cc7dd1264275
to find out why some stuff wasn't compiling even after kfreebsd
porting patches adding preprocessors checks for __GLIBC__
+ * [low] Does `-mcpu=native` etc. work? (For example,
+ 2ae1f0cc764e998bfc684d662aba0497e8723e52.)
+
+ * transactional memory, 4c0315d05fa0f707875686abc4f91f7a979a7c7b
+
+ * `config/mmap.m4`
+
+ * In `libitm/config/`, is the generic stuff (`tls.h`, etc.) enough for
+ us?
+
+ * f29a2041f32773464e226a83f41762c2e9cf658e
+ (e53a96c2136f7cdff4699475fea41afeed9dece3)
+
# Build
Here's a log of a GCC build run; this is from our [[Git repository's
-93608b32ee627438dbe8a1844254bf8c305c5dc1 (2011-09-05)
+74a56c71c55f667824eb2ef1d62d408e9c000d5e (2011-10-23)
sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
$ export LC_ALL=C
@@ -409,6 +439,8 @@ min on coulomb.SCHWINGE.
* `libtool: finish`: `ldconfig` is not run for the Hurd.
+ [[libtool]].
+
* `libjvm.la`, `.libs/libjvm.so`, `libgij.la`, `.libs/libgij.so.12.0.0`
`-Wl,-Bsymbolic` vs. `-Wl,-Bsymbolic-functions` (as above)
@@ -421,6 +453,9 @@ min on coulomb.SCHWINGE.
Testing on GNU/Hurd is blocked on
[[fork_mach_port_mod_refs_ekern_urefs_owerflow]].
+TODO. Can use parallel testing, see [[!message-id
+"20110331070322.GI11563@sunsite.ms.mff.cuni.cz"]].
+
$ make -k check 2>&1 | tee log_check
[...]
diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn
index 0aec12e3..2ae3518c 100644
--- a/open_issues/gdb.mdwn
+++ b/open_issues/gdb.mdwn
@@ -24,8 +24,8 @@ Here's what's to be done for maintaining GNU GDB.
# Configuration
-Last reviewed up to the [[Git mirror's 09ddc54333cdbc2f695fd83cbf091a7d5a1c3604
-(2011-09-06) sources|source_repositories/gdb]].
+Last reviewed up to the [[Git mirror's ea9812279fe436be9a010d07ef1dbe465199a3d7
+(2011-09-07) sources|source_repositories/gdb]].
* Globally
@@ -115,8 +115,7 @@ On GNU/Hurd, hampered by the [[term_blocking]] issue.
$ make -k check
[...]
-This needs roughly TODO min on kepler.SCHWINGE, and TODO min on
-coulomb.SCHWINGE.
+This needs roughly 45 min on kepler.SCHWINGE and TODO min on coulomb.SCHWINGE.
$ ssh kepler.SCHWINGE 'cd tmp/source/gdb/ && sed < hurd/master.build/gdb/testsuite/gdb.sum -e "s%\(/media/data\)\?${PWD}%[...]%g"' > open_issues/gdb/sum_linux
$ ssh coulomb.SCHWINGE 'cd tmp/gdb/ && sed < hurd/master.build/gdb/testsuite/gdb.sum -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > open_issues/gdb/sum_hurd
diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn
index e8279139..3160c86f 100644
--- a/open_issues/glibc.mdwn
+++ b/open_issues/glibc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 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
@@ -36,8 +36,8 @@ git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -p -C --cc ..sourcewa
-->
-Last reviewed up to the [[Git mirror's 9d65ea3a9b83ac3961229ba296a7caf90abce68d
-(2011-11-17) sources|source_repositories/glibc]].
+Last reviewed up to the [[Git mirror's d40c5d54cb551acba4ef1617464760c5b3d41a14
+(2012-02-28) sources|source_repositories/glibc]].
* t/dup3
@@ -208,6 +208,16 @@ Last reviewed up to the [[Git mirror's 9d65ea3a9b83ac3961229ba296a7caf90abce68d
Then define `_POSIX_MAPPED_FILES`, `_POSIX_SYNCHRONIZED_IO`.
+ * `sys/epoll.h`
+
+ * `sys/eventfd.h`
+
+ * `sys/inotify.h`
+
+ * `sys/signalfd.h`
+
+ * `sys/timerfd.h`
+
* Create `t/cleanup_kernel-features.h`.
* Add tests from Linux kernel commit messages for `t/dup3` et al.
@@ -373,13 +383,15 @@ Last reviewed up to the [[Git mirror's 9d65ea3a9b83ac3961229ba296a7caf90abce68d
* [OK] 22a89187139a9083ca73989bfd11597e0f85cb61 (`malloc: Remove all
kinds of unused configuration options and dead code.`). `NO_STARTER`
changes (should be OK).
- * [OK] 02d46fc4b969e25e4ba0c54aa95fa98d7279bd05 (`Simplify malloc
- initialization`).
+ * [high] `pagesize`, 02d46fc4b969e25e4ba0c54aa95fa98d7279bd05 (`Simplify
+ malloc initialization`); aebae0537dcb408100b88c6b7647a7e858c43237, `BZ
+ 11929`. Is this all kosher for us? See [[!message-id
+ "87mxd9hl2n.fsf@kepler.schwinge.homeip.net"]].
* [OK] 83cd14204559abbb52635006832eaf4d2f42514a (`Remove --wth-tls
option, TLS support is required`).
* a7c8e6a1478de9f990b11e5e853318ccbe4330f2 (`Fix invalid conversion in
__cmsg_nxthdr`). Probably just a C++ thing and not relevant for us;
- see [[message-id "87r52nk1kx.fsf@kepler.schwinge.homeip.net"]].
+ see [[!message-id "87r52nk1kx.fsf@kepler.schwinge.homeip.net"]].
* [high] `__ctype_init`, fd5bdc0924e0cfd1688b632068c1b26f3b0c88da.
Probably need to mirror `init-first.c` change.
* [high] `__attribute__ ((__leaf__))`, `BZ #13344`,
@@ -391,6 +403,23 @@ Last reviewed up to the [[Git mirror's 9d65ea3a9b83ac3961229ba296a7caf90abce68d
edc5984d4d18296d7aa3d8f4ed8f7336a743170e +
57769839788e2c62b68d9dfbf4b35052321278ba.
<http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Function-Attributes.html>.
+ * [low] implement `timespec_get`,
+ 74033a2507841cf077e31221de2481ff30b43d51.
+ * [low] `__volatile`, `BZ #13553`,
+ a784e502472fb3a1afa4d01a47c66b52d23e00f6:
+ `sysdeps/mach/i386/machine-lock.h:typedef __volatile int
+ __spin_lock_t;`, `sysdeps/mach/powerpc/machine-lock.h:typedef
+ __volatile long int __spin_lock_t;`
+ * [high] 6ee65ed6ddbf04402fad0bec6aa9c73b9d982ae4, hopefully OK.
+ * [high] `crti`/`crtn`, 3add8e1353d62d77fdd9b4ca363cdfe7006b0efb,
+ 0e7dfaef514bbb3ec08934c6f7f42953bc149257, should just work.
+ * 7638c0fda568726f52ee5a88e1eadcddcd9fa290, `EHWPOISON`, does
+ [[!message-id
+ "Pine.LNX.4.64.1202191652540.3253@digraph.polyomino.org.uk"]] apply for
+ us?
+ * [low] `conformtest`, 3134156779108fe8b46e0f4cd60d837572faaa93 +
+ 4efeffc1d583597e4f52985b9747269e47b754e2 +
+ d94a4670800de6e8f088b8630ad5142866127980 -- what does it do for us?
# Build
@@ -405,10 +434,18 @@ sources|source_repositories/glibc]], run on coulomb.SCHWINGE.
$ make install_root=/INVALID 2>&1 | tee log_build_
[...]
-This takes up around 400 MiB and needs roughly 120 min on coulomb.SCHWINGE.
+This takes up around 500 MiB and needs roughly X min on kepler.SCHWINGE and 100
+min on coulomb.SCHWINGE (GCC 4.4/4.5/4.6).
<!--
- $ (make install_root=/INVALID && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install_root="$PWD".install install && touch .go-check) 2>&1 | tee log_install && test -f .go-check && make -k install_root=/INVALID check TIMEOUTFACTOR=100 2>&1 | tee log_check
+ $ (make install_root=/INVALID && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install_root="$PWD".install install && touch .go-check) 2>&1 | tee log_install && test -f .go-check && ln -s /usr/lib/i386-*gnu/libstdc++.so.6 /lib/i386-*gnu/libpthread-stubs.so.0 /lib/i386-*gnu/libgcc_s.so.1 mach/libmachuser.so.1 hurd/libhurduser.so.0.3 ./ && make -k install_root=/INVALID check TIMEOUTFACTOR=100 2>&1 | tee log_check
+
+Mask out gcc-4.X (with possibly a backslash before the dot), GCC 4.5's column
+output for (warning, error) messages, GCC 4.6's `[-Wsomething]` or `[enabled by
+default]` identifiers which warning flag triggered.
+
+ $ for f in log_*; do sed -e 's%gcc-4\\\?.[456]%[GCC]%g' -e 's%g++-4\\\?.[456]%[G++]%g' -e 's%\(:[0-9]\+:\)[0-9]\+:%\1%' -e 's% \[\(-W[a-z-]\+\|enabled by default\)\]$%%' < "$f" > "$f".nv; done
+
$ find ./ -name \*.o -o -name \*.os -o -name \*.oS | while read f; do ~/tmp/gcc/git/contrib/compare-debug --preserve ../Roger_Whittaker.build-gcc-4.4-486.O/"$f" "$f"; done 2>&1 | less
$ while read f; do (readelf -a "$f" && objdump -xDrtw "$f") > N && (cd ../Roger_Whittaker.build-gcc-4.4-486.O/ && readelf -a "$f" && objdump -xDrtw "$f") > O && diff -u O N | less; done
$ find ./ -name \*.o -o -name \*.os -o -name \*.oS | while read f; do readelf -h "$f" | grep OS/ABI | (read a b && [ x"$b" != x'UNIX - System V' ] && echo "### $f: $b"); done
@@ -420,18 +457,48 @@ This takes up around 400 MiB and needs roughly 120 min on coulomb.SCHWINGE.
TODO.
+ * With GCC 4.5, there's a ton of these warnings:
+
+ hurd/hurd.h: In function '__hurd_fail':
+ hurd/hurd.h:73: warning: case value '0' not in enumerated type 'error_t'
+
+ ... as well as a few individual instances:
+
+ hurdselect.c: In function '_hurd_select':
+ hurdselect.c:265: warning: case value '0' not in enumerated type 'error_t'
+ get-host.c: In function '_hurd_get_host_config':
+ get-host.c:38: warning: case value '0' not in enumerated type 'error_t'
+ hurdmsg.c: In function '_S_msg_get_init_ints':
+ hurdmsg.c:186: warning: case value '0' not in enumerated type 'error_t'
+ hurdmsg.c: In function '_S_msg_set_init_ints':
+ hurdmsg.c:273: warning: case value '0' not in enumerated type 'error_t'
+ intr-msg.c: In function '_hurd_intr_rpc_mach_msg':
+ intr-msg.c:363: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/setitimer.c: In function 'timer_thread':
+ sysdeps/mach/hurd/setitimer.c:117: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/wait4.c: In function '__wait4':
+ sysdeps/mach/hurd/wait4.c:40: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/fork.c: In function '__fork':
+ sysdeps/mach/hurd/fork.c:423: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/spawni.c: In function '__spawni':
+ sysdeps/mach/hurd/spawni.c:600: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/setpriority.c: In function 'setonepriority':
+ sysdeps/mach/hurd/setpriority.c:66: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/ioctl.c: In function 'send_rpc':
+ sysdeps/mach/hurd/ioctl.c:177: warning: case value '0' not in enumerated type 'error_t'
+ sysdeps/mach/hurd/ioctl.c: In function '__ioctl':
+ sysdeps/mach/hurd/ioctl.c:306: warning: case value '0' not in enumerated type 'error_t'
+
# Install
TODO.
-<!--
$ make install_root="$PWD".install install 2>&1 | tee log_install
[...]
-This takes up around 50 MiB, and needs roughly 1 min on kepler.SCHWINGE and 3
+This takes up around 100 MiB, and needs roughly X min on kepler.SCHWINGE and 18
min on coulomb.SCHWINGE.
--->
## Analysis
@@ -471,25 +538,51 @@ Comparing the results files, [[sum_linux]] to [[sum_hurd]]:
There is quite a baseline of failures.
+
### Additional Failures Compared to Debian
$ bash ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/convertlog.sh log_check > log_check.filtered
$ bash ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/compare.sh ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/expected-results-i486-gnu-libc log_check.filtered
- * `bug-atexit3.out`, `debug/tst-chk4`, `debug/tst-lfschk4`,
- `debug/tst-lfschk5`, `debug/tst-lfschk6`, `debug/tst-chk5`,
- `debug/tst-chk6`
+ * `bug-atexit3.out`, `debug/tst-chk4`, `debug/tst-chk5`, `debug/tst-chk6`,
+ `debug/tst-lfschk4`, `debug/tst-lfschk5`, `debug/tst-lfschk6`
dlopen failed: libstdc++.so.6: cannot open shared object file: No such file or directory
+ See [[!message-id "20090420002344.11798.qmail@s461.sureserver.com"]].
+ Hacked around with `ln -s /usr/lib/i386-*gnu/libstdc++.so.6
+ /lib/i386-*gnu/libpthread-stubs.so.0 /lib/i386-*gnu/libgcc_s.so.1 ./`.
+ This is a bug in the glibc test harness. Should probably use some
+ `configure` magic akin to the `fixincludes` stuff (`gcc-4.4
+ -print-file-name=libstdc++.so.6`, etc.).
+
+ * `debug/tst-chk4`, `debug/tst-chk5`, `debug/tst-chk6`, `debug/tst-lfschk4`,
+ `debug/tst-lfschk5`, `debug/tst-lfschk6`
+
+ Fail in the same way as the C ones, `tst-chk1..3`.
+
* `io/ftwtest`, `posix/globtest`, `iconvdata/iconv-test`, `intl/tst-gettext`,
`malloc/tst-mtrace`, `elf/tst-pathopt`, `iconvdata/tst-tables`,
`grp/tst_fgetgrent`, `dlfcn/tststatic`, `dlfcn/tststatic2`,
- `posix/wordexp-tst`, `localedata/bug-setlocale1.out`
+ `posix/wordexp-tst`, `localedata/bug-setlocale1.out`, `posix/tst-getconf`
/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/io/ftwtest: error while loading shared libraries: libmachuser.so.1: cannot open shared object file: No such file or directory
- Should be using the build-directory one anyway!
+ Looking into `localedata/bug-setlocale1.c`, it is clear what it going on:
+ only the root of the build directory is added for `--library-path`, but
+ none of the other directories that are additionally used. This is a bug in
+ the glibc test harness. Hacked around by `ln -s mach/libmachuser.so.1
+ hurd/libhurduser.so.0.3 ./`. Hopefully the other instances are similar.
+
+ * `posix/tst-getconf`
+
+ Ends with:
+
+ getconf POSIX_ALLOC_SIZE_MIN /: /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486/posix/getconf: pathconf: /: Invalid argument
+
+ * `dlfcn/tststatic`, `dlfcn/tststatic2`
+
+ No output, SEGFAULT.
* `math/test-idouble`, `math/test-ifloat`, `math/test-ildoubl`,
`math/test-ldouble`
@@ -524,11 +617,6 @@ There is quite a baseline of failures.
tst-ether_line.c:19: error: 'ETH_ALEN' undeclared (first use in this function)
- * `posix/tst-getconf`
-
- /bin/sh -e tst-getconf.sh /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/ /home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/elf/ ld.so.1
- make[2]: *** [/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build-gcc-4.4-486.O/posix/tst-getconf.out] Error 127
-
* `time/tst-mktime2`
tst-mktime2.c:132: error: 'INT_MAX' undeclared (first use in this function)
@@ -556,6 +644,10 @@ There is quite a baseline of failures.
/media/erich/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker/string/test-strnlen.c:87: undefined reference to `MIN'
+ * `assert/test-assert.out`
+
+ Fails sometimes...
+
* `stdlib/bug-getcontext.out`
getcontext failed, errno: 1073741902.
diff --git a/open_issues/glibc_madvise_vs_static_linking.mdwn b/open_issues/glibc_madvise_vs_static_linking.mdwn
index 7b5963d3..1f766428 100644
--- a/open_issues/glibc_madvise_vs_static_linking.mdwn
+++ b/open_issues/glibc_madvise_vs_static_linking.mdwn
@@ -11,6 +11,8 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_glibc]]
+[[!sourceware_bug 4822]].
+
$ echo 'int main() {}' | gcc -o /dev/null -static -x c -
/usr/lib/gcc/i486-gnu/4.4.5/../../../libcrt.a(malloc.o): In function `_int_free':
(.text+0xdc3): warning: warning: madvise is not implemented and will always fail
@@ -24,7 +26,13 @@ case of MADV_DONTNEED), but may influence its performance. The kernel is free
to ignore the advice.* (`man madvise`), so we may simply want to turn it into a
no-op in glibc, avoiding the link-time warning.
-2011-07: This is what Samuel has done for Debian glibc.
+GCC c5db973fdab3db3e13db575e5650c0bcfd3630f4 (2011-10-17) makes use of this.
+As we now export the symbol (and `MADV_DONTNEED`, too), GCC will no longer
+`munmap` pages, but will keep them mapped for later re-use. This may increase
+memory usage.
+
+2011-07: This is what Samuel has [done for Debian
+glibc](http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/hurd-i386/local-madvise_warn.diff).
# IRC, freenode, #hurd, 2012-02-16
diff --git a/open_issues/gnat.mdwn b/open_issues/gnat.mdwn
index 30e38317..fb624fad 100644
--- a/open_issues/gnat.mdwn
+++ b/open_issues/gnat.mdwn
@@ -29,6 +29,15 @@ First, make the language functional, have its test suite pass without errors.
[[!inline pages=community/gsoc/project_ideas/gnat feeds=no]]
+
+## Debian GCC
+
+There has a patch been added for GNU/kFreeBSD:
+`bfe081336914729fc0180c07ab4afa41965100f2`, `git-svn-id:
+svn://svn.debian.org/gcccvs/branches/sid@5638
+6ca36cf4-e1d1-0310-8c6f-e303bb2178ca'
+
+
---
diff --git a/open_issues/libtool.mdwn b/open_issues/libtool.mdwn
new file mode 100644
index 00000000..7b2e0fe0
--- /dev/null
+++ b/open_issues/libtool.mdwn
@@ -0,0 +1,19 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+# [[GCC]]: `libtool: finish`: `ldconfig` is not run for the Hurd.
+
+This probably comes from libtool's `libltdl/m4/libtool.m4` (or similar):
+`finish_cmds`.
+
+There are a few other differences between `gnu` and `linux* | k*bsd*-gnu |
+kopensolaris*-gnu`.
diff --git a/open_issues/translators_set_up_by_untrusted_users.mdwn b/open_issues/translators_set_up_by_untrusted_users.mdwn
index 044d5411..1dac130c 100644
--- a/open_issues/translators_set_up_by_untrusted_users.mdwn
+++ b/open_issues/translators_set_up_by_untrusted_users.mdwn
@@ -283,7 +283,9 @@ Protection](https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#Hardlin
do bear some similarity with the issue we're discussing here.
Likewise, Kees Cook, [fs: symlink restrictions on sticky
-directories](http://lwn.net/Articles/468215/), 2011-11-18.
+directories](http://lwn.net/Articles/468215/), 2011-11-18. [2011-12-06
+update](http://lwn.net/Articles/470891/). Jake Edge, [Fixing the symlink race
+problem](http://lwn.net/Articles/472071/), 2011-12-14.
# IRC, freenode, #hurd, 2011-08-31
diff --git a/shortcuts.mdwn b/shortcuts.mdwn
index fd4d4dee..5afa106e 100644
--- a/shortcuts.mdwn
+++ b/shortcuts.mdwn
@@ -97,3 +97,10 @@ ikiwiki will include your shortcut in the standard underlay.
## Notmuch'n'Gmane.
* [[!shortcut name=message-id url="http://thread.gmane.org/%s" desc="""`id:"%s"`"""]]
+
+
+## sourceware
+
+ * [[!shortcut name=sourceware_bug
+ url="http://sourceware.org/bugzilla/show_bug.cgi?id=%s"
+ desc="sourceware.org bug #%s"]]
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 0d239310..213ddd3b 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -27,14 +27,15 @@ Welcome to... [[!img /logo/boxes-redrawn.png link=/logo]] ... the GNU Hurd!
---
- * **[[Hurd]]**[[!if test="destpage(hurd*)" then="
+ * **[[Hurd]]**
* [[Hurd/Documentation]]
- * [[hurd/Running]]"]]
- * **[[microkernel/Mach]]**[[!if test="destpage(microkernel/mach*)" then="
+ * [[hurd/Running]]
+ * **[[microkernel/Mach]]**
* [[microkernel/mach/Documentation]]
- * [[GNU Mach|microkernel/mach/gnumach]]"]]
- * [[microkernel/mach/MIG]][[!if test="destpage(microkernel/mach/mig*)" then="
- * [[microkernel/mach/mig/GNU MIG]]"]]
+ * [[GNU Mach|microkernel/mach/gnumach]]
+ * [[microkernel/mach/MIG]]
+ * [[Documentation|microkernel/mach/mig/documentation]]
+ * [[microkernel/mach/mig/GNU MIG]]
---
diff --git a/toolchain/cross-gnu.mdwn b/toolchain/cross-gnu.mdwn
index 280569ae..451e9d44 100644
--- a/toolchain/cross-gnu.mdwn
+++ b/toolchain/cross-gnu.mdwn
@@ -50,7 +50,7 @@ guarantee is given. Always the preferred version is listed first.
The sources are rooted in `binutils-2_20-branch/src/`. Also use the above
commands for updating, instead of the usual `cvs update`.
- * Release of the 2.20 series from <ftp://ftp.gnu.org/gnu/binutils/>
+ * Release 2.22 or later from <ftp://ftp.gnu.org/gnu/binutils/>
should also be fine.
* [[`src/gcc`|gcc]]
diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn
index 4f8ababd..a0a9c788 100644
--- a/user/Maksym_Planeta.mdwn
+++ b/user/Maksym_Planeta.mdwn
@@ -27,27 +27,31 @@ The same test for tmpfs:
Test 1. The test continued about 5 hours and made 18314766 operations. Then this error message appeared:
-READ BAD DATA: offset = 0x3317, size = 0x7012
-OFFSET GOOD BAD RANGE
-0x 8a93 0x80f8 0x82f8 0x 1
-operation# (mod 256) for the bad data may be 248
-LOG DUMP (18314753 total operations):
-18314754(2 mod 256): WRITE 0x38c1a thru 0x3ffff (0x73e6 bytes)
-18314755(3 mod 256): READ 0x92c3 thru 0x181b3 (0xeef1 bytes)
-18314756(4 mod 256): WRITE 0x138c1 thru 0x1a06b (0x67ab bytes)
-18314757(5 mod 256): MAPWRITE 0x2564 thru 0xbc75 (0x9712 bytes) ******WWWW
-18314758(6 mod 256): MAPREAD 0x3f4e8 thru 0x3ffff (0xb18 bytes)
-18314759(7 mod 256): READ 0x2946a thru 0x30213 (0x6daa bytes)
-18314760(8 mod 256): MAPWRITE 0x31fe6 thru 0x3ffff (0xe01a bytes)
-18314761(9 mod 256): TRUNCATE DOWN from 0x40000 to 0x145e8
-18314762(10 mod 256): MAPWRITE 0xca89 thru 0x1ba74 (0xefec bytes)
-18314763(11 mod 256): MAPWRITE 0xb421 thru 0x11a37 (0x6617 bytes)
-18314764(12 mod 256): READ 0x9495 thru 0xaa45 (0x15b1 bytes)
-18314765(13 mod 256): TRUNCATE DOWN from 0x1ba75 to 0x66cb ******WWWW
-18314766(14 mod 256): READ 0x5fa5 thru 0x66ca (0x726 bytes)
+ READ BAD DATA: offset = 0x3317, size = 0x7012
+ OFFSET GOOD BAD RANGE
+ 0x 8a93 0x80f8 0x82f8 0x 1
+ operation# (mod 256) for the bad data may be 248
+ LOG DUMP (18314753 total operations):
+ 18314754(2 mod 256): WRITE 0x38c1a thru 0x3ffff (0x73e6 bytes)
+ 18314755(3 mod 256): READ 0x92c3 thru 0x181b3 (0xeef1 bytes)
+ 18314756(4 mod 256): WRITE 0x138c1 thru 0x1a06b (0x67ab bytes)
+ 18314757(5 mod 256): MAPWRITE 0x2564 thru 0xbc75 (0x9712 bytes) ******WWWW
+ 18314758(6 mod 256): MAPREAD 0x3f4e8 thru 0x3ffff (0xb18 bytes)
+ 18314759(7 mod 256): READ 0x2946a thru 0x30213 (0x6daa bytes)
+ 18314760(8 mod 256): MAPWRITE 0x31fe6 thru 0x3ffff (0xe01a bytes)
+ 18314761(9 mod 256): TRUNCATE DOWN from 0x40000 to 0x145e8
+ 18314762(10 mod 256): MAPWRITE 0xca89 thru 0x1ba74 (0xefec bytes)
+ 18314763(11 mod 256): MAPWRITE 0xb421 thru 0x11a37 (0x6617 bytes)
+ 18314764(12 mod 256): READ 0x9495 thru 0xaa45 (0x15b1 bytes)
+ 18314765(13 mod 256): TRUNCATE DOWN from 0x1ba75 to 0x66cb ******WWWW
+ 18314766(14 mod 256): READ 0x5fa5 thru 0x66ca (0x726 bytes)
vmstat has broken after about 2 hours, so no leak has been detected.
+Test 2. fsx worked about 8 hours, than computer hanged. Log for last 2 hours of vmstat's work has been spoiled. So no vmstat information.
+
+Test 3. fsx made 7904126 and than data error was occurred. It took about 2 hours, no vmstat was running.
+
5.01.12
UPD 26.01: All these bugs are fixed.
@@ -180,6 +184,14 @@ For debugging ext2fs:
settrans --active --orphan ramdisk0 /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ \
ext2fs/ext2fs.static ramdisk0
+How to install fsx<a id="fsx_install"/>. Get fsx sources using this link: http://codemonkey.org.uk/projects/fsx/fsx-linux.c Than add following line somewhere in code:
+
+ #define msync(...) 0
+
+To compile fsx you may use following line:
+
+ gcc fsx-hurd.c -o fsx -Dlinux -g3 -O0
+
#Questions
1. What are sequence numbers? What are they used for?
diff --git a/user/jkoenig.mdwn b/user/jkoenig.mdwn
index d135e0e5..dc6edd4e 100644
--- a/user/jkoenig.mdwn
+++ b/user/jkoenig.mdwn
@@ -17,9 +17,6 @@ I am a Hurd enthusiast and occasional contributor,
currently a M.Sc. student at University of Strasbourg.
Among other things I am interested in formal methods,
languages and operating system design.
-(Shameless plug:
-I'll be looking for an internship in a research lab from January to June 2012
-and for a position as a Ph.D. student afterwards.)
Contributions include:
@@ -28,9 +25,8 @@ Contributions include:
* Rewrite the procfs translator
([bug-hurd](http://lists.gnu.org/archive/html/bug-hurd/2010-08/msg00165.html)
[thread](http://lists.gnu.org/archive/html/bug-hurd/2010-09/msg00001.html)).
-
-I am working as a GSoC student this summer again,
-for the GNU project,
-on [[Java for Hurd|java]].
-
+ * In 2011 I worked as a GSoC student again,
+ this time for the GNU project,
+ on [[improving Java support|java]].
+ This work is ongoing.
diff --git a/user/jkoenig/java.mdwn b/user/jkoenig/java.mdwn
index e5d288cc..fd12987e 100644
--- a/user/jkoenig/java.mdwn
+++ b/user/jkoenig/java.mdwn
@@ -11,7 +11,7 @@ License|/fdl]]."]]"""]]
[[!tag stable_URL]]
-# Improve Java on Hurd (GSoC 2011)
+# Improve Java on Hurd
## Description
@@ -21,14 +21,19 @@ This includes porting OpenJDK,
creating low-level Java bindings for Mach and Hurd,
as well as creating Java libraries to help with translator development.
-For details, see my original [[proposal]].
+I started working on this as a participant in Google Summer of Code 2011,
+for the GNU project.
+See my original [[proposal]] and final [[report]].
## Current status
-Feeling slightly behind schedule; but project is very ambitious, which has been
-known from the beginning, and there is great progress, so there is no problem.
---[[tschwinge]], 2011-06-29.
+OpenJDK 7 kindof works,
+but there are still imperfections and some integration work remains.
+
+This page is somewhat out-of-date.
+At the moment,
+the GSoC [report] is more accurate.
### Apt repository
diff --git a/user/jkoenig/java/report.mdwn b/user/jkoenig/java/report.mdwn
new file mode 100644
index 00000000..cb1acda9
--- /dev/null
+++ b/user/jkoenig/java/report.mdwn
@@ -0,0 +1,136 @@
+[[!meta copyright="Copyright © 2011 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]]."]]"""]]
+
+# GSoC 2011 final report (Java on Hurd)
+
+This is my final report regarding my work on Java for Hurd
+as a Google Summer of Code student for the GNU project.
+The work is going on,
+for recent status updates, see my [[java]] page.
+
+## Global signal dispositions and SA_SIGINFO
+
+Signal delivery was implemented in Hurd before POSIX threads were
+defined. As a consequence the current semantics differ from the POSIX
+prescriptions, which libgcj relies on.
+
+On the Hurd, each thread has its own signal dispositions and
+process-wide signals are always received by the main thread.
+In contrast, POSIX specifies signal dispositions to be global to the
+process (although there is still a per-thread blocking mask), and a
+global signal can be delivered to any thread which does not block it.
+
+To further complicate the matter, the Hurd currently has two options for
+threads: the cthread library, still used by most of the Hurd code, and
+libpthread which was introduced later for compatibility purposes. To
+avoid breaking existing code, cthread programs should continue to run
+with the historical Hurd signal semantics whereas pthread programs are
+expected to rely on the POSIX behavior.
+
+To address this, the patch series I wrote allows selecting a per-thread
+behavior: by default, newly created threads provide historical
+semantics, but they can be marked by libpthread as global signal
+receivers using the new function `_hurd_sigstate_set_global_rcv()`.
+In addition, I refactored some of the signal code to improve
+readability, and fixed a couple of bugs I came across in the process.
+
+Another improvement which was required by OpenJDK was the implementation
+of the `SA_SIGINFO` flag for signal handlers. My signal patch series
+provides the basic infrastructure. However it is not yet complete, as
+some of the information provided by `siginfo_t` structures is not
+available to glibc. Making this information available would require a
+change in the `msg_sig_post()` RPC.
+
+### Related Debian changes
+
+In Debian GNU/Hurd, libpthread is provided the `hurd` package. Hurd also
+uses extern inline functions from glibc which are affected by the new
+symbols. This means that newer Hurd packages which take advantage of
+glibc's support for global signal dispositions cannot run on older C
+libraries and some thought had to be given to the way we could ensure
+smooth upgrades.
+
+An early attempt at using weak symbols proved to be impractical. As a
+consequence I modified the eglibc source package to enable
+dpkg-gensymbols on hurd-i386. This means that packages which are built
+against a newer libc and make use of the new symbols will automatically
+get an appropriately versionned dependency on libc0.3.
+
+### Status as of 2012-01-28
+
+The patch series has not yet been merged upstream. However, it is now
+being used for the Debian package of glibc.
+
+## $ORIGIN substitution in RPATH
+
+Another feature used by OpenJDK which was not implemented in Hurd is the
+substitution of the special string `$ORIGIN` within the ELF `RPATH`
+header. `RPATH` is a per-executable library search path, within which
+`$ORIGIN` should be substituted by the directory part of the binary's
+canonical file name.
+
+Currently, a newly executed program has no way of figuring out which
+binary it was created from. Actually, even the `_hurd_exec()` function,
+which is used in glibc to implement the `exec*()` family, is never
+passed the file name of the executable, but only a port to it.
+Likewise, the `file_exec()`, `exec_exec()` and `exec_startup_get_info()`
+RPCs do not provide a path to transmit the file name from the shell to
+the file system server, to the exec server, to the executed program.
+
+Last year, Emilio Pozuelo Monfort submitted a patch series which fixes
+this problem, up to the exec server. The series' original purpose was to
+replace the guesswork done by `exec` when running shell scripts. It
+provides new versions of `file_exec()` and `exec_exec()` which allow for
+passing the file name. I extended Emilio's patches to add the missing
+link, namely a new `exec_startup_get_info_2()` RPC. New code in glibc
+takes advantage of it to retrieve the file name and use it in a
+Hurd-specific `dl-origin.c` to allow for `RPATH` `$ORIGIN` substitution.
+
+### Status as of 2012-01-28
+
+The (hurd and glibc) patch series for `$ORIGIN` are mostly complete.
+However, there is still an issue related to the canonicalization of the
+executable's file name. Doing it in the dynamic linker (where `$ORIGIN`
+is expanded) is complicated due to the limited set of available
+functions (`realpath()` is not). Unfortunately canonicalizing in
+`_hurd_exec_file_name()` is not an option either because many shell
+scripts use `argv[0]` to alter their behavior, but `argv[0]` is replaced
+by the shell with the file name it's passed.
+
+Another issue is that the patches use a fixed-length string buffer to
+transmit the file name through RPC.
+
+## OpenJDK 7
+
+With the groundwork above being taken care of, I was able to build
+OpenJDK 7 on Hurd, although heavy portability patching was also
+necessary. A similar effort for Debian GNU/kFreeBSD was undertaken
+around the same time by Damien Raude-Morvan, so I intend to submit a
+more general set of "non-Linux" patches.
+
+Due to the lack of a `libpthread_db` library on the Hurd, I was only
+able to build a Zero (interpreter only) virtual machine so far. However,
+it should be possible to disable the debugging agent and build Hotspot.
+
+### Status as of 2012-01-28
+
+I have put together generic `nonlinux-*.diff` patches for the `openjdk7`
+Debian package, however I have not yet tested them on Linux and kFreeBSD.
+
+## Java bindings
+
+Besides improving Java support on Hurd, my original proposal also
+included the creation of Java bindings for the Hurd interfaces.
+My progress on this front has not been as fast as I would have liked.
+However I have started some of the work required to provide safe Java
+bindings for Mach system calls.
+
+See https://github.com/jeremie-koenig/hurd-java.
+
diff --git a/user/tlecarrour.mdwn b/user/tlecarrour.mdwn
new file mode 100644
index 00000000..46ab6c80
--- /dev/null
+++ b/user/tlecarrour.mdwn
@@ -0,0 +1,51 @@
+[[!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]]."]]"""]]
+
+
+Tanguy LE CARROUR
+=================
+
+Homepage: *none*
+E-mail: [tanguy@bioneland.org](mailto:tanguy@bioneland.org)
+
+I am a Hurd enthusiast and new contributor, mostly working on porting packages
+for **Debian GNU/Hurd**.
+
+
+Contributions
+-------------
+
+
+### Porting Debian Packages:
+
+See the [[package porting general introduction|hurd/porting/guidelines]] and
+my [[porting guide for dummies|porting_guide_for_dummies]].
+
+For each patch make sure to respect the [[patch life cycle|patch_life_cycle]].
+
+* Candidates
+ * [[gphoto2]] (PATH_MAX)
+ * [[libgphoto2]] (function doesn't accept `NULL` buffer)
+ * [[pidgin-microblog]] (PATH_MAX)
+ * [[schism]] (PATH_MAX)
+ * [[shush]] (PATH_MAX)
+ * [[sitecopy]] (PATH_MAX)
+* Work in progress
+ * [[auto-apt]] (PATH_MAX), **submitted**
+ * [[rng-tools]] (PATH_MAX), **discussing**
+ * [[suckless-tools]] (PATH_MAX), **submitted**
+ * [[up-imapproxy]] (PATH_MAX), **discussing**
+ * [[sakura]] (PATH_MAX), **submitted**
+* Accepted
+ * -
+* Stopped
+ * [[memstat]] (PATH_MAX)
+
+
diff --git a/user/tlecarrour/auto-apt.mdwn b/user/tlecarrour/auto-apt.mdwn
new file mode 100644
index 00000000..cceaee9a
--- /dev/null
+++ b/user/tlecarrour/auto-apt.mdwn
@@ -0,0 +1,97 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+auto-apt
+========
+
+When you want to build a program from source and it fails due to missing headers. Auto-apt can search what package would provide the header files.
+(from [[https://help.ubuntu.com/community/AutoApt]])
+
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: 2012-01-24
+* **Discussed**: [2012-01-26](http://lists.debian.org/debian-hurd/2012/01/msg00129.html)
+* **Draft Submitted**: -
+* **Submitted**: 2012-02-07, Bug#[659025](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659025)
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+The output of `grep -R PATH_MAX auto-apt-0.3.22/*` is a bit long. It contains files that have been patched using `#define PATH_MAX XYZ`.
+Here is the only file of interest:
+
+ pkgcdb/pkgtab.c: char buf[PATH_MAX];
+ pkgcdb/pkgtab.c: assert(p - pkg < PATH_MAX);
+ pkgcdb/pkgtab.c: static char buf[PATH_MAX];
+ pkgcdb/pkgtab.c: assert(len < PATH_MAX);
+
+
+* * *
+
+
+Comments
+--------
+
+ +++ auto-apt-0.3.22/auto-apt-pkgcdb.c 2012-02-03 09:25:54.045858173 +0100
+
+ + unsigned char *buf = NULL;
+
+ + while (!feof(stdin)) {
+ unsigned char *fname, *pkg;
+ unsigned char *p;
+ int nslash = 0;
+
+ + buf = get_line(stdin);
+ + if (buf == NULL)
+ + break;
+
+Reading from `stdin` using the `get_line()` function as explained in the [[porting guide|porting_guide_for_dummies]].
+
+ + free(buf);
+
+ +++ auto-apt-0.3.22/pkgcdb/pkgtab.c 2012-01-30 09:05:07.883096049 +0100
+
+ + char *buf = NULL;
+
+ + buf = (char *)malloc(p - pkg + 1);
+ + if (buf == NULL) {
+ + abort();
+ + }
+
+ + free(buf);
+
+ - static char buf[PATH_MAX];
+ + static char *buf;
+
+ + if (buf != NULL) {
+ + free(buf);
+ + }
+ + buf = (char *)malloc(len + 1);
+ + if (buf == NULL) {
+ + abort();
+ + }
+
+
diff --git a/user/tlecarrour/gphoto2.mdwn b/user/tlecarrour/gphoto2.mdwn
new file mode 100644
index 00000000..e5f80bbf
--- /dev/null
+++ b/user/tlecarrour/gphoto2.mdwn
@@ -0,0 +1,53 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+gphoto2
+=======
+
+The gphoto2 digital camera command-line client.
+**Home page**: [[http://www.gphoto.org/proj/libgphoto2]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: -
+* **Discussed**: -
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Only one file relies on `PATH_MAX`: gphoto2/main.c
+First need to patch [[libgphoto2]] package.
+
+
+* * *
+
+
+Comments
+--------
+
+Not yet started.
+
diff --git a/user/tlecarrour/libgphoto2.mdwn b/user/tlecarrour/libgphoto2.mdwn
new file mode 100644
index 00000000..fd18b7ae
--- /dev/null
+++ b/user/tlecarrour/libgphoto2.mdwn
@@ -0,0 +1,51 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+libgphoto2
+==========
+
+ImpulseTracker clone aiming at providing the same look&feel.
+**Home page**: [[http://www.gphoto.org/proj/libgphoto2]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: -
+* **Discussed**: -
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Fix `gphoto2-settings.c:gp_setting_get()` to accept `NULL` pointer and do the allocation.
+This is a requirement for [[gphoto2]] patch.
+
+* * *
+
+
+Comments
+--------
+
+Not yet started.
diff --git a/user/tlecarrour/memstat.mdwn b/user/tlecarrour/memstat.mdwn
new file mode 100644
index 00000000..fc12bd25
--- /dev/null
+++ b/user/tlecarrour/memstat.mdwn
@@ -0,0 +1,145 @@
+[[!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]]."]]"""]]
+
+
+memstat
+=======
+
+Lists all the processes, executables, and shared libraries that are using up virtual memory. It's helpful to see how the shared memory is used and which 'old' libs are loaded.
+**Home page**: [[http://sourceforge.net/projects/memstattool]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: 2012-01-20
+* **Discussed**: [2012-01-21](http://lists.debian.org/debian-hurd/2012/01/msg00081.html)
+* **Draft Submitted**: [2012-01-25](http://lists.debian.org/debian-hurd/2012/01/msg00122.html)
+* **Submitted**: 2012-02-02, Bug#[658384](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658384)
+* **Stopped**: 2012-02-07, depends on `/proc` which is not yet totally implemented on the Hurd.
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX memstat-0.9/*`:
+
+ memstat.c: char *p, major[8], minor[8], buff[PATH_MAX + 300], *path, perm[4];
+ memstat.c: char linkname[PATH_MAX], filename[PATH_MAX];
+ memstat.c: if ((len = readlink(filename, linkname, PATH_MAX)) == -1) {
+
+
+* * *
+
+
+Comments
+--------
+
+Here are comments on the patch...
+
+ +#define FMT_PROC_MAPS "/proc/%d/maps"
+ +#define FMT_PROC_EXE "/proc/%d/exe"
+
+Define string formats.
+
+ static void read_proc(void)
+ {
+ unsigned int nread, pid;
+ unsigned long inode, lo, hi, offs;
+ - char *p, major[8], minor[8], buff[PATH_MAX + 300], *path, perm[4];
+ + char *p, major[8], minor[8], *path, perm[4];
+ + char *buff = NULL;
+ + size_t buff_size = 0;
+
+In this function we turn `buff` into dynamically allocated string.
+
+
+ - sprintf(buff, "/proc/%d/maps", pid);
+ - f = fopen(buff, "r");
+ + char filename[sizeof(FMT_PROC_MAPS) + (sizeof(int) * 3) + 1];
+ + sprintf(filename, FMT_PROC_MAPS, pid);
+ + f = fopen(filename, "r");
+
+Compute the maximum size of `filename` using `sizeof(int) * 3` as explainend in the [[porting guide|porting_guide_for_dummies]].
+
+
+ - while (fgets(buff, sizeof(buff), f)) {
+ + while (!feof(f)) {
+ + buff = get_line(f);
+ + if (buff == NULL)
+ + break;
+
+Read a line from the file using [[get_line()|porting_guide_for_dummies]].
+
+
+ - if ((strlen(buff) == 10) && (strcmp(buff, " (deleted)") == 0))
+ + if ((strlen(buff) == 10) && (strcmp(buff, " (deleted)") == 0)) {
+ + free(buff);
+ continue;
+ + }
+ nread = sscanf(buff, "%lx %lx %4s %lx %s %s %lu %as", &lo, &hi, perm, &offs, major, minor, &inode, &path);
+ + free(buff);
+
+Free the `buff` when it's not used anymore.
+
+
+ + buff_size = 4; /* size of the format string without "%x" expressions */
+ + buff_size += strlen(major);
+ + buff_size += strlen(minor);
+ + buff_size += sizeof(int) * 3 + 1; /* inode */
+ + buff_size += 1; /* '\0' */
+ + buff = malloc(buff_size);
+ + if (buff == NULL) {
+ + perror("Cannot allocate memory!");
+ + exit(1);
+ + }
+
+Compute the size that the `buff` must have.
+
+
+ - char linkname[PATH_MAX], filename[PATH_MAX];
+ - ssize_t len;
+ + char *linkname = NULL;
+ + struct stat sb;
+ + ssize_t len = -1;
+
+In this function we turn linkname into dynamically allocated string.
+filename will be declared later.
+
+
+ - sprintf(filename, "/proc/%d/exe", pid);
+ - if ((len = readlink(filename, linkname, PATH_MAX)) == -1) {
+ + char filename[sizeof(FMT_PROC_EXE) + (sizeof(int) * 3) + 1];
+ + sprintf(filename, FMT_PROC_EXE, pid);
+
+Same as above with `FMT_PROC_MAPS`.
+
+
+ + char filename[sizeof(FMT_PROC_EXE) + (sizeof(int) * 3) + 1];
+ + sprintf(filename, FMT_PROC_EXE, pid);
+ + linkname = readlink_malloc(filename);
+ + if (linkname == NULL) {
+
+Use `readlink_malloc()` as explained in the porting guide because `/proc/PID/exe` doesn't work with `readlink()`
+
+
+ + free(linkname);
+
+Free dynamically allocated variable that is not used anymore.
+
diff --git a/user/tlecarrour/patch_life_cycle.mdwn b/user/tlecarrour/patch_life_cycle.mdwn
new file mode 100644
index 00000000..fd913378
--- /dev/null
+++ b/user/tlecarrour/patch_life_cycle.mdwn
@@ -0,0 +1,90 @@
+[[!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]]."]]"""]]
+
+
+Patch Life Cycle
+================
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Start
+-----
+
+Follow the steps listed on the [[package porting page|porting_guide_for_dummies]].
+
+
+Discuss
+-------
+
+Send the patch for review to [debian-hurd@lists.debian.org](mailto:debian-hurd@lists.debian.org).
+**Before** sending the patch, make sure that you've solved all the known problems listed in the [[package porting general introduction|hurd/porting/guidelines]]
+and the [[porting guide for dummies|porting_guide_for_dummies]].
+
+
+Submit Draft
+------------
+
+When the patch is good enough, you can write the draft of the official bug report.
+This draft should first be sent for review to [debian-hurd@lists.debian.org](mailto:debian-hurd@lists.debian.org) with the patch attached.
+
+Here is an example for memstat:
+
+ Source: memstat
+ Version: 0.9
+ Severity: important
+ Tags: patch
+ User: debian-hurd@lists.debian.org
+ Usertags: hurd
+ X-DebBugs-CC: debian-hurd@lists.debian.org
+
+ Hi,
+
+ This patch solves the build problems for GNU/Hurd due to PATH_MAX
+ issues. The solution is to make dynamic string allocations instead of
+ using fixed length buffers. The patch involves one file, and is
+ trivial. Parts of the code have been reviewed by GNU/Hurd developers
+ and Debian GNU/Hurd developers and maintainers.
+
+ FIXME:
+ Is it really useful to check if BUFSIZ is defined?
+
+ TODO:
+ Should the "whole package" be tested with valgrind on GNU/Linux?!
+ If yes, is there a standard procedure to do it?!
+
+ Thanks!
+ Special thanks to Jérémie and Richard for their comments!
+
+ (Not submitted yet, comments are welcome.)
+
+Once it's been approved, you can proceed to the submission.
+
+
+Submit
+------
+
+The bug report is the same as above, with all the **FIXME**, **TODO** and final comment removed.
+Attach the patch and send it to [submit@bugs.debian.org](mailto:submit@bugs.debian.org).
+Convention for the e-mail subject: `memstat: FTBFS on hurd-i386`
+Convention for the attachment name is: `fix_FTBFS4Hurd.patch`
+
+
+Accept
+------
+
+Once the patch has been accepted, update your patch page!
+**Congratulations!**
+
+
+
diff --git a/user/tlecarrour/pidgin-microblog.mdwn b/user/tlecarrour/pidgin-microblog.mdwn
new file mode 100644
index 00000000..13e37c00
--- /dev/null
+++ b/user/tlecarrour/pidgin-microblog.mdwn
@@ -0,0 +1,57 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+pidgin-microblog
+================
+
+Microblogging plugins for Pidgin.
+**Home page**: [[http://code.google.com/p/microblog-purple/]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: -
+* **Discussed**: -
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX pidgin-microblog-0.3.0/*`:
+
+ pidgin-microblog-0.3.0/microblog/mb_cache.c:static char cache_base_dir[PATH_MAX] = "";
+ pidgin-microblog-0.3.0/microblog/mb_cache.c:snprintf(cache_base_dir, PATH_MAX, "%s/mbpurple", user_dir);
+
+The `cache_base_dir` is static but should only be called through a getter.
+If it has not been initialized, return "" from the getter.
+
+* * *
+
+
+Comments
+--------
+
+Not yet started.
+
diff --git a/user/tlecarrour/porting_guide_for_dummies.mdwn b/user/tlecarrour/porting_guide_for_dummies.mdwn
new file mode 100644
index 00000000..64f0ba0d
--- /dev/null
+++ b/user/tlecarrour/porting_guide_for_dummies.mdwn
@@ -0,0 +1,230 @@
+[[!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]]."]]"""]]
+
+
+Porting Guide for Dummies
+=========================
+
+The problems addressed here were encountered while working
+on fixing **PATH_MAX** and **MAXPATHLEN**.
+
+[[!toc startlevel=2 levels=3]]
+
+
+* * *
+
+
+Test on Hurd
+------------
+
+
+### Installing the required files
+
+As `apt-get source` will download and extract many files, you may want to create a dedicated folder for the package and work from there.
+
+ mkdir PACKAGE
+ cd PACKAGE
+ sudo apt-get build-dep PACKAGE
+ apt-get source PACKAGE
+
+
+### Trying to build the package
+
+ cd PACKAGE_SOURCE
+ dpkg-buildpackage -us -uc -rfakeroot -tc
+
+
+### Test a quick fix
+
+In all the files that use **PATH_MAX**, include those lines at the beginning.
+
+ #ifndef PATH_MAX
+ #define PATH_MAX 4196
+ #endif
+
+Try to rebuild the package and see if it's solved the problem.
+If yes, you can start working on the package.
+
+
+* * *
+
+
+Basic things
+------------
+
+### Maintaining a original version
+
+ mkdir old
+ cp -r PACKAGE_SOURCE old/
+
+
+### Coding style
+
+Follow the conventions used in the source code!
+
+ if (condition) {
+ do_smthg();
+ }
+
+is not the same as:
+
+ if (condition)
+ {
+ do_smthg();
+ }
+
+and is not the same as:
+
+ if (condition)
+ do_smthg();
+
+Pay attention to spaces surrounding, or not, arithmetic signs and symbols:
+
+ a = do_smthg( b + c );
+ a = do_smthg(b+c);
+
+
+### Indentation
+
+By default use 8 spaces as the size for 1 tab.
+Then figure out if the code uses tab + 1/2 tab:
+
+ ....if (condition) {
+ ------->do_smthg();
+ ....}
+
+or tab only:
+
+ ------->if (condition) {
+ ------->------->do_smthg();
+ ------->}
+
+
+### Creating a patch
+
+ diff -Naur old/PACKAGE-VERSION PACKAGE-VERSION > fix_FTBFS4Hurd.patch
+
+
+* * *
+
+
+Known problems
+--------------
+
+### Dynamically allocated buffer returned by a function
+
+Use a static buffer
+
+### Buffer used to format an expression containing an INTEGER
+
+The length of an INTEGER in a string can be up to sizeof (int) * 3 + 1.
+
+> The usual trick for "%d" is to use the constant 'sizeof (int) * 3 + 1'.
+I included + 1 for the sign, but it's not really necessary
+if we exepect sizeof(int) >= 2, which we probably should.
+**Jérémie Koenig**
+
+ log(MAX_INT)
+ = log(2 ^ 32)
+ = 32 * log(2)
+ = 4 * 8 * log(2)
+ = sizeof(int) * 2.40823997
+ < sizeof(int) * 3
+
+
+### Proper use of realloc()
+
+use a new_buff to check if everything went fine Free buf if realloc failed (and prog doesn't exit)
+
+
+### Reading lines from file
+
+Function to read line (no size limit, ending with "\n") from a file.
+
+ static char *get_line(FILE *f)
+ {
+ char *buff = NULL;
+ char *new_buff = NULL;
+ size_t buff_size = 0;
+ size_t last = 0;
+
+ while (!feof(f)) {
+ buff_size = buff_size ? buff_size * 2 : BUFSIZ;
+ new_buff = realloc(buff, buff_size);
+ if (new_buff == NULL) {
+ free(buff);
+ return NULL;
+ }
+ buff = new_buff;
+ if (fgets(buff + last, buff_size - last, f) == NULL) {
+ free(buff);
+ return NULL;
+ }
+ last = strlen(buff);
+ if (buff[last - 1] == '\n')
+ return buff;
+ }
+ return buff;
+ }
+
+
+### Proper use of readlink()
+
+One has to rely on lstat() to get the size of the link that readlink() returns.
+
+Declare what you need:
+
+ char *linkname = NULL;
+ struct stat sb;
+ ssize_t len = -1;
+
+Call lstat() and check return value:
+
+ if (lstat(filename, &sb) == -1) {
+
+Create a buffer of the appropriate size and check the return value:
+
+ linkname = malloc(sb.st_size + 1);
+ if (linkname == NULL) {
+
+Call readlink(), check return value and set the null char in the linkname:
+
+ len = readlink(filename, linkname, sb.st_size + 1);
+ if (len < 0 || len > sb.st_size) {
+ ...
+ linkname[sb.st_size] = '\0';
+
+
+### Alternative use of readlink(): readlink_malloc()
+
+In some cases the above approch doesn't work.for instance when reading from
+**/proc/*/exe** on Linux. In this case you can try the following function.
+The code comes from [[https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/806-BSI.html]]
+
+ static char *readlink_malloc(const char *filename)
+ {
+ int size = 100;
+
+ while (1) {
+ char *buff = malloc(size);
+ if (buff == NULL)
+ return NULL;
+ int nchars = readlink(filename, buff, size);
+ if (nchars < 0)
+ return NULL;
+ if (nchars < size) {
+ buff[nchars] = '\0';
+ return buff;
+ }
+ free (buff);
+ size *= 2;
+ }
+ }
+
diff --git a/user/tlecarrour/rng-tools.mdwn b/user/tlecarrour/rng-tools.mdwn
new file mode 100644
index 00000000..4ea60ac8
--- /dev/null
+++ b/user/tlecarrour/rng-tools.mdwn
@@ -0,0 +1,58 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+rng-tools
+=========
+
+Daemon to use a Hardware TRNG. The rngd daemon acts as a bridge between a Hardware TRNG (true random number generator) such as the ones in some Intel/AMD/VIA chipsets, and the kernel's PRNG (pseudo-random number generator).
+(from [[http://packages.debian.org/lenny/rng-tools]])
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: 2012-01-28
+* **Discussed**: [2012-01-30](http://lists.debian.org/debian-hurd/2012/01/msg00177.html)
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX rng-tools-2-unofficial-mt.14/*`:
+
+ viapadlock_engine.c:static char cpudev_path[PATH_MAX+1];
+ viapadlock_engine.c:char devpath[PATH_MAX+1];
+
+
+* * *
+
+
+Comments
+--------
+
+Work in progress, see related [thread](http://lists.debian.org/debian-hurd/2012/01/msg00177.html).
+
+Even if the **PATH_MAX** can be easily fixed, some problems remain.
+The code uses `linux/types.h`, that has to be replaced by `sys/types.h`, but also uses `linux/random.h` which has no equivalent I know of.
+At least one source file is named after the OS: `rngd_linux.c`.
diff --git a/user/tlecarrour/sakura.mdwn b/user/tlecarrour/sakura.mdwn
new file mode 100644
index 00000000..d0cd8711
--- /dev/null
+++ b/user/tlecarrour/sakura.mdwn
@@ -0,0 +1,77 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+sakura
+======
+
+Simple but powerful libvte-based terminal emulator.
+**Home page**: [[http://www.pleyades.net/david/sakura.php]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: 2012-02-03
+* **Discussed**: [2012-02-03](http://lists.debian.org/debian-hurd/2012/02/msg00031.html)
+* **Draft Submitted**: -
+* **Submitted**: 2012-02-07, Bug#[659018](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659018)
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX sakura-2.4.2/*`:
+
+ src/sakura.c: char buf[PATH_MAX+1];
+
+
+* * *
+
+
+Comments
+--------
+
+ + char *buf = NULL;
+ + struct stat sb;
+
+Will dynamically allocate the buffer according to information provided by `lstat()`.
+
+ + if (lstat(file, &sb) == -1) {
+ + return cwd;
+ + }
+ + buf = malloc(sb.st_size + 1);
+
+Do the allocation. Don't bother to check for return value as `g_strdup_printf()` doesn't do it.
+
+ + len = readlink (file, buf, sb.st_size + 1);
+
+ + if (len < 0 || len > sb.st_size) {
+ + g_free(buf);
+ + return cwd;
+ + }
+
+Check `realink()` return value.
+
+ + g_free(buf);
+
+Free the dynamically allocated buffer.
+
diff --git a/user/tlecarrour/schism.mdwn b/user/tlecarrour/schism.mdwn
new file mode 100644
index 00000000..3f726832
--- /dev/null
+++ b/user/tlecarrour/schism.mdwn
@@ -0,0 +1,116 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+schism
+======
+
+ImpulseTracker clone aiming at providing the same look&feel.
+**Home page**: [[http://nimh.org/schismtracker]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: -
+* **Discussed**: -
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX schism-0+20110101/*`:
+
+ include/disko.h: char tempname[PATH_MAX];
+ include/disko.h: char filename[PATH_MAX];
+ include/headers.h:# undef PATH_MAX
+ schism/disko.c: if (len + 6 >= PATH_MAX) {
+ schism/audio_loadsave.c:char song_filename[PATH_MAX + 1];
+ schism/audio_loadsave.c: strncpy(song_filename, file, PATH_MAX);
+ schism/audio_loadsave.c: song_filename[PATH_MAX] = '\0';
+ schism/page_loadmodule.c:static char filename_entry[PATH_MAX + 1] = "";
+ schism/page_loadmodule.c:static char dirname_entry[PATH_MAX + 1] = "";
+ schism/page_loadmodule.c:char cfg_module_pattern[PATH_MAX + 1] = GLOB_DEFAULT;
+ schism/page_loadmodule.c:static char glob_list_src[PATH_MAX + 1] = ""; // the pattern used to make glob_list (this is an icky hack)
+ schism/page_loadmodule.c: strncpy(glob_list_src, globspec, PATH_MAX);
+ schism/page_loadmodule.c: glob_list_src[PATH_MAX] = '\0';
+ schism/page_loadmodule.c: strncpy(cfg_dir_modules, ptr, PATH_MAX);
+ schism/page_loadmodule.c: cfg_dir_modules[PATH_MAX] = 0;
+ schism/page_loadmodule.c: create_textentry(widgets_loadmodule + 2, 13, 46, 64, 0, 3, 3, NULL, filename_entry, PATH_MAX);
+ schism/page_loadmodule.c: create_textentry(widgets_loadmodule + 3, 13, 47, 64, 2, 3, 0, NULL, dirname_entry, PATH_MAX);
+ schism/page_loadmodule.c: create_textentry(widgets_exportsave + 2, 13, 46, 64, 0, 3, 3, NULL, filename_entry, PATH_MAX);
+ schism/page_loadmodule.c: create_textentry(widgets_exportsave + 3, 13, 47, 64, 2, 0, 0, NULL, dirname_entry, PATH_MAX);
+ schism/util.c: char buf[PATH_MAX];
+ schism/util.c: if (strlen(filename) > PATH_MAX - 16) {
+ schism/util.c: char buf[PATH_MAX + 1];
+ schism/util.c: if (getcwd(buf, PATH_MAX))
+ schism/util.c: char buf[PATH_MAX + 1];
+ schism/util.c: if (getcwd(buf, PATH_MAX))
+ schism/util.c: char buf[PATH_MAX + 1];
+ schism/util.c: char buf[PATH_MAX];
+ schism/util.c: char buf2[PATH_MAX];
+ schism/util.c: if (!GetCurrentDirectory(PATH_MAX-1,buf)) return 0;
+ schism/util.c: snprintf(buf2, PATH_MAX-2, "%s.bat", name);
+ schism/main.c: strncpy(cfg_dir_modules, initial_dir, PATH_MAX);
+ schism/main.c: cfg_dir_modules[PATH_MAX] = 0;
+ schism/main.c: strncpy(cfg_dir_samples, initial_dir, PATH_MAX);
+ schism/main.c: cfg_dir_samples[PATH_MAX] = 0;
+ schism/main.c: strncpy(cfg_dir_instruments, initial_dir, PATH_MAX);
+ schism/main.c: cfg_dir_instruments[PATH_MAX] = 0;
+ schism/page_loadinst.c:static char inst_cwd[PATH_MAX+1] = "";
+ schism/page_loadinst.c:static char slash_search_str[PATH_MAX];
+ schism/page_loadinst.c: strncpy(cfg_dir_instruments, ptr, PATH_MAX);
+ schism/page_loadinst.c: cfg_dir_instruments[PATH_MAX] = 0;
+ schism/page_loadinst.c: strncpy(inst_cwd, ptr, PATH_MAX);
+ schism/page_loadinst.c: inst_cwd[PATH_MAX] = 0;
+ schism/page_loadinst.c: if (slash_search_mode < PATH_MAX) {
+ schism/config.c:char cfg_dir_modules[PATH_MAX + 1], cfg_dir_samples[PATH_MAX + 1], cfg_dir_instruments[PATH_MAX + 1],
+ schism/config.c: cfg_dir_dotschism[PATH_MAX + 1], cfg_font[NAME_MAX + 1];
+ schism/config.c: strncpy(cfg_dir_dotschism, ptr, PATH_MAX);
+ schism/config.c: cfg_dir_dotschism[PATH_MAX] = 0;
+ schism/config.c: cfg_get_string(&cfg, "Directories", "modules", cfg_dir_modules, PATH_MAX, tmp);
+ schism/config.c: cfg_get_string(&cfg, "Directories", "samples", cfg_dir_samples, PATH_MAX, tmp);
+ schism/config.c: cfg_get_string(&cfg, "Directories", "instruments", cfg_dir_instruments, PATH_MAX, tmp);
+ schism/config.c: strncpy(cfg_module_pattern, ptr, PATH_MAX);
+ schism/config.c: cfg_module_pattern[PATH_MAX] = 0;
+ schism/page_vars.c: cfg_dir_modules, PATH_MAX);
+ schism/page_vars.c: cfg_dir_samples, PATH_MAX);
+ schism/page_vars.c: cfg_dir_instruments, PATH_MAX);
+ schism/page_loadsample.c:static char current_filename[PATH_MAX];
+ schism/page_loadsample.c:static char search_str[PATH_MAX];
+ schism/page_loadsample.c: PATH_MAX-1);
+ schism/page_loadsample.c: PATH_MAX-1);
+ schism/page_loadsample.c: strncpy(cfg_dir_samples, ptr, PATH_MAX);
+ schism/page_loadsample.c: cfg_dir_samples[PATH_MAX] = 0;
+ schism/page_loadsample.c: if (search_pos < PATH_MAX) {
+
+
+* * *
+
+
+Comments
+--------
+
+Not yet started.
+
+Looks like a lot, but most of them, if not all, are trivial.
diff --git a/user/tlecarrour/shush.mdwn b/user/tlecarrour/shush.mdwn
new file mode 100644
index 00000000..68a824f0
--- /dev/null
+++ b/user/tlecarrour/shush.mdwn
@@ -0,0 +1,75 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+shush
+=====
+
+Runs a command and optionally reports its output by mail.
+**Home page**: [[http://web.taranis.org/shush]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: -
+* **Discussed**: -
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX shush-1.2.3/*`:
+
+ src/shush.c: char cfdir[PATH_MAX+1], *slfac, *to[3];
+ src/shush.c: strlcpy(cfdir+1, optarg, PATH_MAX);
+ src/shush.c: snprintf(cfdir+1, PATH_MAX, "%s/.shush", getenv("HOME"));
+ src/crontab.c: static char cfname[PATH_MAX];
+ src/crontab.c: snprintf(cfname, PATH_MAX, "%s/schedule", cfdname);
+ src/crontab.c: snprintf(cfname, PATH_MAX, "%s/%s", cfdname, token);
+ src/crontab.c: snprintf(cfname, PATH_MAX, "%s/%s", cfdname, entry->d_name);
+ src/crontab.c: char tag[PATH_MAX+80], *oldtab, *mytab, newtab[PATH_MAX];
+ src/crontab.c: snprintf(newtab, PATH_MAX, "%s/%s-crontab.XXXXXX",
+ src/state.c:static char statepath[PATH_MAX];
+ src/state.c: snprintf(statepath, PATH_MAX, "%s/.state/shtate-%lu-%s-%s-%u",
+ src/state.c: snprintf(statepath, PATH_MAX, "%s/shtate-%lu-%s-%s-%u",
+ src/run.c: char fname[PATH_MAX], outlog[PATH_MAX], errlog[PATH_MAX], *outstr, *errstr;
+ src/run.c: snprintf(fname, PATH_MAX, "%s/%s", cfdir, job);
+ src/run.c: snprintf(outlog, PATH_MAX, "%s.stdout", cf_getstr(CF_CONFIG));
+ src/run.c: snprintf(errlog, PATH_MAX, "%s.stderr", cf_getstr(CF_CONFIG));
+ src/run.c: snprintf(fname, PATH_MAX, "%s/.%s-%s", cfdir, jid, get_hostname(0));
+ src/run.c: snprintf(outlog, PATH_MAX, "%s/%s-%s.stdout.XXXXXX",
+ src/run.c: snprintf(errlog, PATH_MAX, "%s/%s-%s.stderr.XXXXXX",
+ src/check.c: char fname[PATH_MAX], outre[PATH_MAX], errre[PATH_MAX], *outstr, *errstr;
+ src/check.c: snprintf(fname, PATH_MAX, "%s/%s", cfdir, job);
+ src/check.c: snprintf(outre, PATH_MAX, "%s.stdout", cf_getstr(CF_CONFIG));
+ src/check.c: snprintf(errre, PATH_MAX, "%s.stderr", cf_getstr(CF_CONFIG));
+
+
+* * *
+
+
+Comments
+--------
+
+Not yet started.
diff --git a/user/tlecarrour/sitecopy.mdwn b/user/tlecarrour/sitecopy.mdwn
new file mode 100644
index 00000000..11f512ae
--- /dev/null
+++ b/user/tlecarrour/sitecopy.mdwn
@@ -0,0 +1,73 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+sitecopy
+========
+
+A program for managing a WWW site via FTP, DAV or HTTP.
+**Home page**: [[http://www.manyfish.co.uk/sitecopy]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: -
+* **Discussed**: -
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX sitecopy-0.16.6/*`:
+
+ intl/dcigettext.c: PATH_MAX but might cause redefinition warnings when sys/param.h is
+ intl/dcigettext.c:#ifndef _POSIX_PATH_MAX
+ intl/dcigettext.c:# define _POSIX_PATH_MAX 255
+ intl/dcigettext.c:#if !defined PATH_MAX && defined _PC_PATH_MAX
+ intl/dcigettext.c:# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+ intl/dcigettext.c:#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+ intl/dcigettext.c:#if !defined PATH_MAX && defined MAXPATHLEN
+ intl/dcigettext.c:# define PATH_MAX MAXPATHLEN
+ intl/dcigettext.c:#ifndef PATH_MAX
+ intl/dcigettext.c:# define PATH_MAX _POSIX_PATH_MAX
+ intl/dcigettext.c: path_max = (unsigned int) PATH_MAX;
+ src/ftp.c:#include <limits.h> /* for PATH_MAX */
+ src/ftp.c:#ifndef PATH_MAX
+ src/ftp.c:#define PATH_MAX 2048
+ src/ftp.c: char cwd[PATH_MAX];
+ src/ftp.c: char dir[PATH_MAX];
+ src/ftp.c: if (!sess->use_cwd || fn[0] != '/' || strlen(fn) > PATH_MAX)
+ debian/patches/10_bts410703_preserve_storage_files_sigint.dpatch:+ char filebuf[PATH_MAX];
+ debian/patches/10_bts410703_preserve_storage_files_sigint.dpatch:+ char filebuf[PATH_MAX];
+
+
+* * *
+
+
+Comments
+--------
+
+Not yet started.
+
+One of the PATH_MAX if used in debian patch.
diff --git a/user/tlecarrour/suckless-tools.mdwn b/user/tlecarrour/suckless-tools.mdwn
new file mode 100644
index 00000000..2a3cb5df
--- /dev/null
+++ b/user/tlecarrour/suckless-tools.mdwn
@@ -0,0 +1,79 @@
+[[!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]]."]]"""]]
+
+
+suckless-tools
+==============
+
+Home of dwm, dmenu and other quality software with a focus on simplicity, clarity, and frugality.
+**Home page**: [[http://suckless.org]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: 2012-01-31
+* **Discussed**: [2012-01-31](http://lists.debian.org/debian-hurd/2012/01/msg00191.html)
+* **Draft Submitted**: [2012-02-01](http://lists.debian.org/debian-hurd/2012/02/msg00001.html)
+* **Submitted**: 2012-02-02, Bug#[658386](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658386)
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX suckless-tools-38/*`:
+
+ dmenu/dmenu_path.c: char buf[PATH_MAX];
+
+
+* * *
+
+
+Comments
+--------
+
+Here are comments on the patch...
+
+ void
+ scan(void) {
+ - char buf[PATH_MAX];
+ + char *buf = NULL;
+ + char *new_buf = NULL;
+ + size_t buf_size = 0;
+
+In this function we turn `buf` into dynamically allocated string.
+
+
+ while((ent = readdir(dp))) {
+ + buf_size = strlen(dir)+strlen(ent->d_name)+2;
+ + if(!buf || strlen(buf) < buf_size) {
+ + new_buf = realloc(buf, buf_size);
+ + if(!new_buf)
+ + die("realloc failed");
+ + buf = new_buf;
+ + }
+
+For each directory entry we create or adapt the buffer size.
+
+
+ }
+ + free(buf);
+
+We free the buf when done.
+
diff --git a/user/tlecarrour/up-imapproxy.mdwn b/user/tlecarrour/up-imapproxy.mdwn
new file mode 100644
index 00000000..f97207e0
--- /dev/null
+++ b/user/tlecarrour/up-imapproxy.mdwn
@@ -0,0 +1,59 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+
+up-imapproxy
+============
+
+SquirrelMail's IMAP Proxy is a caching IMAP proxy server intended for use with webmail clients that cannot maintain persistent connections to an IMAP server.
+**Home page**: [[http://www.imapproxy.org]]
+
+[[!toc startlevel=2]]
+
+
+* * *
+
+
+Log
+---
+
+* **Started**: 2012-01-31
+* **Discussed**: [2012-02-03](http://lists.debian.org/debian-hurd/2012/02/msg00027.html)
+* **Draft Submitted**: -
+* **Submitted**: -
+* **Accepted**: -
+
+
+* * *
+
+
+ToDo
+----
+
+Here is the output of `grep -R PATH_MAX up-imapproxy-1.2.7/*`:
+
+ src/main.c: char f_randfile[ PATH_MAX ];
+
+
+* * *
+
+
+Comments
+--------
+
+Work in progress...
+
+Only the function that fills the buffer knows how long it can be.
+This function is `RAND_file_name()` and is part of **OpenSSL**.
+
+Probably **OpenSSL** function has to be fixed first to accept `NULL` buffer.
+Then fix the up-imapproxy code to use the new version of the function.