Re: Adding binutils to the GNU Toolchain buildbot on sourceware

Mark Wielaard
2022-04-26T22:35:05Z

[-- Attachment #1: Type: text/plain, Size: 1237 bytes --]

Hi Luis,

On Tue, Apr 26, 2022 at 08:01:33AM +0100, Luis Machado wrote:
> > If so lets just pick one or more of the workers which seem like stable
> > distros/arches that should always build gdb:
> > https://builder.sourceware.org/buildbot/#/workers
> > (don't pick sourceware, which is special, debian-arm64, debian-armhf,
> > debian-i386 or fedora-ppc64 which are too slow)
> >
> > Provide a file list (directories) of files in the binutils-gdb.git
> > repo that should trigger a build.
> >
> > A configure and make line that does a quick build for just
> > gdb/gdbserver which should always build.
>
> I think the following will do:
>
> ./configure --enable-targets=all; make all-gdb all-gdbserver
>
> or
>
> ./configure --enable-targets=all --disable-sim; make all-gdb all-gdbserver
>
> gdbserver, unlike gdb, will only build natively, hence why it would benefit
> from being built everywhere.

I added a gdb-centos-x86_64 builder. That is a fairly old distro (it
is centos7) but the worker isn't used for that many other builds and
it can do a quick compile in under 5 minutes. Once it works out I'll
add some other distro/arches.

Please review the gdb important files list. I might have missed some
directoy.

Thanks,

Mark

[-- Attachment #2: 0001-Add-gdb-centos-x86_64-builder.patch --]
[-- Type: text/x-diff, Size: 4476 bytes --]

From fa23744e04367b2d6f2081fd90bc58ad6d7ff6a6 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Wed, 27 Apr 2022 00:29:38 +0200
Subject: [PATCH] Add gdb-centos-x86_64 builder

---
builder/master.cfg | 68 ++++++++++++++++++++++++++++++++++++++++++++++
htdocs/index.html | 5 ++++
2 files changed, 73 insertions(+)

diff --git a/builder/master.cfg b/builder/master.cfg
index 45066b8..340904f 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -377,7 +377,30 @@ binutils_scheduler = schedulers.SingleBranchScheduler(
builderNames=["binutils-debian-amd64", "binutils-fedrawhide-x86_64"])
c['schedulers'].append(binutils_scheduler)

+# Only trigger scheduler for changes to gdb (or deps)
+gdb_files = ["bfd/",
+ "gdb/", "gdbserver/", "gdbsupport/",
+ "gnulib/", "sim/",
+ "include/", "libiberty/", "opcodes/",
+ "configure", "Makefile.in"]
+
+def gdbImportant(change):
+ for file in change.files:
+ for pattern in gdb_files:
+ match = re.match(pattern, file)
+ if match:
+ return True
+ return False
+
+gdb_scheduler = schedulers.SingleBranchScheduler(
+ name="gdb",
+ change_filter=util.ChangeFilter(project="binutils-gdb",
+ branch="master"),
+ fileIsImportant=gdbImportant,
+ builderNames=["gdb-centos-x86_64"])
+c['schedulers'].append(gdb_scheduler)

+# A scheduler for everything binutils-gdb without filters
binutils_gdb_scheduler = schedulers.SingleBranchScheduler(
name="binutils-gdb",
change_filter=util.ChangeFilter(project="binutils-gdb",
@@ -1130,6 +1153,41 @@ binutils_fedrawhide_x86_64_builder = util.BuilderConfig(
factory=binutils_factory)
c['builders'].append(binutils_fedrawhide_x86_64_builder)

+# gdb build steps, factory and builders
+
+gdb_factory = util.BuildFactory()
+gdb_factory.addStep(steps.Git(
+ workdir='binutils-gdb',
+ repourl=binutils_gdb_repourl,
+ mode='full', method='fresh',
+ name="git checkout",
+ haltOnFailure=True))
+gdb_factory.addStep(steps.ShellCommand(
+ command=["rm", "-rf",
+ util.Interpolate ("%(prop:builddir)s/gdb-build")],
+ name="rm -rf gdb-build",
+ haltOnFailure=True))
+gdb_factory.addStep(steps.Configure(
+ workdir='gdb-build',
+ command=['../binutils-gdb/configure',
+ '--enable-target=all'],
+ name='configure',
+ haltOnFailure=True))
+gdb_factory.addStep(steps.Compile(
+ workdir='gdb-build',
+ command=['make',
+ util.Interpolate('-j%(prop:ncpus)s'),
+ 'all-gdb', 'all-gdbserver'],
+ name='make',
+ haltOnFailure=True))
+
+gdb_centos_x86_64_builder = util.BuilderConfig(
+ name="gdb-centos-x86_64",
+ workernames=["centos-x86_64"],
+ tags=["gdb", "centos", "x86_64"],
+ factory=gdb_factory)
+c['builders'].append(gdb_centos_x86_64_builder)
+

# binutils-gdb build steps, factory and builders
# just a native build
@@ -1468,6 +1526,16 @@ mn_binutils = reporters.MailNotifier(
generators=[generator_binutils])
c['services'].append(mn_binutils)

+# Report for the whole gdb tagged builder set
+generator_gdb = reporters.BuildSetStatusGenerator(
+ mode=('change',), tags=['gdb'])
+mn_gdb = reporters.MailNotifier(
+ fromaddr="builder@sourceware.org",
+ sendToInterestedUsers=True,
+ extraRecipients=['gdb-testers@sourceware.org'],
+ generators=[generator_gdb])
+c['services'].append(mn_gdb)
+
# Report for the whole libabigail tagged builder set
generator_libabigail = reporters.BuildSetStatusGenerator(
mode=('change',), tags=['libabigail'])
diff --git a/htdocs/index.html b/htdocs/index.html
index 9d12fb9..b08a17b 100644
--- a/htdocs/index.html
+++ b/htdocs/index.html
@@ -144,6 +144,11 @@
fedora-ppc64le


+
+ gdb
+ centos-x86_64
+
+

libabigail
centos-x86_64
--
2.30.2