From f0d4e7858dd39fea7cb4c43ba4c4e785f0520e95 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Thu, 24 Sep 2026 02:33:53 -0700 Subject: [PATCH] [3.12] gh-157983: Skip test for ctypes.util.find_library when ld is mold (GH-157984) (GH-158009) (cherry picked from commit 1b42680b3a370e8466d3b8ea17ca598e98066b88) Co-authored-by: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Co-authored-by: Petr Viktorin --- Lib/test/test_ctypes/test_find.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py index a41e94971dfbab0..f795fe4e52a7207 100644 --- a/Lib/test/test_ctypes/test_find.py +++ b/Lib/test/test_ctypes/test_find.py @@ -1,6 +1,7 @@ import unittest import unittest.mock import os.path +import subprocess import sys import test.support from test.support import os_helper @@ -75,8 +76,27 @@ def test_shell_injection(self): @unittest.skipUnless(sys.platform.startswith('linux'), 'Test only valid for Linux') class FindLibraryLinux(unittest.TestCase): + @classmethod + def setUpClass(cls): + try: + p = subprocess.run(['ld', '--version'], + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + text=True) + except OSError: + pass + else: + if p.stdout.startswith('mold '): + # The mold linker is known to be incompatible with + # ctypes.util.find_library. The function is + # documented as "Try to find a library..." + # and formally soft-deprecated in 3.15+. We + # we skip the test rather than try to fix it + # (which would risk breaking other unsupported + # platforms). + raise unittest.SkipTest('Fails when ld is mold') + def test_find_on_libpath(self): - import subprocess import tempfile try: