Author: dyung
Date: 2025-06-26T15:02:14-04:00
New Revision: b0500f56c8b6b8dd21c4689cc6aa90d4d5ed7cfb

URL: 
https://github.com/llvm/llvm-project/commit/b0500f56c8b6b8dd21c4689cc6aa90d4d5ed7cfb
DIFF: 
https://github.com/llvm/llvm-project/commit/b0500f56c8b6b8dd21c4689cc6aa90d4d5ed7cfb.diff

LOG: Revert "[clang][python][test] Move python binding tests to lit framework" 
(#145951)

Reverts llvm/llvm-project#145855

The test added is XPASS-ing on a bot:
https://lab.llvm.org/buildbot/#/builders/144/builds/28623

Added: 
    clang/bindings/python/tests/CMakeLists.txt
    clang/bindings/python/tests/__init__.py
    clang/bindings/python/tests/cindex/INPUTS/a.inc
    clang/bindings/python/tests/cindex/INPUTS/b.inc
    clang/bindings/python/tests/cindex/INPUTS/compile_commands.json
    clang/bindings/python/tests/cindex/INPUTS/header1.h
    clang/bindings/python/tests/cindex/INPUTS/header2.h
    clang/bindings/python/tests/cindex/INPUTS/header3.h
    clang/bindings/python/tests/cindex/INPUTS/hello.cpp
    clang/bindings/python/tests/cindex/INPUTS/include.cpp
    clang/bindings/python/tests/cindex/INPUTS/parse_arguments.c
    clang/bindings/python/tests/cindex/INPUTS/testfile.c
    clang/bindings/python/tests/cindex/__init__.py
    clang/bindings/python/tests/cindex/test_access_specifiers.py
    clang/bindings/python/tests/cindex/test_cdb.py
    clang/bindings/python/tests/cindex/test_code_completion.py
    clang/bindings/python/tests/cindex/test_comment.py
    clang/bindings/python/tests/cindex/test_cursor.py
    clang/bindings/python/tests/cindex/test_cursor_kind.py
    clang/bindings/python/tests/cindex/test_diagnostics.py
    clang/bindings/python/tests/cindex/test_enums.py
    clang/bindings/python/tests/cindex/test_exception_specification_kind.py
    clang/bindings/python/tests/cindex/test_file.py
    clang/bindings/python/tests/cindex/test_index.py
    clang/bindings/python/tests/cindex/test_lib.py
    clang/bindings/python/tests/cindex/test_linkage.py
    clang/bindings/python/tests/cindex/test_location.py
    clang/bindings/python/tests/cindex/test_rewrite.py
    clang/bindings/python/tests/cindex/test_source_range.py
    clang/bindings/python/tests/cindex/test_tls_kind.py
    clang/bindings/python/tests/cindex/test_token_kind.py
    clang/bindings/python/tests/cindex/test_tokens.py
    clang/bindings/python/tests/cindex/test_translation_unit.py
    clang/bindings/python/tests/cindex/test_type.py
    clang/bindings/python/tests/cindex/util.py

Modified: 
    .github/workflows/libclang-python-tests.yml
    clang/CMakeLists.txt
    clang/test/CMakeLists.txt

Removed: 
    clang/test/bindings/python/bindings.sh
    clang/test/bindings/python/lit.local.cfg
    clang/test/bindings/python/tests/__init__.py
    clang/test/bindings/python/tests/cindex/INPUTS/a.inc
    clang/test/bindings/python/tests/cindex/INPUTS/b.inc
    clang/test/bindings/python/tests/cindex/INPUTS/compile_commands.json
    clang/test/bindings/python/tests/cindex/INPUTS/header1.h
    clang/test/bindings/python/tests/cindex/INPUTS/header2.h
    clang/test/bindings/python/tests/cindex/INPUTS/header3.h
    clang/test/bindings/python/tests/cindex/INPUTS/hello.cpp
    clang/test/bindings/python/tests/cindex/INPUTS/include.cpp
    clang/test/bindings/python/tests/cindex/INPUTS/parse_arguments.c
    clang/test/bindings/python/tests/cindex/INPUTS/testfile.c
    clang/test/bindings/python/tests/cindex/__init__.py
    clang/test/bindings/python/tests/cindex/test_access_specifiers.py
    clang/test/bindings/python/tests/cindex/test_cdb.py
    clang/test/bindings/python/tests/cindex/test_code_completion.py
    clang/test/bindings/python/tests/cindex/test_comment.py
    clang/test/bindings/python/tests/cindex/test_cursor.py
    clang/test/bindings/python/tests/cindex/test_cursor_kind.py
    clang/test/bindings/python/tests/cindex/test_diagnostics.py
    clang/test/bindings/python/tests/cindex/test_enums.py
    clang/test/bindings/python/tests/cindex/test_exception_specification_kind.py
    clang/test/bindings/python/tests/cindex/test_file.py
    clang/test/bindings/python/tests/cindex/test_index.py
    clang/test/bindings/python/tests/cindex/test_lib.py
    clang/test/bindings/python/tests/cindex/test_linkage.py
    clang/test/bindings/python/tests/cindex/test_location.py
    clang/test/bindings/python/tests/cindex/test_rewrite.py
    clang/test/bindings/python/tests/cindex/test_source_range.py
    clang/test/bindings/python/tests/cindex/test_tls_kind.py
    clang/test/bindings/python/tests/cindex/test_token_kind.py
    clang/test/bindings/python/tests/cindex/test_tokens.py
    clang/test/bindings/python/tests/cindex/test_translation_unit.py
    clang/test/bindings/python/tests/cindex/test_type.py
    clang/test/bindings/python/tests/cindex/util.py


################################################################################
diff  --git a/.github/workflows/libclang-python-tests.yml 
b/.github/workflows/libclang-python-tests.yml
index 43b50cec61716..50ef4acf2feb1 100644
--- a/.github/workflows/libclang-python-tests.yml
+++ b/.github/workflows/libclang-python-tests.yml
@@ -10,15 +10,15 @@ on:
       - 'main'
     paths:
       - 'clang/bindings/python/**'
-      - 'clang/test/bindings/python/**'
       - 'clang/tools/libclang/**'
+      - 'clang/CMakeList.txt'
       - '.github/workflows/libclang-python-tests.yml'
       - '.github/workflows/llvm-project-tests.yml'
   pull_request:
     paths:
       - 'clang/bindings/python/**'
-      - 'clang/test/bindings/python/**'
       - 'clang/tools/libclang/**'
+      - 'clang/CMakeList.txt'
       - '.github/workflows/libclang-python-tests.yml'
       - '.github/workflows/llvm-project-tests.yml'
 

diff  --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
index 72386132bce9f..94607a8e8473c 100644
--- a/clang/CMakeLists.txt
+++ b/clang/CMakeLists.txt
@@ -530,6 +530,7 @@ if( CLANG_INCLUDE_TESTS )
     clang_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/test/Unit/lit.site.cfg
   )
   add_subdirectory(test)
+  add_subdirectory(bindings/python/tests)
 
   if(CLANG_BUILT_STANDALONE)
     umbrella_lit_testsuite_end(check-all)

diff  --git a/clang/bindings/python/tests/CMakeLists.txt 
b/clang/bindings/python/tests/CMakeLists.txt
new file mode 100644
index 0000000000000..a0ddabc21bb41
--- /dev/null
+++ b/clang/bindings/python/tests/CMakeLists.txt
@@ -0,0 +1,66 @@
+# Test target to run Python test suite from main build.
+
+# Avoid configurations including '-include' from interfering with
+# our tests by setting CLANG_NO_DEFAULT_CONFIG.
+add_custom_target(check-clang-python
+    COMMAND ${CMAKE_COMMAND} -E env
+            CLANG_NO_DEFAULT_CONFIG=1
+            CLANG_LIBRARY_PATH=$<TARGET_FILE_DIR:libclang>
+            "${Python3_EXECUTABLE}" -m unittest discover
+    DEPENDS libclang
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
+
+set(RUN_PYTHON_TESTS TRUE)
+set_target_properties(check-clang-python PROPERTIES FOLDER "Clang/Tests")
+
+# Tests require libclang.so which is only built with LLVM_ENABLE_PIC=ON
+if(NOT LLVM_ENABLE_PIC)
+  set(RUN_PYTHON_TESTS FALSE)
+endif()
+
+# Do not try to run if libclang was built with sanitizers because
+# the sanitizer library will likely be loaded too late to perform
+# interception and will then fail.
+# We could use LD_PRELOAD/DYLD_INSERT_LIBRARIES but this isn't
+# portable so its easier just to not run the tests when building
+# with ASan.
+if(NOT LLVM_USE_SANITIZER STREQUAL "")
+  set(RUN_PYTHON_TESTS FALSE)
+endif()
+
+# Tests fail on Windows, and need someone knowledgeable to fix.
+# It's not clear whether it's a test or a valid binding problem.
+if(WIN32)
+  set(RUN_PYTHON_TESTS FALSE)
+endif()
+
+# The Python FFI interface is broken on AIX: 
https://bugs.python.org/issue38628.
+if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
+  set(RUN_PYTHON_TESTS FALSE)
+endif()
+
+# AArch64, Hexagon, and Sparc have known test failures that need to be
+# addressed.
+# SystemZ has broken Python/FFI interface:
+# https://reviews.llvm.org/D52840#1265716
+if(${LLVM_NATIVE_ARCH} MATCHES "^(AArch64|Hexagon|Sparc|SystemZ)$")
+  set(RUN_PYTHON_TESTS FALSE)
+endif()
+
+# Tests will fail if cross-compiling for a 
diff erent target, as tests will try
+# to use the host Python3_EXECUTABLE and make FFI calls to functions in target
+# libraries.
+if(CMAKE_CROSSCOMPILING)
+  # FIXME: Consider a solution that allows better control over these tests in
+  # a crosscompiling scenario. e.g. registering them with lit to allow them to
+  # be explicitly skipped via appropriate LIT_ARGS, or adding a mechanism to
+  # allow specifying a python interpreter compiled for the target that could
+  # be executed using qemu-user.
+  message(WARNING "check-clang-python not added to check-all as these tests 
fail in a cross-build setup")
+  set(RUN_PYTHON_TESTS FALSE)
+endif()
+
+if(RUN_PYTHON_TESTS)
+    set_property(GLOBAL APPEND PROPERTY
+                 LLVM_ALL_ADDITIONAL_TEST_TARGETS check-clang-python)
+endif()

diff  --git a/clang/test/bindings/python/tests/__init__.py 
b/clang/bindings/python/tests/__init__.py
similarity index 100%
rename from clang/test/bindings/python/tests/__init__.py
rename to clang/bindings/python/tests/__init__.py

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/a.inc 
b/clang/bindings/python/tests/cindex/INPUTS/a.inc
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/a.inc
rename to clang/bindings/python/tests/cindex/INPUTS/a.inc

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/b.inc 
b/clang/bindings/python/tests/cindex/INPUTS/b.inc
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/b.inc
rename to clang/bindings/python/tests/cindex/INPUTS/b.inc

diff  --git 
a/clang/test/bindings/python/tests/cindex/INPUTS/compile_commands.json 
b/clang/bindings/python/tests/cindex/INPUTS/compile_commands.json
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/compile_commands.json
rename to clang/bindings/python/tests/cindex/INPUTS/compile_commands.json

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/header1.h 
b/clang/bindings/python/tests/cindex/INPUTS/header1.h
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/header1.h
rename to clang/bindings/python/tests/cindex/INPUTS/header1.h

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/header2.h 
b/clang/bindings/python/tests/cindex/INPUTS/header2.h
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/header2.h
rename to clang/bindings/python/tests/cindex/INPUTS/header2.h

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/header3.h 
b/clang/bindings/python/tests/cindex/INPUTS/header3.h
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/header3.h
rename to clang/bindings/python/tests/cindex/INPUTS/header3.h

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/hello.cpp 
b/clang/bindings/python/tests/cindex/INPUTS/hello.cpp
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/hello.cpp
rename to clang/bindings/python/tests/cindex/INPUTS/hello.cpp

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/include.cpp 
b/clang/bindings/python/tests/cindex/INPUTS/include.cpp
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/include.cpp
rename to clang/bindings/python/tests/cindex/INPUTS/include.cpp

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/parse_arguments.c 
b/clang/bindings/python/tests/cindex/INPUTS/parse_arguments.c
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/parse_arguments.c
rename to clang/bindings/python/tests/cindex/INPUTS/parse_arguments.c

diff  --git a/clang/test/bindings/python/tests/cindex/INPUTS/testfile.c 
b/clang/bindings/python/tests/cindex/INPUTS/testfile.c
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/INPUTS/testfile.c
rename to clang/bindings/python/tests/cindex/INPUTS/testfile.c

diff  --git a/clang/test/bindings/python/tests/cindex/__init__.py 
b/clang/bindings/python/tests/cindex/__init__.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/__init__.py
rename to clang/bindings/python/tests/cindex/__init__.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_access_specifiers.py 
b/clang/bindings/python/tests/cindex/test_access_specifiers.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_access_specifiers.py
rename to clang/bindings/python/tests/cindex/test_access_specifiers.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_cdb.py 
b/clang/bindings/python/tests/cindex/test_cdb.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_cdb.py
rename to clang/bindings/python/tests/cindex/test_cdb.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_code_completion.py 
b/clang/bindings/python/tests/cindex/test_code_completion.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_code_completion.py
rename to clang/bindings/python/tests/cindex/test_code_completion.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_comment.py 
b/clang/bindings/python/tests/cindex/test_comment.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_comment.py
rename to clang/bindings/python/tests/cindex/test_comment.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_cursor.py 
b/clang/bindings/python/tests/cindex/test_cursor.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_cursor.py
rename to clang/bindings/python/tests/cindex/test_cursor.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_cursor_kind.py 
b/clang/bindings/python/tests/cindex/test_cursor_kind.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_cursor_kind.py
rename to clang/bindings/python/tests/cindex/test_cursor_kind.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_diagnostics.py 
b/clang/bindings/python/tests/cindex/test_diagnostics.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_diagnostics.py
rename to clang/bindings/python/tests/cindex/test_diagnostics.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_enums.py 
b/clang/bindings/python/tests/cindex/test_enums.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_enums.py
rename to clang/bindings/python/tests/cindex/test_enums.py

diff  --git 
a/clang/test/bindings/python/tests/cindex/test_exception_specification_kind.py 
b/clang/bindings/python/tests/cindex/test_exception_specification_kind.py
similarity index 100%
rename from 
clang/test/bindings/python/tests/cindex/test_exception_specification_kind.py
rename to 
clang/bindings/python/tests/cindex/test_exception_specification_kind.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_file.py 
b/clang/bindings/python/tests/cindex/test_file.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_file.py
rename to clang/bindings/python/tests/cindex/test_file.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_index.py 
b/clang/bindings/python/tests/cindex/test_index.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_index.py
rename to clang/bindings/python/tests/cindex/test_index.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_lib.py 
b/clang/bindings/python/tests/cindex/test_lib.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_lib.py
rename to clang/bindings/python/tests/cindex/test_lib.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_linkage.py 
b/clang/bindings/python/tests/cindex/test_linkage.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_linkage.py
rename to clang/bindings/python/tests/cindex/test_linkage.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_location.py 
b/clang/bindings/python/tests/cindex/test_location.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_location.py
rename to clang/bindings/python/tests/cindex/test_location.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_rewrite.py 
b/clang/bindings/python/tests/cindex/test_rewrite.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_rewrite.py
rename to clang/bindings/python/tests/cindex/test_rewrite.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_source_range.py 
b/clang/bindings/python/tests/cindex/test_source_range.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_source_range.py
rename to clang/bindings/python/tests/cindex/test_source_range.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_tls_kind.py 
b/clang/bindings/python/tests/cindex/test_tls_kind.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_tls_kind.py
rename to clang/bindings/python/tests/cindex/test_tls_kind.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_token_kind.py 
b/clang/bindings/python/tests/cindex/test_token_kind.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_token_kind.py
rename to clang/bindings/python/tests/cindex/test_token_kind.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_tokens.py 
b/clang/bindings/python/tests/cindex/test_tokens.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_tokens.py
rename to clang/bindings/python/tests/cindex/test_tokens.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_translation_unit.py 
b/clang/bindings/python/tests/cindex/test_translation_unit.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_translation_unit.py
rename to clang/bindings/python/tests/cindex/test_translation_unit.py

diff  --git a/clang/test/bindings/python/tests/cindex/test_type.py 
b/clang/bindings/python/tests/cindex/test_type.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/test_type.py
rename to clang/bindings/python/tests/cindex/test_type.py

diff  --git a/clang/test/bindings/python/tests/cindex/util.py 
b/clang/bindings/python/tests/cindex/util.py
similarity index 100%
rename from clang/test/bindings/python/tests/cindex/util.py
rename to clang/bindings/python/tests/cindex/util.py

diff  --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt
index a9b88d4f4d9ec..e5b4a3bb84645 100644
--- a/clang/test/CMakeLists.txt
+++ b/clang/test/CMakeLists.txt
@@ -205,17 +205,6 @@ add_custom_target(clang-test)
 add_dependencies(clang-test check-clang)
 set_target_properties(clang-test PROPERTIES FOLDER "Clang/Tests")
 
-# Allow running Clang Python binding tests separately from CI.
-add_lit_testsuite(check-clang-python "Running the Clang Python tests"
-  ${CMAKE_CURRENT_BINARY_DIR}
-  #LIT ${LLVM_LIT}
-  PARAMS ${CLANG_TEST_PARAMS}
-  DEPENDS ${CLANG_TEST_DEPS}
-  ARGS ${CLANG_TEST_EXTRA_ARGS} --filter=bindings.sh
-  # Avoid running tests twice.
-  EXCLUDE_FROM_CHECK_ALL
-  )
-
 # FIXME: This logic can be removed once all buildbots have moved
 # debuginfo-test from clang/test to llvm/projects or monorepo.
 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests)

diff  --git a/clang/test/bindings/python/bindings.sh 
b/clang/test/bindings/python/bindings.sh
deleted file mode 100755
index 3800c06d9c6e7..0000000000000
--- a/clang/test/bindings/python/bindings.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-# UNSUPPORTED: !libclang-loadable
-
-# Tests fail on Windows, and need someone knowledgeable to fix.
-# It's not clear whether it's a test or a valid binding problem.
-# XFAIL: target={{.*windows.*}}
-
-# The Python FFI interface is broken on AIX: 
https://bugs.python.org/issue38628.
-# XFAIL: target={{.*-aix.*}}
-
-# Hexagon has known test failures that need to be addressed.
-# SystemZ has broken Python/FFI interface:
-# https://reviews.llvm.org/D52840#1265716
-# XFAIL: target={{(hexagon|s390x)-.*}}
-# python SEGVs on Linux/sparc64 when loading libclang.so.  Seems to be an FFI
-# issue, too.
-# XFAIL: target={{sparc.*-.*-linux.*}}
-
-# Tests will fail if cross-compiling for a 
diff erent target, as tests will try
-# to use the host Python3_EXECUTABLE and make FFI calls to functions in target
-# libraries.
-#
-# FIXME: Consider a solution that allows better control over these tests in
-# a crosscompiling scenario. e.g. registering them with lit to allow them to
-# be explicitly skipped via appropriate LIT_ARGS, or adding a mechanism to
-# allow specifying a python interpreter compiled for the target that could
-# be executed using qemu-user.
-# XFAIL: !native
-
-# RUN: env PYTHONPATH=%S/../../../bindings/python \
-# RUN:   CLANG_LIBRARY_PATH=%libdir \
-# RUN:   %python -m unittest discover -s %S/tests

diff  --git a/clang/test/bindings/python/lit.local.cfg 
b/clang/test/bindings/python/lit.local.cfg
deleted file mode 100644
index cc3bdf8ba97d4..0000000000000
--- a/clang/test/bindings/python/lit.local.cfg
+++ /dev/null
@@ -1,41 +0,0 @@
-def is_libclang_loadable():
-    # Do not try to run if libclang was built with sanitizers because
-    # the sanitizer library will likely be loaded too late to perform
-    # interception and will then fail.
-    # We could use LD_PRELOAD/DYLD_INSERT_LIBRARIES but this isn't
-    # portable so its easier just to not run the tests when building
-    # with ASan.
-    if config.llvm_use_sanitizer != "":
-        return False
-    try:
-        sys.path.append(os.path.join(config.clang_src_dir, "bindings/python"))
-        from clang.cindex import Config
-        conf = Config()
-        Config.set_library_path(config.clang_lib_dir)
-        conf.lib
-        return True
-    except Exception as e:
-        # Expected failure modes are considered benign when nothing can be
-        # done about them.
-        #
-        # Cannot load a 32-bit libclang.so into a 64-bit python.
-        if "wrong ELF class: ELFCLASS32" in str(e):
-            return False
-        # If libclang.so is missing, it must have been disabled intentionally,
-        # e.g. by building with LLVM_ENABLE_PIC=OFF.
-        elif "No such file or directory" in str(e):
-            return False
-        # Unexpected failure modes need to be investigated to either fix an
-        # underlying bug or accept the failure, so return True.  This causes
-        # tests to run and FAIL, drawing developer attention.
-        else:
-            print("warning: unhandled failure in is_libclang_loadable: "
-                  + str(e), file=sys.stderr)
-            return True
-
-if is_libclang_loadable():
-    config.available_features.add("libclang-loadable")
-
-config.substitutions.append(('%libdir', config.clang_lib_dir))
-
-config.suffixes = ['.sh']


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to