rmaprath created this revision.
rmaprath added reviewers: rengolin, gribozavr, gkistanova, EricWF.
rmaprath added a subscriber: cfe-commits.

This patch adds the necessary builders to zorg to get the -fno-exceptions 
libcxx library variant building. I've only used those build-slaves which I have 
got explicit permission to use for this purpose.

As discussed on the cfe-dev list, these builders won't run the libcxx test 
suite (they will, in the near future, when we adapt the tests).

These builders will ensure that we don't break the -fno-exceptions library 
build. This patch can only go in once D14292 is sorted.

http://reviews.llvm.org/D14293

Files:
  buildbot/osuosl/master/config/builders.py
  zorg/buildbot/builders/LibcxxAndAbiBuilder.py

Index: zorg/buildbot/builders/LibcxxAndAbiBuilder.py
===================================================================
--- zorg/buildbot/builders/LibcxxAndAbiBuilder.py
+++ zorg/buildbot/builders/LibcxxAndAbiBuilder.py
@@ -128,6 +128,10 @@
         descriptionDone = ['test', 'libcxxabi'],
         workdir         = build_path))
 
+    # Skip libcxx tests if requested
+    if 'no-libcxx-tests' in additional_features:
+        return f
+
     # Test libc++
     f.addStep(LitTestCommand(
         name            = 'test.libcxx',
Index: buildbot/osuosl/master/config/builders.py
===================================================================
--- buildbot/osuosl/master/config/builders.py
+++ buildbot/osuosl/master/config/builders.py
@@ -740,6 +759,18 @@
              env={'CC': 'clang', 'CXX': 'clang++'}),
          'category': 'libcxx'},
 
+        # x86_64 -fno-exceptions libcxx build (skips libcxx tests)
+        {'name': 'libcxx-libcxxabi-x86_64-linux-debian-noexceptions',
+         'slavenames': ['gribozavr4'],
+         'builddir': 'libcxx-libcxxabi-x86_64-linux-debian-noexceptions',
+         'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
+             env={'CC': 'clang', 'CXX': 'clang++'},
+             cmake_extra_opts={'LIBCXX_ENABLE_EXCEPTIONS': 'OFF'},
+             # TODO: Remove this once the libcxx tests are updated to pass on
+             # the -fno-exceptions library build.
+             additional_features={'no-libcxx-tests'}),
+         'category': 'libcxx'},
+
         {'name': 'libcxx-libcxxabi-singlethreaded-x86_64-linux-debian',
          'slavenames': ['gribozavr4'],
          'builddir': 'libcxx-libcxxabi-singlethreaded-x86_64-linux-debian',
@@ -840,6 +871,24 @@
             cmake_extra_opts={'LIBCXXABI_USE_LLVM_UNWINDER': 'True',
                               'CMAKE_C_FLAGS': '-mcpu=cortex-a15',
                               'CMAKE_CXX_FLAGS': '-mcpu=cortex-a15'})},
+
+        # Cortex-A15 -fno-exceptions libcxx build (skips libcxx tests)
+        {'name': 'libcxx-libcxxabi-arm-linux-noexceptions',
+         'slavenames': ['linaro-chrome-01'],
+         'builddir': 'libcxx-libcxxabi-arm-linux-noexceptions',
+         'category': 'libcxx',
+         'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
+            env={'CC': 'clang', 'CXX': 'clang++'},
+            # FIXME: there should be a way to merge autodetected with 
user-defined linker flags
+            # See: libcxxabi/test/lit.cfg
+            lit_extra_opts={'link_flags': '"-lc++abi -lc -lm -lpthread 
-lunwind -ldl -L/opt/llvm/lib/clang/3.6.0/lib/linux -lclang_rt.builtins-arm"'},
+            cmake_extra_opts={'LIBCXXABI_USE_LLVM_UNWINDER': 'True',
+                              'CMAKE_C_FLAGS': '-mcpu=cortex-a15',
+                              'CMAKE_CXX_FLAGS': '-mcpu=cortex-a15',
+                              'LIBCXX_ENABLE_EXCEPTIONS': 'OFF'},
+            # TODO: Remove this once the libcxx tests are updated to pass on
+            # the -fno-exceptions library build.
+            additional_features={'no-libcxx-tests'})},
     ]
 
 # Experimental and stopped builders


Index: zorg/buildbot/builders/LibcxxAndAbiBuilder.py
===================================================================
--- zorg/buildbot/builders/LibcxxAndAbiBuilder.py
+++ zorg/buildbot/builders/LibcxxAndAbiBuilder.py
@@ -128,6 +128,10 @@
         descriptionDone = ['test', 'libcxxabi'],
         workdir         = build_path))
 
+    # Skip libcxx tests if requested
+    if 'no-libcxx-tests' in additional_features:
+        return f
+
     # Test libc++
     f.addStep(LitTestCommand(
         name            = 'test.libcxx',
Index: buildbot/osuosl/master/config/builders.py
===================================================================
--- buildbot/osuosl/master/config/builders.py
+++ buildbot/osuosl/master/config/builders.py
@@ -740,6 +759,18 @@
              env={'CC': 'clang', 'CXX': 'clang++'}),
          'category': 'libcxx'},
 
+        # x86_64 -fno-exceptions libcxx build (skips libcxx tests)
+        {'name': 'libcxx-libcxxabi-x86_64-linux-debian-noexceptions',
+         'slavenames': ['gribozavr4'],
+         'builddir': 'libcxx-libcxxabi-x86_64-linux-debian-noexceptions',
+         'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
+             env={'CC': 'clang', 'CXX': 'clang++'},
+             cmake_extra_opts={'LIBCXX_ENABLE_EXCEPTIONS': 'OFF'},
+             # TODO: Remove this once the libcxx tests are updated to pass on
+             # the -fno-exceptions library build.
+             additional_features={'no-libcxx-tests'}),
+         'category': 'libcxx'},
+
         {'name': 'libcxx-libcxxabi-singlethreaded-x86_64-linux-debian',
          'slavenames': ['gribozavr4'],
          'builddir': 'libcxx-libcxxabi-singlethreaded-x86_64-linux-debian',
@@ -840,6 +871,24 @@
             cmake_extra_opts={'LIBCXXABI_USE_LLVM_UNWINDER': 'True',
                               'CMAKE_C_FLAGS': '-mcpu=cortex-a15',
                               'CMAKE_CXX_FLAGS': '-mcpu=cortex-a15'})},
+
+        # Cortex-A15 -fno-exceptions libcxx build (skips libcxx tests)
+        {'name': 'libcxx-libcxxabi-arm-linux-noexceptions',
+         'slavenames': ['linaro-chrome-01'],
+         'builddir': 'libcxx-libcxxabi-arm-linux-noexceptions',
+         'category': 'libcxx',
+         'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
+            env={'CC': 'clang', 'CXX': 'clang++'},
+            # FIXME: there should be a way to merge autodetected with user-defined linker flags
+            # See: libcxxabi/test/lit.cfg
+            lit_extra_opts={'link_flags': '"-lc++abi -lc -lm -lpthread -lunwind -ldl -L/opt/llvm/lib/clang/3.6.0/lib/linux -lclang_rt.builtins-arm"'},
+            cmake_extra_opts={'LIBCXXABI_USE_LLVM_UNWINDER': 'True',
+                              'CMAKE_C_FLAGS': '-mcpu=cortex-a15',
+                              'CMAKE_CXX_FLAGS': '-mcpu=cortex-a15',
+                              'LIBCXX_ENABLE_EXCEPTIONS': 'OFF'},
+            # TODO: Remove this once the libcxx tests are updated to pass on
+            # the -fno-exceptions library build.
+            additional_features={'no-libcxx-tests'})},
     ]
 
 # Experimental and stopped builders
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to