summaryrefslogtreecommitdiff
path: root/open_issues/gdb.mdwn
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2011-07-05 09:24:34 +0200
committerThomas Schwinge <thomas@schwinge.name>2011-07-05 09:27:06 +0200
commitfcb3a1b8833d870e473718fbdd19dff0322d557a (patch)
treea233de262d9f5e5d1f7ef89113eab6b57900aee2 /open_issues/gdb.mdwn
parent5b8acb14d6f723e29a08f9a7387f5ea2122e4f03 (diff)
open_issues/gdb: New.
Diffstat (limited to 'open_issues/gdb.mdwn')
-rw-r--r--open_issues/gdb.mdwn131
1 files changed, 131 insertions, 0 deletions
diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn
new file mode 100644
index 00000000..83d12e83
--- /dev/null
+++ b/open_issues/gdb.mdwn
@@ -0,0 +1,131 @@
+[[!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 binutils build run; this is from our [[Git repository's
+d53cbf2a89a11bb98304490663a75229116d3e5a (2011-07-04)
+sources|source_repositories/binutils]], 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.