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