Open
Description
Bug report
Bug description:
The test_dllist
tests in Lib/test/test_ctypes/test_dllist.py
are failing on NetBSD. The issue appears to be that the dl_iterate_phdr
function on NetBSD does not report the same information about loaded shared libraries as it does on Linux and other platforms.
Specifically, on NetBSD, dl_iterate_phdr
only returns the main Python executable and doesn't include any of the shared libraries that are actually loaded.
./python -m test test_ctypes -m test_dllist -v
Output:
FAIL: test_lists_system (test.test_ctypes.test_dllist.ListSharedLibraries.test_lists_system)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/blue/cpython/Lib/test/test_ctypes/test_dllist.py", line 33, in test_lists_system
self.assertTrue(
any(lib in dll for dll in dlls for lib in KNOWN_LIBRARIES), f"loaded={dlls}"
)
AssertionError: False is not true : loaded=['/home/blue/cpython/./python']
FAIL: test_lists_updates (test.test_ctypes.test_dllist.ListSharedLibraries.test_lists_updates)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/blue/cpython/Lib/test/test_ctypes/test_dllist.py", line 54, in test_lists_updates
self.assertGreater(dlls2, dlls1, f"newly loaded libraries: {dlls2 - dlls1}")
AssertionError: {'/home/blue/cpython/./python'} not greater than {'/home/blue/cpython/./python'} : newly loaded libraries: set()
Running ldd
on the Python executable confirms that these libraries are actually loaded:
./python:
-lintl.1 => /usr/lib/libintl.so.1
-lc.12 => /usr/lib/libc.so.12
-lpthread.1 => /usr/lib/libpthread.so.1
-lutil.7 => /usr/lib/libutil.so.7
-lm.0 => /usr/lib/libm.so.0
-lgcc_s.1 => /usr/lib/libgcc_s.so.1
- OS: NetBSD 10.0
- Architecture: amd64/x86_64
- Python version: 3.14.0a6+
CPython versions tested on:
CPython main branch, 3.14
Operating systems tested on:
Other
Metadata
Metadata
Assignees
Labels
bugs and security fixesbugs and security fixesTests in the Lib/test dirTests in the Lib/test dirAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error