[libcxx] Replace find_executable with shutil.which
authorDavid Spickett <david.spickett@linaro.org>
Mon, 17 Apr 2023 13:28:22 +0000 (13:28 +0000)
committerDavid Spickett <david.spickett@linaro.org>
Mon, 17 Apr 2023 15:01:48 +0000 (15:01 +0000)
distutils is deprecated and shutil.which is the suggested
replacement for this function.

https://peps.python.org/pep-0632/#migration-advice
https://docs.python.org/3/library/shutil.html#shutil.which

which was added in 3.3 (https://docs.python.org/3/library/shutil.html#shutil.which)
and LLVM requires at least 3.6 (https://llvm.org/docs/GettingStarted.html#software).

Reviewed By: #libc, philnik

Differential Revision: https://reviews.llvm.org/D148527

libcxx/utils/libcxx/sym_check/extract.py
libcxx/utils/libcxx/sym_check/util.py

index c563720..dbf7ab1 100644 (file)
@@ -9,10 +9,10 @@
 """
 extract - A set of function that extract symbol lists from shared libraries.
 """
-import distutils.spawn
 import os.path
 from os import environ
 import re
+import shutil
 import subprocess
 import sys
 
@@ -30,7 +30,7 @@ class NMExtractor(object):
         """
         Search for the nm executable and return the path.
         """
-        return distutils.spawn.find_executable('nm')
+        return shutil.which('nm')
 
     def __init__(self, static_lib):
         """
@@ -119,7 +119,7 @@ class ReadElfExtractor(object):
         """
         Search for the readelf executable and return the path.
         """
-        return distutils.spawn.find_executable('readelf')
+        return shutil.which('readelf')
 
     def __init__(self, static_lib):
         """
@@ -200,7 +200,7 @@ class AIXDumpExtractor(object):
          """
          Search for the dump executable and return the path.
          """
-         return distutils.spawn.find_executable('dump')
+         return shutil.which('dump')
 
      def __init__(self, static_lib):
          """
index 7d9fd39..897f992 100644 (file)
@@ -8,8 +8,8 @@
 
 from pprint import pformat
 import ast
-import distutils.spawn
 import re
+import shutil
 import subprocess
 import sys
 
@@ -60,7 +60,7 @@ def write_syms(sym_list, out=None, names_only=False, filter=None):
             f.write(out_str)
 
 
-_cppfilt_exe = distutils.spawn.find_executable('c++filt')
+_cppfilt_exe = shutil.which('c++filt')
 
 
 def demangle_symbol(symbol):