public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Add GDB sanitize builder
@ 2023-10-29 23:35 Mark Wielaard
  0 siblings, 0 replies; only message in thread
From: Mark Wielaard @ 2023-10-29 23:35 UTC (permalink / raw)
  To: buildbot; +Cc: Mark Wielaard, Simon Marchi

Just the address sanitizer for now. Building with undefined sanitizer
doesn't work. Disable sim because it doesn't build with address sanitizer.

Suggested-by: Simon Marchi <simark@simark.ca>
---
 builder/master.cfg | 59 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/builder/master.cfg b/builder/master.cfg
index 681d9cc..fa22282 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -854,6 +854,7 @@ gdb_scheduler = schedulers.SingleBranchScheduler(
         reason="binutils-gdb project master branch gdb files update",
         builderNames=["gdb-centos-x86_64",
                       "gdb-fedora-x86_64",
+                      "gdb-fedora-sanitize-x86_64",
                       "gdb-rawhide-x86_64",
                       "gdb-debian-testing-x86_64",
                       "gdb-debian-armhf",
@@ -878,6 +879,7 @@ gdb_try_scheduler = schedulers.AnyBranchScheduler(
         onlyImportant=True,
         reason="binutils-gdb project users try branch gdb files update",
         builderNames=["gdb-try-fedora-x86_64",
+                      "gdb-try-fedora-sanitize-x86_64",
                       "gdb-try-rawhide-x86_64",
                       "gdb-try-debian-testing-x86_64",
                       "gdb-try-fedora-arm64",
@@ -2798,6 +2800,18 @@ gdb_configure_32_step = steps.Configure(
         name='configure',
         haltOnFailure=True,
         logfiles={"config.log": "config.log"})
+# Use only address sanitizer, code doesn't build with undefined sanitizer.
+# Disable sim since it doesn't even build with address sanitizer,
+gdb_configure_sanitize_step = steps.Configure(
+        workdir='gdb-build',
+        command=['../binutils-gdb/configure',
+                 '--enable-targets=all', '--disable-sim',
+                 'CFLAGS="-fsanitize=address -O2 -g"',
+                 'CXXFLAGS="-fsanitize=address -O2 -g"',
+                 'LDFLAGS="-fsanitize=address"'],
+        name='configure',
+        haltOnFailure=True,
+        logfiles={"config.log": "config.log"})
 gdb_make_step = steps.Compile(
         workdir='gdb-build',
         command=addOutputSync.withArgs(['make',
@@ -2947,6 +2961,32 @@ gdb_factory_make_only.addSteps(bunsen_logfile_upload_steps([ # no tests being ru
         (["../gdb-build/gdb/config.log"],"gdb")]))
 gdb_factory_make_only.addStep(gdb_rm_step)
 
+# Used for sanitizer builds (only x86_64 for now)
+gdb_factory_sanitize = util.BuildFactory()
+gdb_factory_sanitize.addStep(gdb_git_step)
+gdb_factory_sanitize.addStep(gdb_rm_step)
+gdb_factory_sanitize.addStep(gdb_configure_sanitize_step)
+gdb_factory_sanitize.addStep(gdb_make_step)
+gdb_factory_sanitize.addStep(make_gdb_check_step())
+gdb_factory_sanitize.addSteps(bunsen_logfile_upload_cpio_steps(
+        ["*.sum", "*.log"],
+        workdir='gdb-build',
+        tagsuffix='/native'))
+
+gdb_factory_sanitize.addStep(make_gdb_check_step('--target_board=native-gdbserver'))
+gdb_factory_sanitize.addSteps(bunsen_logfile_upload_cpio_steps(
+        ["*.sum", "*.log"],
+        workdir='gdb-build',
+        tagsuffix='/gdbserver'))
+
+gdb_factory_sanitize.addStep(make_gdb_check_step('--target_board=native-extended-gdbserver'))
+gdb_factory_sanitize.addSteps(bunsen_logfile_upload_cpio_steps(
+        ["*.sum", "*.log"],
+        workdir='gdb-build',
+        tagsuffix='/extended-gdbserver'))
+gdb_factory_sanitize.addStep(gdb_rm_step)
+
+
 gdb_centos_x86_64_builder = util.BuilderConfig(
 	name="gdb-centos-x86_64",
         workernames=["centos-x86_64"],
@@ -2981,6 +3021,25 @@ gdb_try_fedora_x86_64_builder = util.BuilderConfig(
         factory=gdb_black_factory)
 c['builders'].append(gdb_try_fedora_x86_64_builder)
 
+gdb_fedora_x86_64_sanitize_builder = util.BuilderConfig(
+	name="gdb-fedora-sanitize-x86_64",
+	properties={'container-file':
+		    readContainerFile('fedora-latest')},
+	workernames=vm_workers,
+        tags=["gdb", "fedora", "x86_64"],
+        factory=gdb_factory_sanitize)
+c['builders'].append(gdb_fedora_x86_64_sanitize_builder)
+
+gdb_try_fedora_x86_64_sanitize_builder = util.BuilderConfig(
+	name="gdb-try-fedora-sanitize-x86_64",
+        collapseRequests=True,
+	properties={'container-file':
+		    readContainerFile('fedora-latest')},
+	workernames=vm_workers,
+        tags=["gdb-try", "fedora", "x86_64"],
+        factory=gdb_factory_sanitize)
+c['builders'].append(gdb_try_fedora_x86_64_sanitize_builder)
+
 gdb_debian_armhf_builder = util.BuilderConfig(
 	name="gdb-debian-armhf",
         workernames=["debian-armhf"],
-- 
2.39.3


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-10-30  0:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-29 23:35 [PATCH] Add GDB sanitize builder Mark Wielaard

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).