[zorg] r286794 - Add support for libc++ ABI checking

Eric Fiselier via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 13 19:15:08 PST 2016


Author: ericwf
Date: Sun Nov 13 21:15:08 2016
New Revision: 286794

URL: http://llvm.org/viewvc/llvm-project?rev=286794&view=rev
Log:
Add support for libc++ ABI checking

Modified:
    zorg/trunk/buildbot/osuosl/master/config/builders.py
    zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py

Modified: zorg/trunk/buildbot/osuosl/master/config/builders.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/builders.py?rev=286794&r1=286793&r2=286794&view=diff
==============================================================================
--- zorg/trunk/buildbot/osuosl/master/config/builders.py (original)
+++ zorg/trunk/buildbot/osuosl/master/config/builders.py Sun Nov 13 21:15:08 2016
@@ -908,7 +908,8 @@ def _get_libcxx_builders():
          'builddir': 'libcxx-libcxxabi-x86_64-linux-debian',
          'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
              env={'CC': 'clang', 'CXX': 'clang++'},
-             lit_extra_args=['--shuffle']),
+             lit_extra_args=['--shuffle'],
+             check_libcxx_abilist=True),
          'category': 'libcxx'},
 
         {'name': 'libcxx-libcxxabi-x86_64-linux-debian-noexceptions',
@@ -946,7 +947,8 @@ def _get_libcxx_builders():
          'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
             env={'PATH': '/usr/local/bin:/usr/bin:/bin',
                  'CC': 'clang', 'CXX': 'clang++'},
-            lit_extra_opts={'std':'c++03'}),
+            lit_extra_opts={'std':'c++03'},
+            check_libcxx_abilist=True),
         'category': 'libcxx'},
 
         {'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-cxx11',
@@ -955,7 +957,8 @@ def _get_libcxx_builders():
          'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
             env={'PATH': '/usr/local/bin:/usr/bin:/bin',
                  'CC': 'clang', 'CXX': 'clang++'},
-            lit_extra_opts={'std': 'c++11', 'enable_warnings': 'true'}),
+            lit_extra_opts={'std': 'c++11', 'enable_warnings': 'true'},
+            check_libcxx_abilist=True),
         'category': 'libcxx'},
 
         {'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-cxx14',
@@ -964,7 +967,8 @@ def _get_libcxx_builders():
          'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
             env={'PATH': '/usr/local/bin:/usr/bin:/bin',
                  'CC': 'clang', 'CXX': 'clang++'},
-            lit_extra_opts={'std': 'c++14', 'enable_warnings': 'true'}),
+            lit_extra_opts={'std': 'c++14', 'enable_warnings': 'true'},
+            check_libcxx_abilist=True),
         'category': 'libcxx'},
 
         {'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-cxx1z',
@@ -973,7 +977,8 @@ def _get_libcxx_builders():
          'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
             env={'PATH': '/usr/local/bin:/usr/bin:/bin',
                  'CC': 'clang', 'CXX': 'clang++'},
-            lit_extra_opts={'std': 'c++1z', 'enable_warnings': 'true'}),
+            lit_extra_opts={'std': 'c++1z', 'enable_warnings': 'true'},
+            check_libcxx_abilist=True),
         'category': 'libcxx'},
 
         {'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-asan',

Modified: zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py?rev=286794&r1=286793&r2=286794&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py (original)
+++ zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py Sun Nov 13 21:15:08 2016
@@ -54,7 +54,7 @@ def getLibcxxWholeTree(f, src_root):
 
 def getLibcxxAndAbiBuilder(f=None, env={}, additional_features=set(),
                            cmake_extra_opts={}, lit_extra_opts={},
-                           lit_extra_args=[]):
+                           lit_extra_args=[], check_libcxx_abilist=False):
     if f is None:
         f = buildbot.process.factory.BuildFactory()
 
@@ -88,6 +88,11 @@ def getLibcxxAndAbiBuilder(f=None, env={
     for key in cmake_extra_opts:
         cmake_opts.append('-D' + key + '=' + cmake_extra_opts[key])
 
+    # FIXME: The libc++ abilist's are generated in release mode with debug
+    # symbols Other configurations may contain additional non-inlined symbols.
+    if check_libcxx_abilist and not 'CMAKE_BUILD_TYPE' in cmake_extra_opts:
+       cmake_opts.append('-DCMAKE_BUILD_TYPE=RELWITHDEBINFO')
+
     # Nuke/remake build directory and run CMake
     f.addStep(buildbot.steps.shell.ShellCommand(
         name='rm.builddir', command=['rm', '-rf', build_path],
@@ -127,4 +132,12 @@ def getLibcxxAndAbiBuilder(f=None, env={
         descriptionDone = ['test', 'libcxx'],
         workdir         = build_path))
 
+    if check_libcxx_abilist:
+        f.addStep(buildbot.steps.shell.ShellCommand(
+        name            = 'test.libcxx.abilist',
+        command         = ['make', 'check-cxx-abilist'],
+        description     = ['testing', 'libcxx', 'abi'],
+        descriptionDone = ['test', 'libcxx', 'abi'],
+        workdir         = build_path))
+
     return f




More information about the llvm-commits mailing list