summaryrefslogtreecommitdiff
path: root/open_issues/binutils.mdwn
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-12-20 19:15:13 +0100
committerThomas Schwinge <thomas@schwinge.name>2010-12-20 19:15:13 +0100
commit7d75462177569c3b149b7f8da88652fdf2c6a4e0 (patch)
tree610c078c87e4c346de81740c98c358660f01c884 /open_issues/binutils.mdwn
parent0a576d92c6249820cb7ebf5038888c502656e24e (diff)
open_issues/binutils: Update.
Diffstat (limited to 'open_issues/binutils.mdwn')
-rw-r--r--open_issues/binutils.mdwn174
1 files changed, 172 insertions, 2 deletions
diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn
index 79fcc4a9..81fafaca 100644
--- a/open_issues/binutils.mdwn
+++ b/open_issues/binutils.mdwn
@@ -19,6 +19,8 @@ be) the same, there shouldn't be many differences comparing the binutils
between the GNU/Hurd and GNU/Linux ports, for example. There are a few,
though, as explained below.
+[[!toc levels=2]]
+
# [[General information|/binutils]]
@@ -28,7 +30,8 @@ though, as explained below.
# Configuration
-Last reviewed against cdb2275c9ffb41cacdcee078cf43718ab66c091e (2010-11-24).
+Last reviewed up to the [[Git mirror's e347ef3b343fc42ed312d5125047d59ae15df795
+(2010-12-20) sources|source_repositories/binutils]].
* Globally
@@ -103,4 +106,171 @@ Last reviewed against cdb2275c9ffb41cacdcee078cf43718ab66c091e (2010-11-24).
and 64 bit support.
-# [[Testsuite]]
+# Build
+
+Here's a log of a binutils build run; this is from our [[Git
+repository's 245f62b817ee31135a190793dddb340f04ac95e6 (2010-12-20)
+sources|source_repositories/binutils]], run on kepler.SCHWINGE and grubber.
+
+ $ export LC_ALL=C
+ $ ../master/configure --prefix="$PWD".install 2>&1 | tee log_build
+ [...]
+ $ make SHELL=/bin/bash 2>&1 | tee log_build_
+ [...]
+
+(kepler.SCHWINGE defaults to using /bin/sh for libtool, grubber to /bin/bash;
+thus harmonized.)
+
+On grubber, this takes roughly one hour.
+
+
+## Analysis
+
+x86 GNU/Linux and GNU/Hurd's configurations are [[slightly
+different|binutils]], thus mask out most of the differences that are due to
+GNU/Linux defining `-DTRAD_CORE`, `-DHAVE_i386linux_vec`
+(`-DSELECT_VECS='[...],&i386linux_vec[...]`), `-DHAVE_i386pei_vec`
+(`-DSELECT_VECS='[...],&i386pei_vec[...]`).
+
+ $ diff -wu <(ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd/master.build/log_build* | sed -e "s%${PWD}%[...]%g" -e s%-DTRAD_CORE%% -e s%-DHAVE_i386linux_vec%% -e s%-DHAVE_i386pei_vec%% -e s%-DSELECT_VECS=\\\('\\\''\\\?\\\)\&bfd_elf32_i386_vec,\&i386linux_vec,\&i386pei_vec,\&bfd_elf32_little_generic_vec,\&bfd_elf32_big_generic_vec'\\\''\\\?%-DSELECT_VECS=\\\1\\\&bfd_elf32_i386_vec,\\\&bfd_elf32_little_generic_vec,\\\&bfd_elf32_big_generic_vec\\\1%') <(ssh grubber 'cd tmp/binutils/ && cat hurd/master.build/log_build* | sed "s%${PWD}%[...]%g"') > open_issues/binutils/log_build-diff
+
+[[log_build-diff]].
+
+
+# Install
+
+ $ make SHELL=/bin/bash install 2>&1 | tee log_install
+ [...]
+
+(kepler.SCHWINGE defaults to using /bin/sh, grubber to /bin/bash; thus
+harmonized.)
+
+On grubber, this needs roughly 15 minutes, and takes up around 0.7 GiB.
+
+
+## Analysis
+
+ $ diff -wu <(ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd/master.build/log_install | sed -e "s%${PWD}%[...]%g" -e "s%i686-pc-linux-gnu%[ARCH]%g"') <(ssh grubber 'cd tmp/binutils/ && cat hurd/master.build/log_install | sed -e "s%${PWD}%[...]%g" -e "s%i686-unknown-gnu0\.3%[ARCH]%g"') > open_issues/binutils/log_install-diff
+
+[[log_install-diff]].
+
+ * `libtool: finish`: `ldconfig` is not run for the Hurd.
+
+
+# Testsuite
+
+ $ make -k check
+ [...]
+
+On grubber, this takes roughly one hour.
+
+ $ ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd/master.build/*/*.sum hurd/master.build/*/*/*.sum | sed "s%${PWD}%[...]%g"' > open_issues/binutils/sum_linux
+ $ ssh grubber 'cd tmp/binutils/ && cat hurd/master.build/*/*.sum hurd/master.build/*/*/*.sum | sed "s%${PWD}%[...]%g"' > open_issues/binutils/sum_hurd
+
+Comparing the results files, [[sum_linux]] to [[sum_hurd]]:
+
+ $ diff -u -F ^Running open_issues/binutils/sum_linux open_issues/binutils/sum_hurd
+ --- open_issues/binutils/sum_linux 2010-12-20 19:01:06.000000000 +0100
+ +++ open_issues/binutils/sum_hurd 2010-12-20 19:01:20.000000000 +0100
+ @@ -1,5 +1,5 @@
+ -Test Run By thomas on Mon Dec 20 11:34:53 2010
+ -Native configuration is i686-pc-linux-gnu
+ +Test Run By tschwinge on Mon Dec 20 11:35:47 2010
+ +Native configuration is i686-unknown-gnu0.3
+
+ === binutils tests ===
+
+ @@ -114,8 +114,8 @@ Running [...]/hurd/master/binutils/tests
+
+ # of expected passes 83
+ # of unsupported tests 2
+ -Test Run By thomas on Mon Dec 20 11:35:19 2010
+ -Native configuration is i686-pc-linux-gnu
+ +Test Run By tschwinge on Mon Dec 20 11:44:29 2010
+ +Native configuration is i686-unknown-gnu0.3
+
+ === ld tests ===
+
+ @@ -296,10 +296,10 @@ Running [...]/hurd/master/ld/testsuite/l
+ PASS: init array
+ PASS: fini array
+ PASS: init array mixed
+ -PASS: static preinit array
+ -PASS: static init array
+ -PASS: static fini array
+ -PASS: static init array mixed
+ +XFAIL: static preinit array
+ +XFAIL: static init array
+ +XFAIL: static fini array
+ +XPASS: static init array mixed
+ Running [...]/hurd/master/ld/testsuite/ld-elf/exclude.exp ...
+ PASS: ld link shared library
+ PASS: ld export symbols from archive
+ @@ -553,8 +553,8 @@ Running [...]/hurd/master/ld/testsuite/l
+ PASS: ELF DSO weak func last DSO
+ PASS: ELF weak func first
+ PASS: ELF weak func last
+ -PASS: ELF weak func first DSO
+ -PASS: ELF weak func last DSO
+ +XFAIL: ELF weak func first DSO
+ +XFAIL: ELF weak func last DSO
+ PASS: ELF DSO weak data first
+ PASS: ELF DSO weak data last
+ PASS: ELF DSO weak data first DSO
+ @@ -565,10 +565,10 @@ Running [...]/hurd/master/ld/testsuite/l
+ PASS: ELF weak data last
+ PASS: ELF weak data first common
+ PASS: ELF weak data last common
+ -PASS: ELF weak data first DSO
+ -PASS: ELF weak data last DSO
+ -PASS: ELF weak data first DSO common
+ -PASS: ELF weak data last DSO common
+ +XFAIL: ELF weak data first DSO
+ +XFAIL: ELF weak data last DSO
+ +XFAIL: ELF weak data first DSO common
+ +XFAIL: ELF weak data last DSO common
+ PASS: ELF DSO small bar (size)
+ PASS: ELF DSO foo with small bar (size)
+ PASS: ELF DSO big bar (size)
+ @@ -873,13 +873,14 @@ Running [...]/hurd/master/ld/testsuite/l
+
+ === ld Summary ===
+
+ -# of expected passes 618
+ -# of expected failures 8
+ +# of expected passes 608
+ +# of unexpected successes 1
+ +# of expected failures 17
+ # of untested testcases 6
+ /media/data[...]/hurd/master.build/ld/ld-new 2.21.51.20101220
+
+ -Test Run By thomas on Mon Dec 20 11:34:59 2010
+ -Native configuration is i686-pc-linux-gnu
+ +Test Run By tschwinge on Mon Dec 20 11:38:03 2010
+ +Native configuration is i686-unknown-gnu0.3
+
+ === gas tests ===
+
+
+
+## Analysis
+
+ * <a name="static">`FAIL: static [...]`</a>
+
+ The testsuite isn't prepared for using `crt0.o` instead of `crt1.o`
+ depending on whether a static or dynamic executable is created. Documented
+ in `ld/configure.host`. Perhaps we should finally rewrite this messy code
+ in glibc to avoid this difference...
+
+ * <a name="64ksec">`FAIL: ld-elf/64ksec`</a>
+
+ On the idle grubber, this one takes a few minutes wall time to complete
+ successfully ([[I/O system
+ weakness|performance/io_system/binutils_ld_64ksec]]), so assuming some
+ system load variation, the testsuite's timeout may trigger.
+
+ * <a name="weak">`FAIL: ELF weak [...]`</a>
+
+ [[I|tschwinge]] suppose this is due to us having an override w.r.t. weak
+ symbol handling in glibc, needed for our external [[/libpthread]]. TODO:
+ document properly.