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