Index: buildbot/osuosl/master/config/builders.py =================================================================== --- buildbot/osuosl/master/config/builders.py +++ buildbot/osuosl/master/config/builders.py @@ -667,8 +667,10 @@ 'slavenames': ['gribozavr4'], 'builddir': 'libcxx-libcxxabi-singlethreaded-x86_64-linux-debian', 'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder( - env={'CC': 'clang', 'CXX': 'clang++', - 'CXXFLAGS' : '-D_LIBCPP_HAS_NO_THREADS -DLIBCXXABI_SINGLE_THREADED=1'}), + env={'CC': 'clang', 'CXX': 'clang++'}, + additional_features=set(['libcxxabi-has-no-threads', + 'libcpp-has-no-threads' + 'libcpp-has-no-monotonic-clock'])), 'category': 'libcxx'}, {'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu', Index: zorg/buildbot/builders/LibcxxAndAbiBuilder.py =================================================================== --- zorg/buildbot/builders/LibcxxAndAbiBuilder.py +++ zorg/buildbot/builders/LibcxxAndAbiBuilder.py @@ -42,7 +42,7 @@ return f -def getLibcxxAndAbiBuilder(f=None, env={}): +def getLibcxxAndAbiBuilder(f=None, env={}, additional_features=set()): if f is None: f = buildbot.process.factory.BuildFactory() @@ -59,6 +59,20 @@ f = getLibcxxWholeTree(f, src_root) + if 'libcxxabi-has-no-threads' in additional_features: + env['CXXFLAGS'] += ' -DLIBCXXABI_HAS_NO_THREADS=1' + + if 'libcpp-has-no-threads' in additional_features: + env['CXXFLAGS'] += ' -D_LIBCPP_HAS_NO_THREADS' + + if 'libcpp-has-no-monotonic-clock' in additional_features: + env['CXXFLAGS'] += ' -D_LIBCPP_HAS_NO_MONOTONIC_CLOCK' + + litTestArgs = '' + if additional_features: + litTestArgs = ('--param=additional_features=' + + ','.join(additional_features)) + # Nuke/remake build directory and run CMake f.addStep(buildbot.steps.shell.ShellCommand( name='rm.builddir', command=['rm', '-rf', build_path], @@ -83,13 +97,14 @@ haltOnFailure=True, workdir=build_path)) # Test libc++abi + lit_flags = properties.WithProperties("LIT_ARGS=%s" % litTestArgs) f.addStep(buildbot.steps.shell.ShellCommand( - name='test.libcxxabi', command=['make', 'check-libcxxabi'], + name='test.libcxxabi', command=['make', lit_flags, 'check-libcxxabi'], workdir=build_path)) # Test libc++ f.addStep(buildbot.steps.shell.ShellCommand( - name='test.libcxx', command=['make', 'check-libcxx'], + name='test.libcxx', command=['make', lit_flags, 'check-libcxx'], workdir=build_path)) return f