[[!meta copyright="Copyright © 2010 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_binutils]]
Here's a log of a binutils build and testsuite run; this is from
e4b8d2a57f640a1095012e00975612d939c8a8b7 (2010-10-30)
[[sources|source_repositories/binutils]], run on kepler.SCHWINGE and grubber.
$ export LC_ALL=C
$ ../hurd/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 50 minutes.
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/hurd.build/ && cat 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/hurd.build/ && cat log_build* | sed "s%${PWD}%[...]%g"') > open_issues/binutils_testsuite/log_build-diff
[[log_build-diff]].
$ make -k check
[...]
On grubber, this takes roughly 45 minutes.
$ ssh kepler.SCHWINGE 'cd tmp/source/binutils/ && cat hurd.build/*/*.sum hurd.build/*/*/*.sum | sed "s%${PWD}%[...]%g"' > open_issues/binutils_testsuite/sum_linux
$ ssh grubber 'cd tmp/binutils/ && cat hurd.build/*/*.sum hurd.build/*/*/*.sum | sed "s%${PWD}%[...]%g"' > open_issues/binutils_testsuite/sum_hurd
Comparing the results files, [[sum_linux]] to [[sum_hurd]]:
$ diff -u -F ^Running open_issues/binutils_testsuite/sum_linux open_issues/binutils_testsuite/sum_hurd
--- open_issues/binutils_testsuite/sum_linux 2010-10-30 15:04:52.000000000 +0200
+++ open_issues/binutils_testsuite/sum_hurd 2010-10-30 16:58:27.000000000 +0200
@@ -1,5 +1,5 @@
-Test Run By thomas on Sat Oct 30 15:00:17 2010
-Native configuration is i686-pc-linux-gnu
+Test Run By tschwinge on Sat Oct 30 16:11:35 2010
+Native configuration is i686-unknown-gnu0.3
=== binutils tests ===
@@ -114,8 +114,8 @@ Running [...]/hurd/binutils/testsuite/bi
# of expected passes 83
# of unsupported tests 2
-Test Run By thomas on Sat Oct 30 15:00:43 2010
-Native configuration is i686-pc-linux-gnu
+Test Run By tschwinge on Sat Oct 30 16:19:25 2010
+Native configuration is i686-unknown-gnu0.3
=== ld tests ===
@@ -295,9 +295,9 @@ Running [...]/hurd/ld/testsuite/ld-elf/e
PASS: preinit array
PASS: init array
PASS: fini array
-PASS: static preinit array
-PASS: static init array
-PASS: static fini array
+XFAIL: static preinit array
+XFAIL: static init array
+XFAIL: static fini array
Running [...]/hurd/ld/testsuite/ld-elf/exclude.exp ...
PASS: ld link shared library
PASS: ld export symbols from archive
@@ -317,7 +317,8 @@ Running [...]/hurd/ld/testsuite/ld-elf/s
PASS: assignment of ELF sections to segments (disjoint pages)
Running [...]/hurd/ld/testsuite/ld-elf/sec64k.exp ...
PASS: ld-elf/64ksec-r
-PASS: ld-elf/64ksec
+WARNING: program timed out.
+FAIL: ld-elf/64ksec
Running [...]/hurd/ld/testsuite/ld-elf/shared.exp ...
PASS: Build libfoo.so
PASS: Build versioned libfoo.so
@@ -553,8 +554,8 @@ Running [...]/hurd/ld/testsuite/ld-elfwe
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 +566,10 @@ Running [...]/hurd/ld/testsuite/ld-elfwe
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 +874,14 @@ Running [...]/hurd/ld/testsuite/ld-xtens
=== ld Summary ===
-# of expected passes 618
-# of expected failures 8
+# of expected passes 608
+# of unexpected failures 1
+# of expected failures 17
# of untested testcases 6
/media/data[...]/hurd.build/ld/ld-new 2.20.51.20101030
-Test Run By thomas on Sat Oct 30 15:00:23 2010
-Native configuration is i686-pc-linux-gnu
+Test Run By tschwinge on Sat Oct 30 16:13:29 2010
+Native configuration is i686-unknown-gnu0.3
=== gas tests ===
# Analysis
## `FAIL: static [...]`
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...
## `FAIL: ld-elf/64ksec`
On the idle grubber, this one takes a few minutes wall time to complete
successfully ([[I/O system weakness|io_system_binutils_ld_64ksec]], so assuming
some system load variation, the testsuite's timeout may trigger.
## `FAIL: ELF weak [...]`
[[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.