diff options
-rw-r--r-- | community/weblogs/ArneBab/tasks-for-the-hurd.mdwn | 1 | ||||
-rw-r--r-- | community/weblogs/ArneBab/what_we_need.mdwn | 2 | ||||
-rw-r--r-- | contributing/web_pages/news/hurd_2013.mdwn | 89 | ||||
-rw-r--r-- | contributing/web_pages/news/qoth_next.mdwn | 48 | ||||
-rw-r--r-- | faq/2_gib_partition_limit.mdwn | 4 | ||||
-rw-r--r-- | faq/drivers.mdwn | 5 | ||||
-rw-r--r-- | faq/emacs.mdwn | 15 | ||||
-rw-r--r-- | faq/fd.mdwn | 3 | ||||
-rw-r--r-- | faq/sata_disk_drives.mdwn | 8 | ||||
-rw-r--r-- | faq/slow.mdwn | 3 | ||||
-rw-r--r-- | faq/still_useful.mdwn | 3 | ||||
-rw-r--r-- | hurd/building.mdwn | 30 | ||||
-rw-r--r-- | hurd/running/virtualbox.mdwn | 4 | ||||
-rw-r--r-- | microkernel/mach/gnumach/hardware_compatibility_list.mdwn | 8 | ||||
-rw-r--r-- | open_issues/binutils.mdwn | 22 | ||||
-rw-r--r-- | open_issues/gccgo.mdwn | 55 | ||||
-rw-r--r-- | open_issues/gdb.mdwn | 27 | ||||
-rw-r--r-- | open_issues/gnat.mdwn | 49 | ||||
m--------- | toolchain/logs | 10 | ||||
-rw-r--r-- | user/musial.mdwn | 2 |
20 files changed, 301 insertions, 87 deletions
diff --git a/community/weblogs/ArneBab/tasks-for-the-hurd.mdwn b/community/weblogs/ArneBab/tasks-for-the-hurd.mdwn index bf6224b2..1f929116 100644 --- a/community/weblogs/ArneBab/tasks-for-the-hurd.mdwn +++ b/community/weblogs/ArneBab/tasks-for-the-hurd.mdwn @@ -46,7 +46,6 @@ Tasks for the Hurd - Implement USB support, maybe using DDE or DDEkit -> prerequisite to system on USB. - Add Wireless support, maybe via DDE. - Add sound support via a sound translator. -- Add SATA support. - Stabilize Xorg, so it can run fast for days. - Add PPPoE capablilities. - Debug NFS for climm, w3m and git. diff --git a/community/weblogs/ArneBab/what_we_need.mdwn b/community/weblogs/ArneBab/what_we_need.mdwn index 4511eb64..465b3e3f 100644 --- a/community/weblogs/ArneBab/what_we_need.mdwn +++ b/community/weblogs/ArneBab/what_we_need.mdwn @@ -6,7 +6,7 @@ As soon as these issues are taken care of, the Hurd offers everything we need fo - Wireless (5): Arne, ms, Carl Fredrik, Michael (netbook), antrik (notebook) - Sound (4): ms, Carl Fredrik, Michael, antrik² -- SATA (2): Michael, (Emilio) +- SATA (2): Michael, (Emilio). Done. - Tested for modern machines°¹ (2): Emilio, antrik (notebook) - Stable Xorg° (2): Emilio, antrik - PPPoE (2): Carl Fredrik, antrik² diff --git a/contributing/web_pages/news/hurd_2013.mdwn b/contributing/web_pages/news/hurd_2013.mdwn new file mode 100644 index 00000000..e5bbaea1 --- /dev/null +++ b/contributing/web_pages/news/hurd_2013.mdwn @@ -0,0 +1,89 @@ +[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +<!-- Date when the news item is (to be) pulished (important for RSS feeds). +Will be set by tschwinge when publishing. +[[!meta date="YYYY-MM-DD HH:MM UTC"]] +--> + +Note: this is a **DRAFT**. The release has not actually happened yet. Please do not broadcast yet. + +Debian GNU/Hurd 2013 *released*! + +[[!if test="included()" then="""[[!toggle id=full_news +text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]""" +else=" +[[!paste id=full_news]]"]] + +[[!cut id="full_news" text=""" + +It is with huge pleasure that the Debian GNU/Hurd port announces the +**release of Debian GNU/Hurd 2013**. +This is a snapshot of Debian sid at the time of the Debian +Wheezy release (May 2013), so it is mostly based on Wheezy. It is *not* an +official Debian release, but it is an official Debian GNU/Hurd port release. + +The installation ISO images can be downloaded from +[[Debian Ports|http://ftp.debian-ports.org/debian-cd/hurd-i386/current/]] +with the usual 3 Debian flavors: NETINST, CD, or DVD. Besides the friendly +Debian installer, a pre-installed disk image is also available, making it even easier to try +Debian GNU/Hurd. + +Debian GNU/Hurd is currently available for the i386 architecture with more +than 10.000 software packages available (> 75% of the Debian archive, and more +to come!). + +Please make sure to read the +[[configuration information|http://www.debian.org/ports/hurd/hurd-install]], +the [[FAQ|faq]], +and the [[translator primer|hurd/documentation/translator_primer]] +for a start. + +Due to the very small number of developers, +our progress of the project has not been as fast as other successful +Operating Systems, but we believe to have reached a very good +state, even with the limited resources. + +We would like to thank all the people who have worked on GNU/Hurd over the past +decades. There were not many people at any given time (and still not many people +today, please [[join|contributing]]!), but in the end a lot of people have +contributed one way or the other. **Thanks everybody!** + +**A Debian GNU/Hurd Timeline** + +- 1997: Last release of the Hurd without Debian: GNU Hurd 0.2. +- 2002: GNU MIG 1.3, libio-based glibc, GNU Mach 1.3 (disks >= 10GiB), Hurd L4 starts, work on the transition from cthreads to pthreads starts, Hurd installation party in Heidelberg, Toronto Hurd User Group meeting, Presentation at EpX in Paris ([slides](http://kilobug.free.fr/hurd/pres-en/)). +- 2003: [Crosshurd](http://packages.debian.org/crosshurd), [LinuxTag 2003](http://lists.gnu.org/archive/html/help-hurd/2003-07/msg00029.html). +- 2005: Hurd/L4 at Libre Software Meeting. +- 2007: [[FOSDEM|community/meetings/fosdem_2007]], the [[critique_and_position_paper|news/2007-01-14]], [[libchannel_for_GSoC|news/2007-10-01]], [[IPv6|news/2007-10-12]], Hurd/L4 abandoned, Hurd on Xen. +- 2008: [[5_successful_GSoC_projects|news/2008-09-11]], [[Hurd/Viengoos|news/2008-12-12]]. +- 2009: [[GSoC_unionmount_translator|news/2009-09-30]], [[Start_of_Device_Drivers_in_Userspace|news/2009-11-30]]. 66% of the Debian packages build. +- 2010: [Arch Hurd](http://www.archhurd.org/), [Initial Nix port](http://hydra.nixos.org/jobset/gnu/hurd-master), [[DDE|news/2010-02-28]], Thesis: [[Generalizing mobility for the Hurd|news/2010-01-31]], [Hurd article in LWN](http://lwn.net/Articles/395150/), [[procfs|hurd/translator/procfs]], Talk: [It’s about Freedom](http://audio-video.gnu.org/video/ghm2010/GNU-Hurd_-_Its_About_Freedom,_Or_Why_you_should_care.ogv), GSoC: Debian Installer, Hurd/Viengoos on hold. 68% of the Debian packages build. +- 2011: [[GNU_Hurd_0.401|news/2011-04-01]], xkb, [Hurd in xkcd](http://xkcd.com/844/), Graphical Debian Installer, Plans for Debian GNU Hurd in Wheezy, Hurd [bounties](http://www.fossfactory.org/project/p276) on FOSS Factory, [[Lots of attention from the press brought lots of rumors|news/2011-q2-ps]], [Talk at GHM in Paris](http://www.gnu.org/ghm/2011/paris/#outline-container-2-5) ([video](http://audio-video.gnu.org/video/ghm2011/Samuel_Thibault-GNU_Hurd.ogv)), slab allocator, Continuous builds with Nix, improved build system, GSoC: [[Java|user/jkoenig/java]]. 70% of the Debian packages build. +- 2012: Half the Linux 2.6.32 network drivers build with DDE, [Continuous testing with Nix](http://lists.gnu.org/archive/html/bug-hurd/2012-03/msg00019.html), glibc changes pushed upstream, improved debugging, memory mapping [with red-black tree](http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00109.html), pthreads work, [[live-filesystem-debugging_report|news/2012-q1-q2]]. +- 2013: [Talk at FOSDEM](https://fosdem.org/2013/schedule/event/hurd_microkernel/). + +--- + +The **GNU Hurd** is the GNU project's replacement for the Unix kernel. It is a +collection of servers that run on the Mach microkernel to implement file +systems, network protocols, file access control, and other features that are +implemented by the Unix kernel or similar kernels (such as Linux). [[More +detailed|hurd/documentation]]. + +**GNU Mach** is the microkernel upon which a GNU Hurd system is based. It +provides an Inter Process Communication (IPC) mechanism that the Hurd uses to +define interfaces for implementing in a distributed multi-server fashion the +services a traditional operating system kernel provides. [[More +detailed|microkernel/mach/gnumach]]. + +<!--see [[contributing/web_pages/news/writing_the_qoth]] for additional information on writing the QotH.--> + +"""]] diff --git a/contributing/web_pages/news/qoth_next.mdwn b/contributing/web_pages/news/qoth_next.mdwn index 96efacbc..80059025 100644 --- a/contributing/web_pages/news/qoth_next.mdwn +++ b/contributing/web_pages/news/qoth_next.mdwn @@ -15,7 +15,7 @@ Will be set by tschwinge when publishing. <!-- This is just a skeleton. Use it to create a new QotH. --> -A quarter of the Hurd, Q2 of 2012: *TODO*, *TODO* and *TODo*. +A quarter of the Hurd, Q3/Q4 of 2012: *pthreads*, *installation CDs*, *hardware* and *porting*. [[!if test="included()" then="""[[!toggle id=full_news text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]""" else=" @@ -23,48 +23,24 @@ else=" [[!cut id="full_news" text=""" -<!--basic structure of a QotH entry. Adapt, reduce and add points as needed. At the end, try to make the text flow as a unified whole.--> +At the end of the last 2 quarters, Samuel Thibault pushed the [pthread patches](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00088.html) from Vicente Hernando Ara, Barry de Freese, Thomas DiModica, Thomas Schwinge, Richard Braun and Samuel and others to the different upstream packages, finally enabling modern pthreads for the Hurd, which makes it possible to implement full Hurd bindings for languages which require pthreads. So for example [PyHurd](http://savannah.nongnu.org/projects/pyhurd/) can profit from the Hurd libraries instead of having to rely on low-level Mach bindings to implement Hurd features like translators. -News items: +The switch to pthreads has been attempted multiple times, but in the past it always hit some tricky issues which proved to be a roadblock. Last year, Richard Braun took up the task again and finished the transition of the Hurd libraries and glibc to pthreads with libpthread. -- For details, see Richards report about running -[Hurd without dependency on cthreads](http://lists.gnu.org/archive/html/bug-hurd/2012-08/msg00062.html). -- new cd images with keyboard layout configuration http://lists.gnu.org/archive/html/bug-hurd/2012-07/msg00048.html -- Pino Toscano: FIFO sockets with mknod (test passes now) http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00053.html -- Pino Toscano added a size parameter to tmpfs for easier usage in scripts: http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00005.html and a [version suffix option](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00009.html) for gnumach configure. -- Pino Toscano added patches for [procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00004.html), [ptrace](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00035.html), [fsync on stdout](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00046.html), [muntrace](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00033.html), [ulimit](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00034.html), [glibc](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00029.html) which among others improve POSIX conformance, making it easier to write programs which work on the Hurd and GNU/Linux. -- Cyril Roeland fixed a documentation typo [in ps](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00032.html) and a missing linker flag [in procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00025.html). +As followups, Thomas Schwinge [debugged and fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00044.html) a deadlock with child threads resulting from a regression due to earlier fixes, and Cyril Roelandt shared a [patch series](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00018.html) to fix double mutex unlocking with pthreads. We will likely see more fixes like these, given that the whole threading interface changed, which will expose previously invisible bugs. -- Samuel Thibault pushed the [pthread patches](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00088.html) from Vincente, Barry, Thomas, Richard and Samuel and others to the different upstream packages, finally enabling modern pthreads for the Hurd, which makes it possible to implement full Hurd bindings for languages which require pthreads, so for example [PyHurd](http://savannah.nongnu.org/projects/pyhurd/) can profit from the Hurd libraries instead of having to rely on low-level Mach bindings to implement Hurd features. -- Thomas Schwinge fixed [some errors](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00077.html) which caused a miscalculation of the size of medium sized disks reporting 15 heads instead of 16. -- Svante Signell [improved](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00062.html) the error handling in pflocal, -- Pino Toscano [implemented syncfs](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00046.html) which ensures that all data in the filesystem gets written to disk, as well as [statfs](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00005.html), which adds some additional statistics to procfs. -- Matthew Leach [fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00037.html) a compilation error with older GCC versions due to duplicate type definition. -- Samuel Thibault [provided](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00052.html) new [installation CDs](http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/current) and a new [qemu image](http://people.debian.org/~sthibault/hurd-i386/). -- Thomas Schwinge [debugged and fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00044.html) a deadlock with child threads resulting from a regression due to earlier fixes. -- Cyril Roelandt shared a [patch series](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00018.html) to fix double mutex unlocking with pthreads. We will likely see more fixes like these, given that the whole threading interface changed. -- Cyril Roelandt fixed a [ps](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00012.html) bug. +Also Samuel Thibault [provided](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00052.html) new [installation CDs](http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/current) and a new [qemu image](http://people.debian.org/~sthibault/hurd-i386/). Additionally to using pthreads, these now offer keyboard layout configuration. -- +Pino Toscano [implemented syncfs](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00046.html) which ensures that all data in the filesystem gets written to disk, as well as [statfs](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00005.html), which adds additional statistics to procfs. -Still to do: everything starting from http://lists.debian.org/debian-hurd/2012/07/threads.html +Thomas Schwinge and Samuel Thibault improved the hardware compatibility of the Hurd by fixing [some errors](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00077.html) which caused a miscalculation of the size of medium sized disks reporting 15 heads instead of 16 and adding [network-card detection](http://lists.debian.org/debian-hurd/2012/07/msg00011.html) network-card detection on busses other than 0 and 2. +And several people ported and fixed packages, further increasing the number of debian packages which work on the Hurd: *Svante Signell* ported [mlocate-0.25](http://lists.debian.org/debian-hurd/2012/07/msg00015.html), [gnat-gps](http://lists.debian.org/debian-hurd/2012/07/msg00011.html), [libpst](http://lists.debian.org/debian-hurd/2012/08/msg00039.html), [libetpan](http://lists.debian.org/debian-hurd/2012/08/msg00046.html), [spl](http://lists.debian.org/debian-hurd/2012/09/msg00004.html), [dovecot](http://lists.debian.org/debian-hurd/2012/09/msg00007.html), [xplc](http://lists.debian.org/debian-hurd/2012/08/msg00054.html) and [parrot](http://lists.debian.org/debian-hurd/2012/08/msg00056.html), [x86info](http://lists.debian.org/debian-hurd/2012/09/msg00008.html), [atlas](http://lists.debian.org/debian-hurd/2012/09/msg00009.html), [rrdtool](http://lists.debian.org/debian-hurd/2012/09/msg00011.html) and [gdb](http://lists.debian.org/debian-hurd/2012/09/msg00018.html). Also he fixed [yodl](http://lists.debian.org/debian-hurd/2012/08/msg00030.html), fixed [ntpdate](http://lists.debian.org/debian-hurd/2012/12/msg00002.html) to work again and [improved](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00062.html) the error handling in pflocal. *Pino Toscano* added patches for [procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00004.html), [ptrace](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00035.html), [fsync on stdout](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00046.html), [muntrace](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00033.html), [ulimit](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00034.html), [glibc](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00029.html) which among others improve POSIX conformance, making it easier to write programs which work on the Hurd and GNU/Linux. And he made the test pass for [FIFO sockets](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00053.html) with mknod and [added](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00005.html) a size parameter to tmpfs for easier usage in scripts and a [version suffix option](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00009.html) for gnumach configure. *Cyril Roelandt* fixed a [ps](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00012.html) bug, a documentation typo [in ps](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00032.html) and a missing linker flag [in procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00025.html). *Matthew Leach* [fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00037.html) a compilation error with older GCC versions due to duplicate type definition. *Ole Streicher* fixed a bug in the Makefile of ftools-fv which was [exposed](http://lists.debian.org/debian-hurd/2012/10/msg00059.html) by testing on Hurd. And *Samuel Thibault* [removed](http://lists.debian.org/debian-hurd/2012/12/msg00005.html) the out-of-date floppy-warnings in the debian installer. -This quarter [hurd hacker] [item] - -Also … - -[our hackers] … - -Mainly thanks to … - -Additionally … - -And … - -So if you want to [reason for contibuting to the Hurd], -please [[get in contact|contact_us]] -- and maybe already grab the [[source -code|source_repositories]]. +So if you want to test if your favorite packages work on the Hurd and +contribute towards making the full GNU system usable for a wider range +of people, please [[get in contact|contact_us]] -- and maybe already +grab the [[source code|source_repositories]]. --- diff --git a/faq/2_gib_partition_limit.mdwn b/faq/2_gib_partition_limit.mdwn index 3fd43793..6b48cc5f 100644 --- a/faq/2_gib_partition_limit.mdwn +++ b/faq/2_gib_partition_limit.mdwn @@ -15,4 +15,6 @@ License|/fdl]]."]]"""]] The 2 GiB limit has been removed in Debian GNU/Hurd. -Disk drivers however currently do not support more than 2^32 sectors, i.e. 2TiB. +IDE disk drivers however currently do not support more than 2^28 sectors, i.e. 128GiB. + +The AHCI disk driver supports up to 2^32 sectors, i.e. 2TiB. diff --git a/faq/drivers.mdwn b/faq/drivers.mdwn index 197d47b7..57ed7ea9 100644 --- a/faq/drivers.mdwn +++ b/faq/drivers.mdwn @@ -17,8 +17,9 @@ Currently, for disks Mach integrates drivers from Linux 2.0 through some limits hardware support a lot, of course. For network boards, we use the [[DDE]] toolkit to run linux 2.6.32 drivers in userland processes, which provides both long-term support for new hardware and safety against driver -bugs. [[microkernel/mach/gnumach/ports/Xen]] is also supported, both blkfront -and netfront. +bugs. Firmware loading is however not implemented yet. +[[microkernel/mach/gnumach/ports/Xen]] is also supported, both blkfront and +netfront. Note however that we have of course not tested all drivers, we obviously don't even have all kinds of hardware. So we can not promise that they will all diff --git a/faq/emacs.mdwn b/faq/emacs.mdwn new file mode 100644 index 00000000..4542c666 --- /dev/null +++ b/faq/emacs.mdwn @@ -0,0 +1,15 @@ +[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!tag faq/running]] + +[[!meta title="Emacs says /dev/tty is not a tty"]] + +Old versions of emacs used to have this issue. This is fixed in emacs24. diff --git a/faq/fd.mdwn b/faq/fd.mdwn index e0fefc66..bae611f8 100644 --- a/faq/fd.mdwn +++ b/faq/fd.mdwn @@ -16,3 +16,6 @@ dev 02:00 is the floppy drive. This message simply means that reading the floppy was attempted, but no floppy disk was inserted, so it failed. It commonly happens during installer disk detection, or grub setup, and is completely harmless. + +To avoid it, you can as well remove `/dev/fd0` (do you really have a floppy +around you anyway?) diff --git a/faq/sata_disk_drives.mdwn b/faq/sata_disk_drives.mdwn index 70560f12..4864e35b 100644 --- a/faq/sata_disk_drives.mdwn +++ b/faq/sata_disk_drives.mdwn @@ -12,8 +12,6 @@ License|/fdl]]."]]"""]] [[!meta title="Are SATA disk drives supported?"]] -GNU Mach does not support SATA disk drives (`/dev/sda` etc. in GNU/Linux) -natively, so using `device:sd0s1` will not work, as sd* devices are for SCSI -drives only. -The only way to get those drives to work is to put them into compatibility mode -in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc. +Until recently, GNU Mach did not support SATA disk drives (`/dev/sda` etc. in GNU/Linux) natively, the only way to get those drives to work used to be to put them into compatibility mode in the BIOS, if such an option exists. GNU Mach will then recognize them as hd etc. + +An AHCI driver has been added on 10th May 2013, which should bring support for a wide range of SATA controlers. Please however make sure to configure the BIOS in AHCI mode (as opposed to RAID mode). diff --git a/faq/slow.mdwn b/faq/slow.mdwn index be01e882..80c4ed00 100644 --- a/faq/slow.mdwn +++ b/faq/slow.mdwn @@ -22,7 +22,8 @@ hold. The main reason for slowness is *not* because of the overhead of RPCs. It's mostly simply because less care has been done on implementing what makes Linux -fast: intelligent read-ahead, carefully-tuned page cache, etc. +fast: intelligent read-ahead, carefully-tuned page cache, etc. or even just +missing DMA support for your disk controller. There is no ground reason this can not be achieved on GNU/Hurd, it has just not been a priority until now (first make it work, then make it work fast). We are diff --git a/faq/still_useful.mdwn b/faq/still_useful.mdwn index 60149a2b..8d7e3f28 100644 --- a/faq/still_useful.mdwn +++ b/faq/still_useful.mdwn @@ -20,6 +20,9 @@ develop custom replacements for them. Users will be able to write and use their own file systems, their own `exec' servers, or their own network protocols if they like, all without disturbing other users. +A [[series of interesting examples|hurd/documentation/translator_primer]] is +available. + The Linux kernel has now been modified to allow user-level file systems, so there is proof that people will actually use features such as these. It will be much easier to do under the Hurd, however, diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 623e7c0a..ae3fe43c 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -16,6 +16,21 @@ details. [[!toc]] +# Preparing for the Build + +## ... on Debian systems + +Building the Hurd requires the *build-essential* and *fakeroot* packages, their +dependencies and additional packages that are specified by the source hurd +package: + + # apt-get install build-essential fakeroot + # apt-get build-dep hurd + +## ... on non-Debian systems + +[TODO] + # Getting the Source Code You can chose between getting the [sources from the developers's @@ -33,21 +48,6 @@ Please see the Debian [[FAQ]] before using `apt-get source`. The unpacked source tree is around 20 MiB, and the build tree (configured with `--disable-profile`) is around 100 MiB. -# Preparing for the Build - -## ... on Debian systems - -Building the Hurd requires the *build-essential* and *fakeroot* packages, their -dependencies and additional packages that are specified by the source hurd -package: - - # apt-get install build-essential fakeroot - # apt-get build-dep hurd - -## ... on non-Debian systems - -[TODO] - # Building ## Debian `.deb` Files diff --git a/hurd/running/virtualbox.mdwn b/hurd/running/virtualbox.mdwn index f57fcbc3..822f771d 100644 --- a/hurd/running/virtualbox.mdwn +++ b/hurd/running/virtualbox.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -15,7 +15,7 @@ License|/fdl]]."]]"""]] # Installation -The disk controller has to be configured as IDE. Neither SATA nor SCSI are +The disk controller has to be configured as IDE or AHCI. Neither RAID nor SCSI are supported. The network controller should be configured as PCnet-PCI II or PCNet-FAST III diff --git a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn index 3a4f560c..587178e9 100644 --- a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn +++ b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn @@ -71,17 +71,17 @@ e.g. drives with hundreds of GiB of storage space, see [[!GNU_Savannah_bug ## SATA -SATA drives may work in compatibility mode. +SATA drives can work in IDE compatibility mode or in AHCI mode. This is how booting a [[GNU/Hurd_system|hurd]] will typically fail if GNU Mach -couldn't connect to the hard disk, e.g., in a SATA system without IDE +couldn't connect to the hard disk, e.g., in a SATA system without IDE or AHCI compatibility mode: start (hd0,3)/hurd/ext2fs.static: (hd0,3)/hurd/ext2fs.static device:hd0s4: No such device or address -There *may* be an option in the system's BIOS setup to configure enabling such -a compatibility mode. +There should be an option in the system's BIOS setup to configure enabling at +least the AHCI compatibility mode. # Device Drivers diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 757ebbe9..5d36d3d1 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -33,14 +33,14 @@ though, as explained below. <!-- git checkout reviewed -git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..sourceware/master +git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefix=./ --find-renames --ignore-space-change ..sourceware/master | awk '/^diff/ { c = $0; } /^@@/ { print c; } { print; }' | less -i -/^commit |^merge:|^---$|hurd|linux|nacl|nptl|glibc|gs: +/^---.*/([^.]*|.*\.texi.*|[^/]*gnu[^/]*)$|hurd|linux|nacl|nptl|glibc|gs: --> -Last reviewed up to the [[Git mirror's 944a6010b676b9f80f0a16c65183102b187822c5 -(2013-02-08) sources|source_repositories/binutils]]. +Last reviewed up to the [[Git mirror's 5c3ec1ded654250e0ac27df79998b32b2403e81f +(2013-04-29) sources|source_repositories/binutils]]. * Globally @@ -126,7 +126,7 @@ Last reviewed up to the [[Git mirror's 944a6010b676b9f80f0a16c65183102b187822c5 Here's a log of a binutils build run; this is from our [[Git repository|source_repositories/binutils]]'s `tschwinge/Paul_Desmond` branch, -commit 944a6010b676b9f80f0a16c65183102b187822c5 (2013-02-08), run on +commit 5c3ec1ded654250e0ac27df79998b32b2403e81f (2013-04-29), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -140,8 +140,8 @@ harmonized. Debian GCC (which is used in binutils' testsuite) likes to pass `--sysroot=/` to `ld`, so we need to configure binutils with support for sysroots. -This takes up around 900 MiB, and needs roughly 11 min on kepler.SCHWINGE and -42 min on coulomb.SCHWINGE. +This takes up around 950 MiB, and needs roughly 13 min on kepler.SCHWINGE and +45 min on coulomb.SCHWINGE. <!-- @@ -165,6 +165,12 @@ formats, and more emulation vectors. Missing [[IFUNC]] support on GNU/Hurd. + * 944a6010b676b9f80f0a16c65183102b187822c5..a5e5fda5f96d5b881a354bd8666fdbb1496ee8da: + + gcc-4.6 -c -DHAVE_CONFIG_H -g -O2 -I. -I../../Paul_Desmond/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ../../Paul_Desmond/libiberty/hashtab.c -o hashtab.o + +../../Paul_Desmond/libiberty/hashtab.c: In function 'hash_pointer': + +../../Paul_Desmond/libiberty/hashtab.c:1001:7: warning: right shift count >= width of type [enabled by default] + # Install @@ -187,7 +193,7 @@ min on coulomb.SCHWINGE. $ make -k check 2>&1 | tee log_test [...] -This needs roughly 6 min on kepler.SCHWINGE and 42 min on coulomb.SCHWINGE. +This needs roughly 6 min on kepler.SCHWINGE and 45 min on coulomb.SCHWINGE. ## Analysis diff --git a/open_issues/gccgo.mdwn b/open_issues/gccgo.mdwn index e9fbf0f1..fb94cb83 100644 --- a/open_issues/gccgo.mdwn +++ b/open_issues/gccgo.mdwn @@ -38,6 +38,61 @@ been working on this, has some (unpublished) patches, and this is currently blocked on [[`getcontext`/`setcontext`|open_issues/glibc/t/tls-threadvar]]. +## `getcontext`/`makecontext`/`setcontext`/`swapcontext` usage analysis + +In context of [[glibc/t/tls-threadvar]]. Looking at GCC trunk commit +f6568ea476aa52a6e23c6db43b3e240cde55783a (2013-04-26). + +The check in `libgo/configure.ac` *whether setcontext clobbers TLS variables* +is invalid on GNU Hurd. + +The `*context` functions are used in `libgo/runtime/go-signal.c` and +`libgo/runtime/proc.c`. + +`__splitstack_getcontext`, `__splitstack_setcontext`, +`__splitstack_makecontext`, `__splitstack_resetcontext`, +`__splitstack_block_signals_context` are to be provided by libgcc. However, in +said libgo runtime files, they're used only `#ifdef USING_SPLIT_STACK`. +[[I|ŧschwinge]] would assume that before we can enable split stacks, first +[[open_issues/glibc/t/tls-threadvar]] needs to be fixed. + +In `libgo/runtime/proc.c`:`runtime_gogo`, `setcontext` is used to *switch +context to a different goroutine*. TODO. + +In `libgo/runtime/proc.c`:`runtime_mcall`, which *save[s] context and call[s] +fn passing g as a parameter*, `getcontext` and `setcontext` are used; this is +only called from `libgo/runtime/proc.c`:`runtime_gosched`. TODO. + +In `libgo/runtime/proc.c`:`runtime_tracebackothers`, `getcontext` is used to +*switch context to the goroutine*. TODO. + +In `libgo/runtime/proc.c`:`runtime_mstart`, which is *called to start an M*, +`getcontext` is used. TODO. + +In `libgo/runtime/proc.c`:`runtime_entersyscall`, which is called when *the +goroutine g is about to enter a system call*, `getcontext` is used to *save the +registers in the g structure so that any pointers held in registers will be +seen by the garbage collector*. Should be fine. + +In `libgo/runtime/proc.c`:`__go_go`, `getcontext` and `makecontext` are used. +TODO. + +In `libgo/runtime/thread.c`:`runtime_minit`, which is *[c]alled to initialize a +new m (including the bootstrap m)*, `ss.ss_sp` is set to a new stack retrieved +via `libgo/runtime/proc.c:runtime_malg`, which *allocate[s] a new g, with a +stack [...]*, and then `sigaltstack` is called. TODO. + + libgo/runtime/go-signal.c: /* We are now running on the stack registered via sigaltstack. + libgo/runtime/go-signal.c: and sigaltstack when the program starts.) */ + + libgo/runtime/proc.c: vnewg->context.uc_stack.ss_sp = vsp; + libgo/runtime/proc.c: vnewg->context.uc_stack.ss_sp += vspsize; + libgo/runtime/proc.c: vnewg->context.uc_stack.ss_size = vspsize; + +Also, in `libgo/runtime/proc.c`:`runtime_newm`, `pthread_attr_setstacksize` is +used, which we also can't support yet, for the same reason. + + --- diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index 6b9cd135..eddc2fdc 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -27,14 +27,14 @@ Here's what's to be done for maintaining GNU GDB. <!-- git checkout reviewed -git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..sourceware/master +git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefix=./ --find-renames --ignore-space-change ..sourceware/master | awk '/^diff/ { c = $0; } /^@@/ { print c; } { print; }' | less -i -/^commit |^merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:|gnu-nat|i386gnu +/^---.*/([^.]*|.*\.texi.*|[^/]*gnu[^/]*)$|hurd|linux|nacl|nptl|glibc|gs: --> -Last reviewed up to the [[Git mirror's 6b25dae901ddedb3f330803542d3eac73cdcae4b -(2013-03-13) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 6330ab576e18fb97912839fc116c7babb5fd8c70 +(2013-04-28) sources|source_repositories/gdb]]. * Globally @@ -71,7 +71,7 @@ Last reviewed up to the [[Git mirror's 6b25dae901ddedb3f330803542d3eac73cdcae4b Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 6b25dae901ddedb3f330803542d3eac73cdcae4b (2013-03-13), run on +commit 6330ab576e18fb97912839fc116c7babb5fd8c70 (2013-04-28), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -194,6 +194,12 @@ formats and more emulation vectors. + from ../../Ferry_Tagscherer/gdb/gnu-nat.c:56: +../../Ferry_Tagscherer/gdb/value.h:729:22: note: expected 'const char **' but argument is of type 'char **' + * 6b25dae901ddedb3f330803542d3eac73cdcae4b..6330ab576e18fb97912839fc116c7babb5fd8c70: + + gcc-4.7 -c -DHAVE_CONFIG_H -g -O2 -I. -I../../Ferry_Tagscherer/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ../../Ferry_Tagscherer/libiberty/hashtab.c -o hashtab.o + +../../Ferry_Tagscherer/libiberty/hashtab.c: In function 'hash_pointer': + +../../Ferry_Tagscherer/libiberty/hashtab.c:1001:7: warning: right shift count >= width of type [enabled by default] + # Install @@ -363,4 +369,15 @@ GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown *stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame={addr="0x00014add",func="??",args=[],from="/lib/ld.so"},thread-id="4",stopped-threads="all" + * `gdb.arch/i386-float.exp: info float` + + Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.arch/i386-float.exp ... + PASS: gdb.arch/i386-float.exp: first stepi + FAIL: gdb.arch/i386-float.exp: info float + PASS: gdb.arch/i386-float.exp: second stepi + PASS: gdb.arch/i386-float.exp: info float + + Only fails for GNU/Hurd: the floating point stack initially is not + all-zeroes, which is expected, and which it is on GNU/Linux. + TODO. diff --git a/open_issues/gnat.mdwn b/open_issues/gnat.mdwn index 0f404b8a..84e8f60b 100644 --- a/open_issues/gnat.mdwn +++ b/open_issues/gnat.mdwn @@ -103,6 +103,55 @@ know if the port has yet seen any real-world usage, such as using it for any bigger Ada code bases, or any Ada testsuites. +## `getcontext`/`makecontext`/`setcontext`/`swapcontext` usage analysis + +In context of [[glibc/t/tls-threadvar]]. Looking at GCC trunk commit +f6568ea476aa52a6e23c6db43b3e240cde55783a (2013-04-26). + + gcc/ada/init.c: sigaltstack (&stack, NULL); + gcc/ada/init.c: sigaltstack (&stack, NULL); + gcc/ada/init.c: sigaltstack (&stack, NULL); + gcc/ada/s-osinte-aix.ads: function sigaltstack + gcc/ada/s-osinte-aix.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-android.ads: function sigaltstack + gcc/ada/s-osinte-android.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-darwin.ads: function sigaltstack + gcc/ada/s-osinte-darwin.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-freebsd.ads: function sigaltstack + gcc/ada/s-osinte-freebsd.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-hpux.ads: function sigaltstack + gcc/ada/s-osinte-hpux.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-kfreebsd-gnu.ads: function sigaltstack + gcc/ada/s-osinte-kfreebsd-gnu.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-linux.ads: function sigaltstack + gcc/ada/s-osinte-linux.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-osinte-rtems.adb: -- sigaltstack -- + gcc/ada/s-osinte-rtems.adb: function sigaltstack + gcc/ada/s-osinte-rtems.adb: end sigaltstack; + gcc/ada/s-osinte-rtems.ads: function sigaltstack + gcc/ada/s-osinte-solaris-posix.ads: function sigaltstack + gcc/ada/s-osinte-solaris-posix.ads: pragma Import (C, sigaltstack, "sigaltstack"); + gcc/ada/s-taprop-linux.adb: Result := sigaltstack (Stack'Access, null); + gcc/ada/s-taprop-posix.adb: Result := sigaltstack (Stack'Access, null); + gcc/ada/init.c: stack.ss_sp = __gnat_alternate_stack; + gcc/ada/init.c: stack.ss_sp = __gnat_alternate_stack; + gcc/ada/init.c: stack.ss_sp = __gnat_alternate_stack; + gcc/ada/s-osinte-aix.ads: ss_sp : System.Address; + gcc/ada/s-osinte-android.ads: ss_sp : System.Address; + gcc/ada/s-osinte-darwin.ads: ss_sp : System.Address; + gcc/ada/s-osinte-darwin.ads: uc_stack : stack_t; -- Stack Used By This Context + gcc/ada/s-osinte-freebsd.ads: ss_sp : System.Address; + gcc/ada/s-osinte-hpux.ads: ss_sp : System.Address; + gcc/ada/s-osinte-kfreebsd-gnu.ads: ss_sp : System.Address; + gcc/ada/s-osinte-linux.ads: ss_sp : System.Address; + gcc/ada/s-osinte-rtems.ads: ss_sp : System.Address; + gcc/ada/s-osinte-solaris-posix.ads: ss_sp : System.Address; + gcc/ada/s-osinte-solaris.ads: ss_sp : System.Address; + gcc/ada/s-osinte-solaris.ads: uc_stack : record_type_2; + gcc/ada/s-taprop-linux.adb: Stack.ss_sp := Self_ID.Common.Task_Alternate_Stack; + gcc/ada/s-taprop-posix.adb: Stack.ss_sp := Self_ID.Common.Task_Alternate_Stack; + + --- diff --git a/toolchain/logs b/toolchain/logs -Subproject 17ecfe30c4c1cb2c5833bc58f0ec355ec38b107 +Subproject a264dc206a1ebd541f01d3f3c496a80b3b8d978 diff --git a/user/musial.mdwn b/user/musial.mdwn index 5a8c15ce..dd92024c 100644 --- a/user/musial.mdwn +++ b/user/musial.mdwn @@ -10,7 +10,7 @@ License|/fdl]]."]]"""]] ~musial (Robert Musial) - Cleveland, OH -http://tangent.cc/.musial/ +http://nyumbu.org/.musial/ email: musial@gnu.org |