diff options
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. |