diff options
Diffstat (limited to 'open_issues/gdb.mdwn')
-rw-r--r-- | open_issues/gdb.mdwn | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn new file mode 100644 index 00000000..e2d2fe56 --- /dev/null +++ b/open_issues/gdb.mdwn @@ -0,0 +1,130 @@ +[[!meta copyright="Copyright © 2007, 2008, 2010, 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]]."]]"""]] + +[[!tag open_issue_gdb]] + +Here's what's to be done for maintaining GNU GDB. + +[[!toc levels=2]] + + +# [[General information|/gdb]] + + +# [[Sources|source_repositories/gdb]] + + +# Configuration + +Last reviewed up to the [[Git mirror's a6276821b897bb7b1140e156c189badedd6adddc +(2011-07-04) sources|source_repositories/gdb]]. + + * Globally + + * a.out, COFF, PE image support and 64 bit support are not interesting. + + * In the testsuites, `.exp` and `.d` files very likely should not only + care for `*-*-linux*`, but also `*-*-gnu*`. (If the need to be + conditionalized like this at all.) + + * `bfd/` + + See [[binutils]]. + + * `libdecnumber/` + + Should/can probably align to GNU/Linux. + + * Have a look at config/i386/i386gnu.mh. + + * configure.tgt + + * glibc-tdep et al. also for GNU/Hurd? + + +# Build + +Here's a log of a GDB build run; this is from our [[Git repository's +d53cbf2a89a11bb98304490663a75229116d3e5a (2011-07-04) +sources|source_repositories/gdb]], run on kepler.SCHWINGE and coulomb.SCHWINGE. + + $ export LC_ALL=C + $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 --disable-werror 2>&1 | tee log_build + [...] + $ make 2>&1 | tee log_build_ + [...] + +Different hosts may default to different shells and compiler versions; thus +harmonized. + +There are several occurences of *error: dereferencing type-punned pointer will +break strict-aliasing rules* in the MIG-generated stub files; thus no `-Werror` +until that is resolved. + +This takes up around 200 MiB, and needs roughly TODO min on kepler.SCHWINGE, +and takes up areound 130 MiB, and needs roughly TODO min on coulomb.SCHWINGE. + + +## Analysis + +x86 GNU/Linux' and GNU/Hurd's configurations are slightly different, thus mask +out most of the differences that are due to GNU/Linux supporting more core file +formats, and more emulation vectors. + + $ diff -wu <(ssh kepler.SCHWINGE 'cd tmp/source/gdb/ && cat hurd/master.build/log_build* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' | sed -f open_issues/gdb/log_build-linux.sed) <(ssh coulomb.SCHWINGE 'cd tmp/gdb/ && cat hurd/master.build/log_build* | sed "s%\(/media/erich\)\?${PWD}%[...]%g"' | sed -f open_issues/gdb/log_build-hurd.sed) > open_issues/gdb/log_build.diff + +[[log_build.diff]]. + + * Why do we specify `-D_GNU_SOURCE`, and GNU/Linux doesn't? + + * Why does GNU/Linux have an additional `-ldl -rdynamic` when linking `gdb`? + + +# Install + + $ make install 2>&1 | tee log_install + [...] + +This takes up around 50 MiB, and needs roughly TODO min on kepler.SCHWINGE, and +takes up areound 45 MiB, and needs roughly TODO min on coulomb.SCHWINGE. + + +## Analysis + + $ diff -wu <(ssh kepler.SCHWINGE 'cd tmp/source/gdb/ && cat hurd/master.build/log_install | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' | sed -f open_issues/gdb/log_install-linux.sed) <(ssh coulomb.SCHWINGE 'cd tmp/gdb/ && cat hurd/master.build/log_install | sed "s%\(/media/erich\)\?${PWD}%[...]%g"' | sed -f open_issues/gdb/log_install-hurd.sed) > open_issues/gdb/log_install.diff + +[[log_install.diff]]. + + * `libtool: finish`: `ldconfig` is not run for the Hurd. + + +# Testsuite + +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. + + $ 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 + +Comparing the results files, [[sum_linux]] to [[sum_hurd]]: + + $ diff -u -F ^Running open_issues/gdb/sum_linux open_issues/gdb/sum_hurd + TODO + + +## Analysis + +TODO. |