diff options
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/building/cross-compiling.mdwn | 118 | ||||
-rw-r--r-- | hurd/debugging.mdwn | 4 | ||||
-rw-r--r-- | hurd/debugging/glibc.mdwn | 63 | ||||
-rw-r--r-- | hurd/debugging/translator.mdwn (renamed from hurd/getting_help.mdwn) | 18 | ||||
-rw-r--r-- | hurd/debugging/translator/capturing_stdout_and_stderr.mdwn | 26 | ||||
-rw-r--r-- | hurd/debugging/translator/gdb.mdwn (renamed from hurd/debugging/hurd.mdwn) | 14 | ||||
-rw-r--r-- | hurd/faq.mdwn | 1 | ||||
-rw-r--r-- | hurd/libstore.mdwn | 2 | ||||
-rw-r--r-- | hurd/open_issues.mdwn | 1 | ||||
-rw-r--r-- | hurd/running.mdwn | 2 | ||||
-rw-r--r-- | hurd/running/debian/faq.mdwn | 1 | ||||
-rw-r--r-- | hurd/running/debian/faq/dev_random.mdwn | 4 | ||||
-rw-r--r-- | hurd/running/debian/porting.mdwn | 1 | ||||
-rw-r--r-- | hurd/running/debian/porting/gcc.mdwn | 7 | ||||
-rw-r--r-- | hurd/running/debian/porting/gcc/c++.mdwn | 39 | ||||
-rw-r--r-- | hurd/running/debian/porting/gcc/libmudflap.mdwn | 72 | ||||
-rw-r--r-- | hurd/translator.mdwn | 3 | ||||
-rw-r--r-- | hurd/translator/tmpfs.mdwn | 4 |
18 files changed, 278 insertions, 102 deletions
diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn index 81303b0a..80239860 100644 --- a/hurd/building/cross-compiling.mdwn +++ b/hurd/building/cross-compiling.mdwn @@ -33,24 +33,37 @@ installed in the upstream repositories. The following ones are known to work. Others may work as well, but no guarantee is given. Always the preferred version is listed first. -* `src/binutils`: [[GNU_Binutils|binutils]] + * `src/binutils`: [[GNU_Binutils|binutils]] - * CVS `binutils-2_18-branch` + * CVS `binutils-2_19-branch` + + $ mkdir binutils-2_19-branch + $ cd binutils-2_19-branch + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ + co -r binutils-2_19-branch binutils + + The sources are rooted in `binutils-2_19-branch/src/`. Also use these + commands for updating, instead of the usual `cvs update`. + + * The 2.19 release tarball from <ftp://ftp.gnu.org/gnu/binutils/> should + also be fine. + + * CVS `binutils-2_18-branch` $ mkdir binutils-2_18-branch $ cd binutils-2_18-branch - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src \ - co -r binutils-2_18-branch binutils + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ + co -r binutils-2_18-branch binutils The sources are rooted in `binutils-2_18-branch/src/`. Also use these commands for updating, instead of the usual `cvs update`. - * The 2.18 release tarball from <ftp://ftp.gnu.org/gnu/binutils/> should + * The 2.18 release tarball from <ftp://ftp.gnu.org/gnu/binutils/> should also be fine, as should be all other recent releases. -* `src/gcc`: [[GNU_Compiler_Collection|gcc]] + * `src/gcc`: [[GNU_Compiler_Collection|gcc]] - * SVN `gcc-4_1-branch` + * SVN `gcc-4_1-branch` $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch @@ -58,29 +71,40 @@ guarantee is given. Always the preferred version is listed first. $ ( cd gcc-4_1-branch/ && contrib/gcc_update --touch ) - * Recent releases of the 4.1 series from <ftp://ftp.gnu.org/gnu/gcc/> - should also be fine. + * Releases of the 4.1 series from <ftp://ftp.gnu.org/gnu/gcc/> should + also be fine. - * SVN `gcc-4_2-branch` + * SVN `gcc-4_2-branch` $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch + * Patches: + <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00034.html> + Prepare: $ ( cd gcc-4_2-branch/ && contrib/gcc_update --touch ) - * Patches: + * Releases of the 4.2 series from <ftp://ftp.gnu.org/gnu/gcc/> should + also be fine, but need the same set of patches as the `gcc-4_2-branch` + needs. + + * SVN `gcc-4_3-branch` + + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch + + * Patches: <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00034.html> - * Recent releases of the 4.2 series from <ftp://ftp.gnu.org/gnu/gcc/> - should also be fine, but need the same set of patches as the - `gcc-4_2-branch` needs. + Prepare: + + $ ( cd gcc-4_3-branch/ && contrib/gcc_update --touch ) - <!-- - GCC 4.3 has not yet been released. - * SVN `gcc-4_3-branch` - --> - * SVN `trunk` -- upcoming 4.3 series + * Releases of the 4.3 series from <ftp://ftp.gnu.org/gnu/gcc/> should + also be fine, but need the same set of patches as the `gcc-4_3-branch` + needs. + + * SVN `trunk` -- upcoming 4.4 series $ svn co svn://gcc.gnu.org/svn/gcc/trunk @@ -88,31 +112,21 @@ guarantee is given. Always the preferred version is listed first. $ ( cd trunk/ && contrib/gcc_update --touch ) - * Patches: - <http://lists.gnu.org/archive/html/bug-hurd/2007-12/msg00029.html> - - <!-- - GCC 4.3 has not yet been released. - * Recent releases of the 4.3 series from <ftp://ftp.gnu.org/gnu/gcc/> - should also be fine, but need the same set of patches as the - `gcc-4_3-branch` needs. - --> - -* `src/gnumach`: [[microkernel/mach/GNU_Mach]] + * `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]] - * CVS `gnumach-1-branch` + * CVS `gnumach-1-branch` - $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd \ - co -r gnumach-1-branch gnumach + $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd ↩ + co -r gnumach-1-branch gnumach $ mv gnumach gnumach-1-branch Prepare: $ ( cd gnumach-1-branch/ && autoreconf -vfi ) -* `src/mig`: [[microkernel/mach/mig/GNU_MIG]] + * `src/mig`: [[microkernel/mach/mig/GNU_MIG]] - * CVS `HEAD` + * CVS `HEAD` $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co mig @@ -120,55 +134,55 @@ guarantee is given. Always the preferred version is listed first. $ ( cd mig/ && autoreconf -vfi ) -* `src/hurd`: [[GNU_Hurd|hurd]] + * `src/hurd`: [[GNU_Hurd|hurd]] - * CVS `HEAD` + * CVS `HEAD` $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co hurd -* `src/glibc`: [[GNU_C_Library|glibc]] + * `src/glibc`: [[GNU_C_Library|glibc]] - * CVS `glibc-2_7-branch` + * CVS `glibc-2_7-branch` - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc \ - co -r glibc-2_7-branch glibc + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc ↩ + co -r glibc-2_7-branch glibc $ mv libc glibc-2_7-branch - * Patches: + * Patches: <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00030.html> - * Recent releases of the 2.7 series from <ftp://ftp.gnu.org/gnu/glibc/> + * Recent releases of the 2.7 series from <ftp://ftp.gnu.org/gnu/glibc/> should also be fine, but need the same set of patches as the `glibc-2_7-branch` needs. <!-- - * CVS `HEAD` + * CVS `HEAD` - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc \ - co glibc + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc ↩ + co glibc $ mv libc glibc-HEAD - * TODO. + * TODO. <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00026.html> --> <!-- -* `src/gdb`: [[GNU_Debugger|gdb]] + * `src/gdb`: [[GNU_Debugger|gdb]] This is optional and will only be compiled if present. - * CVS `gdb_6_6-branch` + * CVS `gdb_6_6-branch` - $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src \ - co -r gdb_6_6-branch gdb + $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩ + co -r gdb_6_6-branch gdb $ mv src gdb_6_6-branch Also needs some patch because of MIG changes, if I remember correctly. - * Recent tarballs from <ftp://ftp.gnu.org/gnu/gdb/> should also work. + * Recent tarballs from <ftp://ftp.gnu.org/gnu/gdb/> should also work. --> diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn index b84c5675..e4a98672 100644 --- a/hurd/debugging.mdwn +++ b/hurd/debugging.mdwn @@ -18,5 +18,5 @@ is included in the section entitled # About Specific Packages -* [[glibc]] -* [[Hurd]] + * [[glibc]] + * [[translator]]s diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn index a0890fe8..912f656c 100644 --- a/hurd/debugging/glibc.mdwn +++ b/hurd/debugging/glibc.mdwn @@ -1,13 +1,23 @@ +[[meta copyright="Copyright © 2007, 2008 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]]."]]"""]] + Here are some hints about how to approach testing after nontrivial changes to glibc have been done. --- -First step is having the build a glibc complete. This is actually more -difficult than one might expect, as it involves (towards the end of the build -process; unless you are cross-building, of course), that the newly created -libraries and loader actually work: they're used to run the `rpcgen` -program. If that step doesn't succeed, it'll look similar to this: +First step is having the build of glibc succeed. This is actually more +difficult than one might expect as it involves (towards the end of the build +process -- unless you are [[building/cross-compiling]], of course -- that the +newly created libraries and loader actually work: they'll be used to run the +`rpcgen` program. If that step doesn't succeed, it'll look similar to this: [...] CPP='gcc -E -x c-header' [...]/build/elf/ld.so.1 --library-path [...] [...]/build/sunrpc/rpcgen [...] @@ -15,8 +25,8 @@ program. If that step doesn't succeed, it'll look similar to this: --- -If building glibc succeeds, the next thing to try is running the test suite, or -parts of it. +Unless [[building/cross-compiling]], the next thing you'll probably want to do +is running the test suite, or parts of it. Here is a list of known failures: @@ -24,10 +34,28 @@ Here is a list of known failures: --- -Make sure static linking is working OK at all. The `elf/sln` program (a -stripped-down `ln` that is statically linked) in the glibc build ought to test -that. Also, static linking under various conditions will already have been -tested when running the test suite, especially in `elf/` and `dlfcn/`. +If you've been doing simple changes to glibc functions that end up in +`libc.so`, you may test them like this (like for a `strerror_l` implementation +in this case): + + $ LD_PRELOAD=./libc.so ./ld.so ./a.out 10 1073741928 de_DE.utf8 + 1073741928 (0x40000068): Computer bought the farm + 1073741928 (0x40000068): Der Computer hat den Bauernhof erworben + +You usually will only have luck using the new `libc.so` (from +`[glibc-build]/libc.so`) in combination together with the new `ld.so` (from +`[glibc-build]/elf/ld.so`): + + $ LD_PRELOAD=./libc.so ./a.out 10 1073741928 de_DE.utf8 + Killed + $ LD_PRELOAD=./libc.so /lib/ld.so ./a.out 10 1073741928 de_DE.utf8 + Killed + +Make sure static linking is working OK at all. Running the +`[glibc-build]/elf/sln` program (a stripped-down `ln` that is statically +linked) ought to test that. Also, static linking under various conditions will +already have been tested when running the test suite, especially in `elf/` and +`dlfcn/`. Make sure static linking with cthreads is working. If you can get an `ext2fs.static` compiled and linked against the new glibc, that is good. @@ -41,8 +69,8 @@ Then debug its startup as a normal program on your working hurd. Then try its full server startup. - $ settrans -ca node [...]/ext2fs.static <BACKEND> - $ cd node/ + $ settrans -ca node [...]/ext2fs.static BACKING_STORE + $ ls -l node/ [...] Make sure dynamic linking for servers is working. If you haven't broken the @@ -51,7 +79,7 @@ glibc's `testrun.sh` does it. [TODO]: Is this the correct way to do that? - $ settrans -ca node [glibc]/build/testrun.sh /hurd/ext2fs <BACKEND> + $ settrans -ca node [glibc]/build/testrun.sh /hurd/ext2fs BACKING_STORE $ cd node/ [...] @@ -62,10 +90,3 @@ Test it in a [[subhurd]]. --- Test it on a real system. - ---- - -Sources: - -* <http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00038.html> -* [[Thomas_Schwinge|tschwinge]]'s mind diff --git a/hurd/getting_help.mdwn b/hurd/debugging/translator.mdwn index c4f80ff9..8e8dd6fb 100644 --- a/hurd/getting_help.mdwn +++ b/hurd/debugging/translator.mdwn @@ -1,4 +1,4 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2008 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,14 +8,8 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] -# Essential Documentation - -* [[FAQ]] -* [[microkernel/mach/gnu_mach/Hardware_Compatibility_List]] - -# Forums - -[[inline pages=asking_questions raw=yes feeds=no]] - -* [[Mailing_lists]] -* [[IRC]] +[[inline +pages="hurd/debugging/translator/* and !*/discussion" +show=0 +feeds=no +actions=yes]] diff --git a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn new file mode 100644 index 00000000..8430287a --- /dev/null +++ b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn @@ -0,0 +1,26 @@ +[[meta copyright="Copyright © 2008 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]]."]]"""]] + +Sometimes it may already be helpful to capture a translator's `stdout` and +`stderr`, for example like this: + + $ sudo settrans -fgap ↩ + /servers/socket/2 ↩ + /bin/sh -c '/hurd/pfinet -i eth0 -a [...] > /tmp/stdout 2> /tmp/stderr' + $ [...] + $ cat /tmp/stdout + NET4: Linux TCP/IP 1.0 for NET4.0 + IP Protocols: ICMP, UDP, TCP + TCP: Hash tables configured (ehash 65536 bhash 65536) + $ cat /tmp/stderr + pfinet: ../../hurd.work/pfinet/ethernet.c:196: ethernet_xmit: Unexpected error: (os/device) invalid IO size. + +(Trying to run [[GDB]] in this case was of no help -- due to a bug in GDB +(supposedly) it wouldn't catch the fault.) diff --git a/hurd/debugging/hurd.mdwn b/hurd/debugging/translator/gdb.mdwn index 043da3e0..bee41010 100644 --- a/hurd/debugging/hurd.mdwn +++ b/hurd/debugging/translator/gdb.mdwn @@ -8,25 +8,25 @@ 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]]."]]"""]] -Say you want to try running file system server (*[[translator/ext2fs]]*<!--`[[translator/ext2fs]]`-->, -*[[translator/jfs]]*<!--`[[translator/jfs]]`-->, ...) against a modified version of *[[libpager]]*<!--`[[libpager]]`--> and -debug the latter one using [[GDB]]. +Say you want to try running file system server ([[`ext2fs`|translator/ext2fs]], +[[`jfs`|translator/jfs]], ...) against a modified version of +[[`libpager`|libpager]] and debug the latter one using [[debugging/GDB]]. -Set the [[translator]] like this: +Set the [[hurd/translator]] like this: $ settrans -fgap ↩ jfs.img.i ↩ /usr/bin/env ↩ LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ - "`pwd`"/jfs.obj/jfs ↩ - "`pwd`"/jfs.img + "$PWD"/jfs.obj/jfs ↩ + "$PWD"/jfs.img Then, when starting GDB, start it like this (or use an equivalent method, of course): $ LD_LIBRARY_PATH=~tschwinge/tmp/hurd/hurd.ogi/build/libpager ↩ gdb ↩ - ~tschwinge/tmp/jfs/jfs.obj/jfs 15436 + ~tschwinge/tmp/jfs/jfs.obj/jfs 15436 GNU gdb 6.5-debian [...] Reading symbols from /lib/libdiskfs.so.0.3...Reading symbols from /lib/debug/lib/libdiskfs.so.0.3...done. diff --git a/hurd/faq.mdwn b/hurd/faq.mdwn index aab538d9..0227f1c1 100644 --- a/hurd/faq.mdwn +++ b/hurd/faq.mdwn @@ -13,5 +13,6 @@ is included in the section entitled [[inline pages="hurd/faq/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/libstore.mdwn b/hurd/libstore.mdwn index 3de42be3..ab649ebc 100644 --- a/hurd/libstore.mdwn +++ b/hurd/libstore.mdwn @@ -9,7 +9,7 @@ is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] `libstore` is more than just a thin layer between -[[microkernel/mach/GNU_Mach]] devices (`hd0` for example) and the +[[GNU_Mach|microkernel/mach/gnumach]] devices (`hd0` for example) and the device node below `/dev`... # Available Stores diff --git a/hurd/open_issues.mdwn b/hurd/open_issues.mdwn index d7dc4d99..c4bcce09 100644 --- a/hurd/open_issues.mdwn +++ b/hurd/open_issues.mdwn @@ -15,5 +15,6 @@ This is a dumping ground for open issues for the GNU Hurd. [[inline pages="hurd/open_issues/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/open_issues" postformtext="Add a new item titled:"]] diff --git a/hurd/running.mdwn b/hurd/running.mdwn index 78815099..162bc9ea 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -9,7 +9,7 @@ is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] * [[Distrib]] - Distributions based on the Hurd -* [[microkernel/mach/gnu_mach/ports/Xen]] - In Xen +* [[microkernel/mach/gnumach/ports/Xen]] - In Xen * [[Live_CD]] * [[QEMU]] - In QEMU * [[vmware]] (**non-free!**) diff --git a/hurd/running/debian/faq.mdwn b/hurd/running/debian/faq.mdwn index f4b607bf..227ade02 100644 --- a/hurd/running/debian/faq.mdwn +++ b/hurd/running/debian/faq.mdwn @@ -15,5 +15,6 @@ See also the [[Hurd_FAQ|hurd/FAQ]] and [[after_install]]. [[inline pages="hurd/running/debian/faq/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/running/debian/faq" postformtext="Add a new item titled:"]] diff --git a/hurd/running/debian/faq/dev_random.mdwn b/hurd/running/debian/faq/dev_random.mdwn index 0043699e..eee7d0be 100644 --- a/hurd/running/debian/faq/dev_random.mdwn +++ b/hurd/running/debian/faq/dev_random.mdwn @@ -12,4 +12,6 @@ is included in the section entitled There is no random device by default as no secure implementation has been finished yet. An easy (but very insecure) work-around is to copy a binary file -like `/bin/bash` to `/dev/random` and `/dev/urandom`. +like `/bin/bash` to `/dev/random` and `/dev/urandom`. A slightly more secure +alternative is installing the `random-egd` from the `debian-ports` repository. + diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn index 7ca91d37..eb46c4c3 100644 --- a/hurd/running/debian/porting.mdwn +++ b/hurd/running/debian/porting.mdwn @@ -33,5 +33,6 @@ guidelines. [[inline pages="hurd/running/debian/porting/* and !*/discussion" show=0 +feeds=no actions=yes rootpage="hurd/running/debian/porting" postformtext="Add a new item titled:"]] diff --git a/hurd/running/debian/porting/gcc.mdwn b/hurd/running/debian/porting/gcc.mdwn index 3744f6ee..c15f40aa 100644 --- a/hurd/running/debian/porting/gcc.mdwn +++ b/hurd/running/debian/porting/gcc.mdwn @@ -17,9 +17,6 @@ integrated. * [\[meta-bug\] bootstrap bugs for \*-gnu\*](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21824) - * [\[PATCH\] for PR driver/21706 -- MAXPATHLEN usage in - \[gcc\]/gcc/tlink.c](http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00611.html) - * [build system: gcc\_cv\_libc\_provides\_ssp and NATIVE\_SYSTEM\_HEADER\_DIR](http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html) @@ -43,3 +40,7 @@ Additionally: * Also in other places: configure fragments that have `*linux*` cases might/should often contain those for us (and GNU/k*BSD) as well. + + * [[`libmudflap`|libmudflap]]. + + * [[C++]]. diff --git a/hurd/running/debian/porting/gcc/c++.mdwn b/hurd/running/debian/porting/gcc/c++.mdwn new file mode 100644 index 00000000..1d64b9b5 --- /dev/null +++ b/hurd/running/debian/porting/gcc/c++.mdwn @@ -0,0 +1,39 @@ +[[meta copyright="Copyright © 2008 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]]."]]"""]] + +Modify the [[building/cross-compiling]] shell script to configure GCC for +building GCC with C++ support when building its second (i.e., final) version. + +Compiling a most-trivial C++ program used to work with GCC 4.2 and 4.3 (and the +resulting binaries would also work), but linking fails with GCC SVN trunk: + + $ $TARGET-g++ -Wall a.cc -lpthread + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__multf3' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fixunstfsi' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__subtf3' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__divtf3' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__copysigntf3' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__addtf3' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__lttf2' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatsitf' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__netf2' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatunsitf' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__eqtf2' + /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fabstf2' + collect2: ld returned 1 exit status + +Whether this defect report also applies to a natively-build GCC from SVN trunk +has not yet been checked. + +[[Thomas_Schwinge|tschwinge]] suspects the problem to be a configuration issue +of a GCC helper library, whose configuration setup has changed after GCC 4.3. + +The need for `-lpthread` is another story. See the Debian glibc patches +repository for details. diff --git a/hurd/running/debian/porting/gcc/libmudflap.mdwn b/hurd/running/debian/porting/gcc/libmudflap.mdwn new file mode 100644 index 00000000..2345828b --- /dev/null +++ b/hurd/running/debian/porting/gcc/libmudflap.mdwn @@ -0,0 +1,72 @@ +[[meta copyright="Copyright © 2008 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]]."]]"""]] + +Single-threaded use appears to work: + + $ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩ + gcc -o a -fmudflap -x c - -lmudflap + $ ./a + ******* + mudflap violation 1 (check/write): time=1227208721.922064 ptr=0x1023de0 size=4 + pc=0x1037a33 location=`<stdin>:1:26 (main)' + /usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33] + ./a(main+0x7c) [0x80486c4] + /usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239] + Nearby object 1: checked region begins 68B before and ends 65B before + mudflap object 0x80ca268: name=`argv[]' + bounds=[0x1023e24,0x1023e2b] size=8 area=static check=0r/0w liveness=0 + alloc time=1227208721.922064 pc=0x10371d3 + Nearby object 2: checked region begins 76B before and ends 73B before + mudflap object 0x80cb448: name=`environ[]' + bounds=[0x1023e2c,0x1023ed7] size=172 area=static check=0r/0w liveness=0 + alloc time=1227208721.922064 pc=0x10371d3 + number of nearby objects: 2 + ******* + mudflap violation 2 (check/read): time=1227208721.942109 ptr=0x1023dcc size=4 + pc=0x1037a33 location=`<stdin>:1:35 (main)' + /usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33] + ./a(main+0xf3) [0x804873b] + /usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239] + Nearby object 1: checked region begins 88B before and ends 85B before + mudflap object 0x80ca268: name=`argv[]' + Nearby object 2: checked region begins 96B before and ends 93B before + mudflap object 0x80cb448: name=`environ[]' + number of nearby objects: 2 + +Multi-threaded use doesn't: + + $ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩ + gcc -include pthread.h -o a -fmudflapth -x c - -lmudflapth -lpthread + $ ./a + Killed + $ gdb a + [...] + Starting program: /media/data/home/tschwinge/a + + Program received signal EXC_BAD_ACCESS, Could not access memory. + 0x01180653 in getenv () from /lib/libc.so.0.3 + (gdb) bt + #0 0x01180653 in getenv () from /lib/libc.so.0.3 + #1 0x01177a02 in __dcigettext () from /lib/libc.so.0.3 + #2 0x01176a57 in dcgettext () from /lib/libc.so.0.3 + #3 0x011c03b5 in strerror_r () from /lib/libc.so.0.3 + #4 0x01175b57 in __assert_perror_fail () from /lib/libc.so.0.3 + #5 0x0111f1ad in cthread_fork (func=0x114f630 <_hurd_msgport_receive>, arg=0x0) + at /build/buildd/hurd-20080607/build-tree/hurd/libpthread/pthread/cthreads-compat.c:41 + #6 0x0115713e in _hurdsig_init () from /lib/libc.so.0.3 + #7 0x01140852 in _hurd_proc_init@@GLIBC_2.2.6 () from /lib/libc.so.0.3 + #8 0x01140e86 in _hurd_init () from /lib/libc.so.0.3 + #9 0x011690ce in init1 () from /lib/libc.so.0.3 + #10 0x00001e96 in _dl_start_user () from /lib/ld.so + #11 0x00000001 in ?? () + #12 0x01024000 in ?? () + #13 0x00000000 in ?? () + +Also `libmudflap` is pthread-only. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 1a987b09..d333da5a 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -42,6 +42,9 @@ See some [[examples]] about how to use translators. Marcus Brinkmann has written a document about [[documentation/translators]]. +Here are some [[hints_about_debugging_translators|debugging/translator]] +available. + # Existing Translators diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn index 6d10c163..bb9ef269 100644 --- a/hurd/translator/tmpfs.mdwn +++ b/hurd/translator/tmpfs.mdwn @@ -18,5 +18,5 @@ It's not working correctly at the moment. [[inline pages="hurd/translator/tmpfs/*" show=0 -actions=yes -rootpage="hurd/translator/tmpfs" postformtext="Add a new item titled:"]] +feeds=no +actions=yes]] |