From fe79e798b1746b8a3262d01aa3f6686b1cdf3328 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Thu, 22 Jan 2015 19:58:07 -0500 Subject: [PATCH] Adding special classes for FreeBSD builds, because they need to use gmake instead of make --- lib/config.json | 8 ++++---- master.cfg | 48 +++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/lib/config.json b/lib/config.json index 6e24656..242730c 100644 --- a/lib/config.json +++ b/lib/config.json @@ -96,25 +96,25 @@ - { "name" : "FreeBSD-x86_64-m64", "type" : "Plain_c64t64", + { "name" : "FreeBSD-x86_64-m64", "type" : "PlainBSD_c64t64", "builddir" : "freebsd-x86-64", "slavenames" : [ "koobs-freebsd8", "koobs-freebsd9", "koobs-freebsd10", "koobs-freebsd11" ] }, { "name" : "FreeBSD-x86_64-native-gdbserver-m64", - "type" : "NativeGDBServer_c64t64", + "type" : "NativeGDBServerBSD_c64t64", "builddir" : "freebsd-x86-64-native-gdbserver", "slavenames" : [ "koobs-freebsd8", "koobs-freebsd9", "koobs-freebsd10", "koobs-freebsd11" ] }, { "name" : "FreeBSD-x86_64-native-extended-gdbserver-m64", - "type" : "NativeExtendedGDBServer_c64t64", + "type" : "NativeExtendedGDBServerBSD_c64t64", "builddir" : "freebsd-x86-64-native-extended-gdbserver", "slavenames" : [ "koobs-freebsd8", "koobs-freebsd9", "koobs-freebsd10", "koobs-freebsd11" ] }, { "name" : "FreeBSD-x86_64-cc-with-index", - "type" : "IndexBuild", + "type" : "IndexBuildBSD", "builddir" : "freebsd-x86-64-cc-with-index", "slavenames" : [ "koobs-freebsd8", "koobs-freebsd9", "koobs-freebsd10", "koobs-freebsd11" ] } diff --git a/master.cfg b/master.cfg index 8d66dcb..fe0a53f 100644 --- a/master.cfg +++ b/master.cfg @@ -329,10 +329,11 @@ buildslave.""" name = "compile gdb" description = r"compile GDB" descriptionDone = r"compiled GDB" - def __init__ (self, extra_make_flags = [], **kwargs): + def __init__ (self, make_command = 'make', extra_make_flags = [], + **kwargs): Compile.__init__ (self, **kwargs) self.workdir = WithProperties (r"%s", r'builddir') - self.command = ['make', + self.command = ['%s' % make_command, WithProperties (r"-j%s", r'jobs'), 'all'] + extra_make_flags @@ -341,9 +342,10 @@ class MakeTAGSGDB (ShellCommand): description = 'running make TAGS' descriptionDone = 'ran make TAGS' def __init__ (self, **kwargs): - ShellCommand.__init__ (self, **kwargs) + ShellCommand.__init__ (self, make_command = 'make', + **kwargs) self.workdir = WithProperties ("%s/build/gdb", 'builddir') - self.command = [ 'make', 'TAGS' ] + self.command = [ '%s' % make_command, 'TAGS' ] # We do not want to stop testing when this command fails. self.haltOnFailure = False self.flunkOnFailure = False @@ -358,15 +360,15 @@ BuildBot halt on failure.""" name = "test gdb" description = r"testing GDB" descriptionDone = r"tested GDB" - def __init__ (self, extra_make_check_flags = [], test_env = {}, - **kwargs): + def __init__ (self, make_command = 'make', extra_make_check_flags = [], + test_env = {}, **kwargs): ShellCommand.__init__ (self, decodeRC = { 0 : SUCCESS, 1 : SUCCESS, 2 : SUCCESS }, **kwargs) self.workdir = WithProperties (r"%s/build/gdb/testsuite", r'builddir') - self.command = ['make', + self.command = ['%s' % make_command, '-k', 'check'] + extra_make_check_flags @@ -424,15 +426,21 @@ The parameters of the class are: Default is False. Beware that parallelizing tests may cause some failures due to limited system resources. + - make_command: set the command that will be called when running + 'make'. This is needed because BSD systems need to run 'gmake' + instead of make. Default is 'make'. + - use_system_debuginfo: set to False if GDB should be compiled with the "--with-separate-debug-dir" option set to "/usr/lib/debug". Default is True. + """ ConfigureClass = ConfigureGDB CompileClass = CompileGDB TestClass = TestGDB extra_conf_flags = None + extra_make_flags = None extra_make_check_flags = None test_env = None @@ -441,6 +449,10 @@ The parameters of the class are: # FORCE_PARALLEL) test_parallel = False + # Set this to the make command that you want to run in the "make" + # steps. + make_command = 'make' + # Set this to False to disable using system's debuginfo files # (i.e., do not use '--with-separate-debug-dir') use_system_debuginfo = True @@ -467,7 +479,7 @@ The parameters of the class are: if not self.extra_make_flags: self.extra_make_flags = [] - self.addStep (self.CompileClass (self.extra_make_flags)) + self.addStep (self.CompileClass (self.make_command, self.extra_make_flags)) # Disabling this until we figure out how to properly run + test # self.addStep (MakeTAGSGDB ()) @@ -481,7 +493,8 @@ The parameters of the class are: self.extra_make_check_flags.append (WithProperties (r"-j%s", r'jobs')) self.extra_make_check_flags.append (r'FORCE_PARALLEL=1') - self.addStep (self.TestClass (self.extra_make_check_flags, self.test_env)) + self.addStep (self.TestClass (self.make_command, self.extra_make_check_flags, + self.test_env)) self.addStep (GdbCatSumfileCommand (workdir = WithProperties (r'%s/build/gdb/testsuite', r'builddir'), @@ -548,6 +561,23 @@ class RunTestGDBIndexBuild (BuildAndTestGDBFactory): extra_make_check_flags = [ WithProperties (r'CC_FOR_TARGET=/bin/sh %s/binutils-gdb/gdb/contrib/cc-with-tweaks.sh -i gcc', r'builddir'), WithProperties (r'CXX_FOR_TARGET=/bin/sh %s/binutils-gdb/gdb/contrib/cc-with-tweaks.sh -i g++', r'builddir') ] +# Classes needed for BSD systems + +class RunTestGDBPlainBSD_c64t64 (RunTestGDBPlain_c64t64): + """Compiling for 64-bit, testing on 64-bit.""" + make_command = 'gmake' + +class RunTestGDBNativeGDBServerBSD_c64t64 (RunTestGDBNativeGDBServer_c64t64): + """Compiling on 64-bit, testing native-gdbserver on 64-bit.""" + make_command = 'gmake' + +class RunTestGDBNativeExtendedGDBServerBSD_c64t64 (RunTestGDBNativeExtendedGDBServer_c64t64): + """Compiling on 64-bit, testing native-extended-gdbserver on 64-bit.""" + make_command = 'gmake' + +class RunTestGDBIndexBuildBSD (RunTestGDBIndexBuild): + """Testing with the "cc-with-tweaks.sh" passing -i. FIXME: include bitness here.""" + make_command = 'gmake' # For now, we only support testing the "master" branch. master_filter = ChangeFilter (branch = [ r'master' ])