From: Mark Wielaard <mark@klomp.org>
To: Nick Alcock <nick.alcock@oracle.com>
Cc: binutils@sourceware.org, buildbot@sourceware.org
Subject: Re: adding make check-libctf to binutils trybot?
Date: Fri, 24 May 2024 16:28:53 +0200 [thread overview]
Message-ID: <5b2bc54b4ebe3617037d2e01b3774ea7ddf04e23.camel@klomp.org> (raw)
In-Reply-To: <87a5lqvdge.fsf@esperi.org.uk>
[-- Attachment #1: Type: text/plain, Size: 1985 bytes --]
Hi Nick,
Sorry, I somehow missed this message.
On Thu, 2024-04-18 at 17:32 +0100, Nick Alcock wrote:
> I'm getting back to libctf development again (some fairly big things
> coming, I hope), so I've just tried the trybots for the first time.
>
> First impressions: really useful to be able to test on piles of arches
> without needing to set up dead slow QEMU emulations of them myself;
> might be even more useful if FAILs/ERRORs were explicitly filtered into
> their own category rather than carefully filtering out warnings (which
> are usually useless junk from dejagnu), while you have to explicitly
> download the stdio output to figure out which testsuite any failures
> actually happened in...
Yeah, the logs and mails sent by the buildbot could use some work.
But the results are also stored in bunsen. Try looking there:
https://builder.sourceware.org/testruns/
https://builder.sourceware.org/testruns/?has_keyvalue_op=glob&has_keyvalue_k=testrun.git_describe&has_keyvalue_v=buildbot/binutils-%2A
> ... but the check-libctf tests are not run at all, which means the only
> testing I get of libctf is of its interoperation with ld, which is only
> about half the codebase and about as much of the API surface (counting
> uses internal to libctf itself).
>
> So... could make check-libctf be added to the stuff routinely run when
> binutils try-builds are done? I'd write a patch but I'm not honestly
> sure where the repo is or anything :) it's pretty fast (much faster than
> make check-ld, about as fast as the gas tests) and doesn't have spurious
> failures anywhere that I know of. (And if there are failures, I'll fix
> them.)
The builder sources can be found here:
https://sourceware.org/cgit/builder
And there is a mailinglist (CCed):
https://sourceware.org/mailman/listinfo/buildbot
The attached patch (committed) makes it so that make check-libctf is
always run now. Lets see how that turns out.
Cheers,
Mark
[-- Attachment #2: Type: text/x-patch, Size: 15880 bytes --]
From f806881493eabea877cb9e83bdfede8f70587025 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Fri, 24 May 2024 16:24:26 +0200
Subject: [PATCH] binutils: Always build and check libctf
Remove the special case binutils_factory_libctf just always build and
check libctf. Rename the binutils_factory_gas_binutils to
binutils_factory_minimal and include libctf and libsframe building and
checking.
---
builder/master.cfg | 149 ++++++++++++++++++---------------------------
1 file changed, 59 insertions(+), 90 deletions(-)
diff --git a/builder/master.cfg b/builder/master.cfg
index 09f359ca736f..db82c8b4122f 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -2766,54 +2766,47 @@ binutils_step_configure = steps.Configure(
command=['../binutils-gdb/configure',
'--enable-gold',
'--enable-shared',
- '--enable-targets=all'],
+ '--enable-targets=all',
+ '--enable-libctf'],
name='configure',
haltOnFailure=True,
logfiles={"config.log": "config.log"})
binutils_step_configure_minimal = steps.Configure(
workdir='binutils-build',
- command=['../binutils-gdb/configure'],
- name='configure',
- haltOnFailure=True,
- logfiles={"config.log": "config.log"})
-binutils_step_configure_libctf = steps.Configure(
- workdir='binutils-build',
- command=['../binutils-gdb/configure',
- '--enable-gold',
- '--enable-shared',
- '--enable-targets=all',
- '--enable-libctf'],
+ command=['../binutils-gdb/configure', '--enable-libctf'],
name='configure',
haltOnFailure=True,
logfiles={"config.log": "config.log"})
binutils_step_compile = steps.Compile(
workdir='binutils-build',
command=addOutputSync.withArgs(['make',
- util.Interpolate('-j%(prop:ncpus)s'),
- 'all-gas', 'all-ld', 'all-binutils', 'all-gold']),
+ util.Interpolate('-j%(prop:ncpus)s'),
+ 'all-gas',
+ 'all-ld',
+ 'all-binutils',
+ 'all-gold',
+ 'all-libctf']),
name='make',
haltOnFailure=True)
binutils_step_compile_minimal = steps.Compile(
workdir='binutils-build',
command=addOutputSync.withArgs(['make',
- util.Interpolate('-j%(prop:ncpus)s'),
- 'all-gas', 'all-ld', 'all-binutils']),
- name='make',
- haltOnFailure=True)
-binutils_step_compile_libctf = steps.Compile(
- workdir='binutils-build',
- command=addOutputSync.withArgs(['make',
- util.Interpolate('-j%(prop:ncpus)s'),
- 'all-gas', 'all-ld', 'all-binutils', 'all-gold',
- 'all-libctf']),
+ util.Interpolate('-j%(prop:ncpus)s'),
+ 'all-gas',
+ 'all-ld',
+ 'all-binutils',
+ 'all-libctf']),
name='make',
haltOnFailure=True)
binutils_step_check = steps.Test(
workdir='binutils-build',
command=addOutputSync.withArgs(['make',
- util.Interpolate('-j%(prop:ncpus)s'),
- 'check-ld', 'check-gas', 'check-binutils',
- 'check-libsframe']),
+ util.Interpolate('-j%(prop:ncpus)s'),
+ 'check-ld',
+ 'check-gas',
+ 'check-binutils',
+ 'check-libsframe',
+ 'check-libctf']),
name='make check',
logfiles={ "ld.sum": "ld/ld.sum",
"ld.log": "ld/ld.log",
@@ -2822,22 +2815,24 @@ binutils_step_check = steps.Test(
"binutils.sum": "binutils/binutils.sum",
"binutils.log": "binutils/binutils.log",
"libsframe.sum": "libsframe/libsframe.sum",
- "libsframe.log": "libsframe/libsframe.log" },
+ "libsframe.log": "libsframe/libsframe.log",
+ "libctf.sum": "libctf/libctf.sum",
+ "libctf.log": "libctf/libctf.log" },
haltOnFailure=False, flunkOnFailure=True)
binutils_steps_bunsen = bunsen_logfile_upload_cpio_steps(
["*.sum", "*.log"],
workdir='binutils-build')
-binutils_step_check_libctf = steps.Test(
+binutils_step_check_minimal = steps.Test(
workdir='binutils-build',
command=addOutputSync.withArgs(['make',
- util.Interpolate('-j%(prop:ncpus)s'),
- 'check-ld', 'check-gas', 'check-binutils', 'check-libctf',
- 'check-libsframe']),
- name='make check',
- logfiles={ "ld.sum": "ld/ld.sum",
- "ld.log": "ld/ld.log",
- "gas.sum": "gas/testsuite/gas.sum",
+ util.Interpolate('-j%(prop:ncpus)s'),
+ 'check-gas',
+ 'check-binutils',
+ 'check-libctf',
+ 'check-libsframe']),
+ name='make check (no ld)',
+ logfiles={ "gas.sum": "gas/testsuite/gas.sum",
"gas.log": "gas/testsuite/gas.log",
"binutils.sum": "binutils/binutils.sum",
"binutils.log": "binutils/binutils.log",
@@ -2846,21 +2841,6 @@ binutils_step_check_libctf = steps.Test(
"libctf.sum": "libctf/libctf.sum",
"libctf.log": "libctf/libctf.log" },
haltOnFailure=False, flunkOnFailure=True)
-binutils_steps_bunsen_libctf = bunsen_logfile_upload_cpio_steps(
- ["*.sum", "*.log"],
- workdir='binutils-build')
-
-binutils_step_check_gas_binutils = steps.Test(
- workdir='binutils-build',
- command=addOutputSync.withArgs(['make',
- util.Interpolate('-j%(prop:ncpus)s'),
- 'check-gas', 'check-binutils']),
- name='make check gas binutils',
- logfiles={ "gas.sum": "gas/testsuite/gas.sum",
- "gas.log": "gas/testsuite/gas.log",
- "binutils.sum": "binutils/binutils.sum",
- "binutils.log": "binutils/binutils.log" },
- haltOnFailure=False, flunkOnFailure=True)
binutils_step_check_ld_warn = steps.Test(
workdir='binutils-build',
command=addOutputSync.withArgs(['make',
@@ -2870,9 +2850,6 @@ binutils_step_check_ld_warn = steps.Test(
logfiles={ "ld.sum": "ld/ld.sum",
"ld.log": "ld/ld.log"},
haltOnFailure=False, flunkOnFailure=False, warnOnFailure=True)
-binutils_steps_bunsen_gas_binutils = bunsen_logfile_upload_cpio_steps(
- ["*.sum", "*.log"],
- workdir='binutils-build')
binutils_make_clean_step = steps.ShellCommand(
workdir='binutils-build',
command=["make", "clean"],
@@ -2904,25 +2881,17 @@ binutils_factory.addStep(binutils_step_check)
binutils_factory.addSteps(binutils_steps_bunsen)
binutils_factory.addStep(binutils_step_rm_build_dir)
-binutils_factory_libctf = util.BuildFactory()
-binutils_factory_libctf.addStep(binutils_step_git)
-binutils_factory_libctf.addStep(binutils_step_rm_build_dir)
-binutils_factory_libctf.addStep(binutils_step_configure_libctf)
-binutils_factory_libctf.addStep(binutils_step_compile_libctf)
-binutils_factory_libctf.addStep(binutils_step_check_libctf)
-binutils_factory_libctf.addSteps(binutils_steps_bunsen_libctf)
-binutils_factory_libctf.addStep(binutils_step_rm_build_dir)
-
-# Builds everything, but checks just gas and binutils, ld checks may fail.
-binutils_factory_gas_binutils = util.BuildFactory()
-binutils_factory_gas_binutils.addStep(binutils_step_git)
-binutils_factory_gas_binutils.addStep(binutils_step_rm_build_dir)
-binutils_factory_gas_binutils.addStep(binutils_step_configure_minimal)
-binutils_factory_gas_binutils.addStep(binutils_step_compile_minimal)
-binutils_factory_gas_binutils.addStep(binutils_step_check_gas_binutils)
-binutils_factory_gas_binutils.addStep(binutils_step_check_ld_warn)
-binutils_factory_gas_binutils.addSteps(binutils_steps_bunsen)
-binutils_factory_gas_binutils.addStep(binutils_step_rm_build_dir)
+# Builds without targets all and without gold and runs the ld checks
+# separately because they may fail.
+binutils_factory_minimal = util.BuildFactory()
+binutils_factory_minimal.addStep(binutils_step_git)
+binutils_factory_minimal.addStep(binutils_step_rm_build_dir)
+binutils_factory_minimal.addStep(binutils_step_configure_minimal)
+binutils_factory_minimal.addStep(binutils_step_compile_minimal)
+binutils_factory_minimal.addStep(binutils_step_check_minimal)
+binutils_factory_minimal.addStep(binutils_step_check_ld_warn)
+binutils_factory_minimal.addSteps(binutils_steps_bunsen)
+binutils_factory_minimal.addStep(binutils_step_rm_build_dir)
binutils_gdb_autoregen_factory = util.BuildFactory()
binutils_gdb_autoregen_factory.addStep(binutils_gdb_step_git)
@@ -2962,7 +2931,7 @@ binutils_fedora_x86_64_builder = util.BuilderConfig(
readContainerFile('fedora-latest')},
workernames=vm_workers,
tags=["binutils", "fedora", "x86_64"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_fedora_x86_64_builder)
binutils_try_fedora_x86_64_builder = util.BuilderConfig(
@@ -2972,7 +2941,7 @@ binutils_try_fedora_x86_64_builder = util.BuilderConfig(
readContainerFile('fedora-latest')},
workernames=vm_workers,
tags=["binutils-try", "fedora", "x86_64"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_fedora_x86_64_builder)
binutils_fedora_s390x_builder = util.BuilderConfig(
@@ -2980,7 +2949,7 @@ binutils_fedora_s390x_builder = util.BuilderConfig(
workernames=["fedora-s390x"],
tags=["binutils", "fedora", "s390x"],
collapseRequests=True,
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_fedora_s390x_builder)
binutils_try_fedora_s390x_builder = util.BuilderConfig(
@@ -2988,7 +2957,7 @@ binutils_try_fedora_s390x_builder = util.BuilderConfig(
workernames=["fedora-s390x"],
tags=["binutils-try", "fedora", "s390x"],
collapseRequests=True,
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_fedora_s390x_builder)
binutils_debian_ppc64_builder = util.BuilderConfig(
@@ -3004,35 +2973,35 @@ binutils_debian_armhf_builder = util.BuilderConfig(
workernames=["debian-armhf"],
tags=["binutils", "debian", "armhf"],
collapseRequests=True,
- factory=binutils_factory_gas_binutils)
+ factory=binutils_factory_minimal)
c['builders'].append(binutils_debian_armhf_builder)
binutils_fedora_arm64_builder = util.BuilderConfig(
name="binutils-fedora-arm64",
workernames=["fedora-arm64"],
tags=["binutils", "fedora", "arm64"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_fedora_arm64_builder)
binutils_try_fedora_arm64_builder = util.BuilderConfig(
name="binutils-try-fedora-arm64",
workernames=["fedora-arm64"],
tags=["binutils-try", "fedora", "arm64"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_fedora_arm64_builder)
binutils_gentoo_sparc_builder = util.BuilderConfig(
name="binutils-gentoo-sparc",
workernames=sparc_workers,
tags=["binutils-build", "gentoo", "sparc"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_gentoo_sparc_builder)
binutils_try_gentoo_sparc_builder = util.BuilderConfig(
name="binutils-try-gentoo-sparc",
workernames=sparc_workers,
tags=["binutils-try-build", "gentoo", "sparc"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_gentoo_sparc_builder)
binutils_debian_i386_builder = util.BuilderConfig(
@@ -3055,7 +3024,7 @@ binutils_fedora_ppc64le_builder = util.BuilderConfig(
workernames=["fedora-ppc64le"],
tags=["binutils", "fedora", "ppc64le"],
collapseRequests=True,
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_fedora_ppc64le_builder)
binutils_try_fedora_ppc64le_builder = util.BuilderConfig(
@@ -3063,7 +3032,7 @@ binutils_try_fedora_ppc64le_builder = util.BuilderConfig(
collapseRequests=True,
workernames=["fedora-ppc64le"],
tags=["binutils-try", "fedora", "ppc64le"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_fedora_ppc64le_builder)
binutils_ubuntu_riscv_builder = util.BuilderConfig(
@@ -3071,7 +3040,7 @@ binutils_ubuntu_riscv_builder = util.BuilderConfig(
workernames=starfive_workers,
tags=["binutils", "ubuntu", "riscv"],
collapseRequests=True,
- factory=binutils_factory_gas_binutils)
+ factory=binutils_factory_minimal)
c['builders'].append(binutils_ubuntu_riscv_builder)
binutils_try_ubuntu_riscv_builder = util.BuilderConfig(
@@ -3079,7 +3048,7 @@ binutils_try_ubuntu_riscv_builder = util.BuilderConfig(
collapseRequests=True,
workernames=starfive_workers,
tags=["binutils-try", "ubuntu", "riscv"],
- factory=binutils_factory_gas_binutils)
+ factory=binutils_factory_minimal)
c['builders'].append(binutils_try_ubuntu_riscv_builder)
binutils_rawhide_x86_64_builder = util.BuilderConfig(
@@ -3089,7 +3058,7 @@ binutils_rawhide_x86_64_builder = util.BuilderConfig(
workernames=vm_workers,
tags=["binutils", "fedora", "x86_64"],
collapseRequests=True,
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_rawhide_x86_64_builder)
binutils_debian_testing_x86_64_builder = util.BuilderConfig(
@@ -3099,7 +3068,7 @@ binutils_debian_testing_x86_64_builder = util.BuilderConfig(
workernames=vm_workers,
tags=["binutils", "debian", "x86_64"],
collapseRequests=True,
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_debian_testing_x86_64_builder)
binutils_try_rawhide_x86_64_builder = util.BuilderConfig(
@@ -3109,7 +3078,7 @@ binutils_try_rawhide_x86_64_builder = util.BuilderConfig(
readContainerFile('fedora-rawhide')},
workernames=vm_workers,
tags=["binutils-try", "fedora", "x86_64"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_rawhide_x86_64_builder)
binutils_try_debian_testing_x86_64_builder = util.BuilderConfig(
@@ -3119,7 +3088,7 @@ binutils_try_debian_testing_x86_64_builder = util.BuilderConfig(
readContainerFile('debian-testing')},
workernames=vm_workers,
tags=["binutils-try", "debian", "x86_64"],
- factory=binutils_factory_libctf)
+ factory=binutils_factory)
c['builders'].append(binutils_try_debian_testing_x86_64_builder)
binutils_gdb_autoregen_builder = util.BuilderConfig(
--
2.45.1
prev parent reply other threads:[~2024-05-24 14:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-18 16:32 Nick Alcock
2024-05-24 14:28 ` Mark Wielaard [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5b2bc54b4ebe3617037d2e01b3774ea7ddf04e23.camel@klomp.org \
--to=mark@klomp.org \
--cc=binutils@sourceware.org \
--cc=buildbot@sourceware.org \
--cc=nick.alcock@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).