public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Add a make_output_sync_arg property for workers to override
@ 2023-01-15 21:46 Mark Wielaard
  0 siblings, 0 replies; only message in thread
From: Mark Wielaard @ 2023-01-15 21:46 UTC (permalink / raw)
  To: buildbot; +Cc: Mark Wielaard

make --output-sync=line is really nice for parallel make
stdout logs. But unfortunately old make doesn't support it.
So check a make_output_sync_arg property to see if it can
be used. A worker can set this to the empty string if it
has a really old make. Luckily only centos 7 seems to have
such an old make.
---
 builder/master.cfg | 61 +++++++++++++++++++++++++---------------------
 1 file changed, 33 insertions(+), 28 deletions(-)

diff --git a/builder/master.cfg b/builder/master.cfg
index 600103b..aa55186 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -60,7 +60,8 @@ c['workers'].append(sourceware_worker)
 centos_x86_64_worker = worker.Worker("centos-x86_64",
                                      getpw("centos-x86_64"),
                                      max_builds=1,
-                                     properties={'ncpus': 8, 'maxcpus': 8},
+                                     properties={'ncpus': 8, 'maxcpus': 8,
+                                                 'make_output_sync_arg': ''},
                                      notify_on_missing='mark@klomp.org');
 c['workers'].append(centos_x86_64_worker)
 debian_i386_worker = worker.Worker("debian-i386",
@@ -962,27 +963,31 @@ getversion_step = steps.SetPropertyFromCommand(
         name="get version",
         command='grep PACKAGE_VERSION config.h | cut -f2 -d\\"',
         property="package_version")
+# Allows a worker to override argument (with the empty string)
+# if make doesn't support --output-sync=line
+make_output_sync = util.Property('make_output_sync_arg',
+                                 default='--output-sync=line')
 make_step = steps.Compile(
-        command=["make", "--output-sync=line", util.Interpolate('-j%(prop:ncpus)s')],
+        command=["make", make_output_sync, util.Interpolate('-j%(prop:ncpus)s')],
         name="make",
         haltOnFailure=True)
 make_check_step = steps.Test(
-        command=["make", "--output-sync=line", "check", util.Interpolate('-j%(prop:ncpus)s')],
+        command=["make", make_output_sync, "check", util.Interpolate('-j%(prop:ncpus)s')],
         name="make check", haltOnFailure=False, flunkOnFailure=True)
 # Same as make_check_step but with tests/test-suite.log recorded
 make_check_test_suite_step = steps.Test(
-        command=["make", "--output-sync=line", "check", util.Interpolate('-j%(prop:ncpus)s')],
+        command=["make", make_output_sync, "check", util.Interpolate('-j%(prop:ncpus)s')],
         name="make check", haltOnFailure=False, flunkOnFailure=True,
         logfiles={"test-suite.log": "tests/test-suite.log"})
 make_distcheck_step = steps.Test(
-        command=["make", "--output-sync=line", "distcheck",
+        command=["make", make_output_sync, "distcheck",
                  util.Interpolate('-j%(prop:ncpus)s')],
         name="make distcheck", haltOnFailure=False, flunkOnFailure=True,
         timeout=3600)
 # Same as make_distcheck_step but with tests/test-suite-log from _build
 # Needs package_version and package_name properties set
 make_distcheck_test_suite_step = steps.Test(
-        command=["make", "--output-sync=line", "distcheck",
+        command=["make", make_output_sync, "distcheck",
                  util.Interpolate('-j%(prop:ncpus)s')],
         name="make distcheck", haltOnFailure=False, flunkOnFailure=True,
         timeout=3600,
@@ -1944,19 +1949,19 @@ gccrust_configure_bootstrap_step = steps.Configure(
 
 gccrust_make_step = steps.Compile(
         workdir='gccrs-build',
-        command=['make', "--output-sync=line", util.Interpolate('-j%(prop:ncpus)s')],
+        command=['make', make_output_sync, util.Interpolate('-j%(prop:ncpus)s')],
         name='make',
         haltOnFailure=True)
 
 gccrust_make_bootstrap_step = steps.Compile(
         workdir='gccrs-build',
-        command=['make', "--output-sync=line", util.Interpolate('-j%(prop:maxcpus)s')],
+        command=['make', make_output_sync, util.Interpolate('-j%(prop:maxcpus)s')],
         name='make',
         haltOnFailure=True)
 
 gccrust_check_step = steps.Compile(
         workdir='gccrs-build',
-        command=['make', "--output-sync=line", 'check-rust', util.Interpolate('-j%(prop:ncpus)s')],
+        command=['make', make_output_sync, 'check-rust', util.Interpolate('-j%(prop:ncpus)s')],
         name='make check',
         logfiles={ "rust.sum": "gcc/testsuite/rust/rust.sum",
                    "rust.log": "gcc/testsuite/rust/rust.log" },
@@ -1964,7 +1969,7 @@ gccrust_check_step = steps.Compile(
 
 gccrust_check_bootstrap_step = steps.Compile(
         workdir='gccrs-build',
-        command=['make', "--output-sync=line", 'check-rust', util.Interpolate('-j%(prop:maxcpus)s')],
+        command=['make', make_output_sync, 'check-rust', util.Interpolate('-j%(prop:maxcpus)s')],
         name='make check',
         logfiles={ "rust.sum": "gcc/testsuite/rust/rust.sum",
                    "rust.log": "gcc/testsuite/rust/rust.log" },
@@ -2130,14 +2135,14 @@ binutils_step_configure_libctf = steps.Configure(
         haltOnFailure=True)
 binutils_step_compile = steps.Compile(
         workdir='binutils-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'all-gas', 'all-ld', 'all-binutils', 'all-gold'],
         name='make',
         haltOnFailure=True)
 binutils_step_compile_libctf = steps.Compile(
         workdir='binutils-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'all-gas', 'all-ld', 'all-binutils', 'all-gold',
                  'all-libctf'],
@@ -2145,7 +2150,7 @@ binutils_step_compile_libctf = steps.Compile(
         haltOnFailure=True)
 binutils_step_check = steps.Test(
         workdir='binutils-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'check-ld', 'check-gas', 'check-binutils',
                  'check-libsframe'],
@@ -2165,7 +2170,7 @@ binutils_steps_bunsen = bunsen_logfile_upload_cpio_steps(
 
 binutils_step_check_libctf = steps.Test(
         workdir='binutils-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'check-ld', 'check-gas', 'check-binutils', 'check-libctf',
                  'check-libsframe'],
@@ -2187,7 +2192,7 @@ binutils_steps_bunsen_libctf = bunsen_logfile_upload_cpio_steps(
 
 binutils_step_check_gas_binutils = steps.Test(
         workdir='binutils-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'check-gas', 'check-binutils'],
         name='make check',
@@ -2492,7 +2497,7 @@ gdb_configure_32_step = steps.Configure(
         haltOnFailure=True)
 gdb_make_step = steps.Compile(
         workdir='gdb-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'all-gdb', 'all-gdbserver'],
         name='make',
@@ -2893,7 +2898,7 @@ def binutils_gdb_factory_factory(runtestflags=None):
                 name='configure',
                 haltOnFailure=True))
         binutils_gdb_factory.addStep(steps.Compile(
-                command=['make', "--output-sync=line",
+                command=['make', make_output_sync,
                          util.Interpolate('-j%(prop:ncpus)s'),
                          '-k', 'all'], # for better logs, keep going
                 name='make',
@@ -2988,7 +2993,7 @@ gcc_factory.addStep(steps.Configure(
         name='configure',
         haltOnFailure=True))
 gcc_factory.addStep(steps.Compile(
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s'),
                  '-k', 'all', 'install'], # for better logs, keep going
         name='make',
@@ -3016,7 +3021,7 @@ gcc_build_factory.addStep(gcc_rm_build_step)
 gcc_build_factory.addStep(gcc_build_configure_step)
 gcc_build_factory.addStep(steps.Compile(
         workdir='gcc-build',
-        command=['make', "--output-sync=line", util.Interpolate('-j%(prop:ncpus)s')],
+        command=['make', make_output_sync, util.Interpolate('-j%(prop:ncpus)s')],
         name='make',
         haltOnFailure=True))
 gcc_build_factory.addStep(gcc_rm_build_step)
@@ -3137,14 +3142,14 @@ def gcc_full_build_factory_gen(extra_configure_arg=None):
         gcc_full_build_factory.addStep(gcc_full_build_configure_step)
         gcc_full_build_factory.addStep(steps.Compile(
                 workdir='gcc-build',
-                command=['make', "--output-sync=line", util.Interpolate('-j%(prop:maxcpus)s')],
+                command=['make', make_output_sync, util.Interpolate('-j%(prop:maxcpus)s')],
                 name='make',
                 haltOnFailure=True))
         # We want parallelism to get through this as quickly as possible.
         # Even if that means bunsen gets some parallel/duplicate log files
         gcc_full_build_factory.addStep(steps.Test(
                 workdir='gcc-build',
-                command=['make', 'check', "--output-sync=line", util.Interpolate('-j%(prop:maxcpus)s')],
+                command=['make', 'check', make_output_sync, util.Interpolate('-j%(prop:maxcpus)s')],
                 name='make check',
                 haltOnFailure=False, flunkOnFailure=True))
         gcc_full_build_factory.addSteps(bunsen_logfile_upload_cpio_steps(
@@ -3205,21 +3210,21 @@ glibc_configure_step = steps.Configure(
 
 glibc_make_step = steps.Compile(
         workdir='glibc-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:maxcpus)s')],
         name='make',
         haltOnFailure=False, flunkOnFailure=True)
 
 glibc_make_build_step = steps.Compile(
         workdir='glibc-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:ncpus)s')],
         name='make',
         haltOnFailure=True)
 
 glibc_check_step = steps.Test(
         workdir='glibc-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  util.Interpolate('-j%(prop:maxcpus)s'),
                  'check'],
         name='make check',
@@ -3227,7 +3232,7 @@ glibc_check_step = steps.Test(
 
 glibc_check_build_step = steps.Test(
         workdir='glibc-build',
-        command=['make', "--output-sync=line",
+        command=['make', make_output_sync,
                  'subdirs=elf',
                  util.Interpolate('-j%(prop:ncpus)s'),
                  'check'],
@@ -3364,11 +3369,11 @@ libabigail_git_step = steps.Git(
         name="git checkout",
         haltOnFailure=True)
 libabigail_make_check_test_suite_step = steps.Test(
-        command=["make", "check", "ENABLE_SLOW_TEST=yes", "--output-sync=line", util.Interpolate('-j%(prop:ncpus)s')],
+        command=["make", "check", "ENABLE_SLOW_TEST=yes", make_output_sync, util.Interpolate('-j%(prop:ncpus)s')],
         name="make check", haltOnFailure=False, flunkOnFailure=True,
         logfiles={"test-suite.log": "tests/test-suite.log"})
 libabigail_fast_distcheck = steps.Test(
-        command=["make", "distcheck-fast", "--output-sync=line", util.Interpolate('-j%(prop:ncpus)s')],
+        command=["make", "distcheck-fast", make_output_sync, util.Interpolate('-j%(prop:ncpus)s')],
         name="make distcheck", haltOnFailure=False, flunkOnFailure=True,
         timeout=3600,
         logfiles={"test-suite.log": util.Interpolate('%(prop:package_name)s-%(prop:package_version)s/_build/sub/tests/test-suite.log')})
@@ -3826,7 +3831,7 @@ systemtap_factory.addStep(steps.Configure(
         haltOnFailure=True))
 systemtap_factory.addStep(steps.Compile(
         workdir='stap-build',
-        command=['make', 'V=1', '--output-sync=line', util.Interpolate('-j%(prop:maxcpus)s')],
+        command=['make', 'V=1', make_output_sync, util.Interpolate('-j%(prop:maxcpus)s')],
         name='make',
         haltOnFailure=True))
 systemtap_factory.addStep(steps.Compile(
-- 
2.31.1


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

only message in thread, other threads:[~2023-01-15 21:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-15 21:46 [PATCH] Add a make_output_sync_arg property for workers to override 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).