Commit graph

57 commits

Author SHA1 Message Date
Jonathan Dung
e65987d4c0
gh-146547: Use lazy imports in ctypes (GH-146548) 2026-04-07 15:26:53 +02:00
Steve Dower
1cf5abedeb
gh-145307: Defer loading psapi.dll until ctypes.util.dllist() is called. (GH-145308) 2026-03-02 17:10:15 +01:00
Gyeongjae Choi
218b8dbc78
gh-99948: Support ctypes.util.find_library in emscripten environment (#138519)
Adds support for ctypes loading .so files directly.

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
2025-09-17 10:17:56 +00:00
Brian Ward
421ea1291d
gh-119349: Add ctypes.util.dllist -- list loaded shared libraries (GH-122946)
Add function to list the currently loaded libraries to ctypes.util

The dllist() function calls platform-specific APIs in order to
list the runtime libraries loaded by Python and any imported modules.
On unsupported platforms the function may be missing.


Co-authored-by: Eryk Sun <eryksun@gmail.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2025-02-08 14:02:36 +01:00
Malcolm Smith
1f8b24ef69
gh-71052: Implement ctypes.util.find_library on Android (GH-116379) 2024-03-21 14:20:57 +01:00
Russell Keith-Magee
408e127159
gh-114099 - Add iOS framework loading machinery. (GH-116454)
Co-authored-by: Malcolm Smith <smith@chaquo.com>
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2024-03-19 08:36:19 -04:00
AN Long
7fc51c3f6b
gh-114257: Ignore the FileNotFound error in ctypes.util._is_elf() (GH-114394) 2024-01-22 17:15:29 +00:00
Pablo Galindo
27ac19cca2
bpo-41976: Fix the fallback to gcc of ctypes.util.find_library when using gcc>9 (GH-22598) 2020-10-08 19:31:19 +01:00
Pablo Galindo
293dd23477
Remove binding of captured exceptions when not used to reduce the chances of creating cycles (GH-17246)
Capturing exceptions into names can lead to reference cycles though the __traceback__ attribute of the exceptions in some obscure cases that have been reported previously and fixed individually. As these variables are not used anyway, we can remove the binding to reduce the chances of creating reference cycles.

See for example GH-13135
2019-11-19 21:34:03 +00:00
Ray Donnelly
d06d345f04 bpo-33281: Fix ctypes.util.find_library regression on macOS (GH-6625) 2018-05-01 22:31:36 -04:00
Mariatta
c0919c27c6
bpo-26439: Convert %s in Lib/ctypes/_aix.py to f-strings. (GH-4986) 2017-12-22 23:39:03 -08:00
Michael Felt
c5ae169e1b bpo-26439 Fix ctypes.util.find_library failure on AIX (#4507)
Implement find_library() support in ctypes/util for AIX.

Add some AIX specific tests.
2017-12-19 13:58:49 +01:00
Martin Panter
a76f014278 Remove disabled test code
Loading Unix libraries via getattr() was disabled before ctypes was added to
Python.
2016-11-05 02:49:20 +00:00
Larry Hastings
10108a7b9a Issue #27355: Removed support for Windows CE. It was never finished,
and Windows CE is no longer a relevant platform for Python.
2016-09-05 15:11:23 -07:00
Vinay Sajip
82df3b3071 Closes #9998: Allowed find_library to search additional locations for libraries. 2016-08-17 16:20:07 +01:00
Martin Panter
bd305e497f Issue #22636: Merge ctypes.util from 3.5 2016-06-14 04:31:14 +00:00
Martin Panter
e1b3431cef Issue #22636: Handle OSError from subprocess, e.g. if command not found 2016-06-14 04:08:30 +00:00
Martin Panter
1db314bd5c Issue #22636: Merge ctypes.util shell injection fixes from 3.5 2016-06-14 02:59:21 +00:00
Martin Panter
bfb15ab711 Issue #22636: avoid using a shell in the ctypes.util module
Replace os.popen() with subprocess.Popen. Based on patch by Victor Stinner.

If the "gcc", "cc" or "objdump" command is not available, the code was
supposed to raise an OSError exception. But there was a bug in the code. The
shell code returns the exit code 10 if the required command is missing, and the
code tries to check for the status 10. The problem is that os.popen() doesn't
return the exit code directly, but a status which should be processed by
os.WIFEXITED() and os.WEXITSTATUS(). In practice, the exception was never
raised. The OSError exception was not documented and ctypes.util.find_library()
is expected to return None if the library is not found.
2016-06-14 01:27:11 +00:00
Meador Inge
f1e2671fdf Issue #24114: Fix an uninitialized variable in ctypes.util.
The bug only occurs on SunOS when the ctypes implementation searches
for the `crle` program.  Patch by Xiang Zhang.  Tested on SunOS by
Kees Bos.
2016-04-30 22:17:22 -05:00
Meador Inge
8988ebf2a7 Issue #24114: Fix an uninitialized variable in ctypes.util.
The bug only occurs on SunOS when the ctypes implementation searches
for the `crle` program.  Patch by Xiang Zhang.  Tested on SunOS by
Kees Bos.
2016-04-30 21:56:59 -05:00
Martin Panter
32f2eb4941 Issue #21042: Revert Linux find_library() to return just filename
This reverts most of revision 3092cf163eb4. The change worked on x86
architectures, but did not work on ARM, probably due to extra ABI flags in
the ldconfig output.
2016-03-17 07:50:22 +00:00
Martin Panter
b9f3114d42 Issue #21042: Return full path in ctypes.util.find_library() on Linux
Patch by Tamás Bence Gedai.
2016-03-10 01:06:23 +00:00
Steve Dower
959ee7c200 Issue #23606: Disable ctypes.util.find_library("c") on Windows so tests are skipped while we figure out how best to approach the CRT change 2015-03-10 09:56:38 -07:00
Steve Dower
65e4cb10d9 Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release. 2014-11-22 12:54:57 -08:00
Victor Stinner
7fa767e517 Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
Nick Coghlan
1889623e1a Issue #19734: ctypes resource management fixes 2013-11-24 12:53:50 +10:00
doko@ubuntu.com
bcaddf6382 - Issue #17754: Make ctypes.util.find_library() independent of the locale. 2013-05-15 18:04:50 +02:00
doko@ubuntu.com
ef535584a9 - Issue #17754: Make ctypes.util.find_library() independent of the locale. 2013-05-15 18:02:13 +02:00
Giampaolo Rodola'
0166a283f6 modernize some modules' code by replacing OSError->ENOENT/ENOTDIR/EPERM/EEXIST occurrences with the corresponding pep-3151 exceptions (FileNotFoundError, NotADirectoryError, etc.) 2013-02-12 15:14:17 +01:00
Benjamin Peterson
cfe34744e3 fix find_library on Solaris (closes #5289) 2013-02-03 19:25:11 -05:00
Larry Hastings
605a62ddb1 Issue #15118: Change return value of os.uname() and os.times() from
plain tuples to immutable iterable objects with named attributes
(structseq objects).
2012-06-24 04:33:36 -07:00
Brett Cannon
cb66eb0dec Issue #13959: Deprecate imp.get_suffixes() for new attributes on
importlib.machinery that provide the suffix details for import.
The attributes were not put on imp so as to compartmentalize
everything importlib needs for setting up imports in
importlib.machinery.

This also led to an indirect deprecation of inspect.getmoduleinfo() as
it directly returned imp.get_suffix's returned tuple which no longer
makes sense.
2012-05-11 12:58:42 -04:00
Victor Stinner
e67474725b Issue #12326: refactor usage of sys.platform
* Use str.startswith(tuple): I didn't know this Python feature, Python rocks!
 * Replace sometimes sys.platform.startswith('linux') with
   sys.platform == 'linux'
 * sys.platform doesn't contain the major version on Cygwin on Mac OS X
   (it's just 'cygwin' and 'darwin')
2011-08-21 00:39:18 +02:00
Antoine Pitrou
b46004c94f Issue #12045: Avoid duplicate execution of command in ctypes.util._get_soname().
Patch by Sijin Joseph.
2011-05-25 18:17:25 +02:00
Antoine Pitrou
6803dc28b1 Remove unused private function 2011-04-23 17:56:06 +02:00
Antoine Pitrou
8c52027e2d Issue #11258: Speed up ctypes.util.find_library() under Linux by a factor
of 5 to 10.  Initial patch by Jonas H.
2011-04-23 17:51:04 +02:00
Antoine Pitrou
09c530dfc8 Revert r88639 (the optimization changes behaviour and breaks buildbots) 2011-02-26 09:37:45 +00:00
Antoine Pitrou
ffa1a77c67 Issue #11258: Speed up ctypes.util.find_library() under Linux a lot. Patch
by Jonas H.
2011-02-26 08:45:20 +00:00
Matthias Klose
cf1dd711a4 Try harder on issue #7356: ctypes.util: Make parsing of ldconfig output
independent of the locale. Set LC_ALL=C too.
2010-09-15 13:06:09 +00:00
Matthias Klose
82f60910b7 Merged revisions 78979 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78979 | matthias.klose | 2010-03-15 14:42:23 +0100 (Mo, 15 Mär 2010) | 3 lines

  - Issue #7356: ctypes.util: Make parsing of ldconfig output independent of
    the locale.
........
2010-03-15 13:46:04 +00:00
Eric Smith
5ccfa29f04 Changed try/finally to contextlib.closing, as discussed in issue 6882. 2009-10-23 12:56:11 +00:00
Eric Smith
81fd804034 Issue #6882: Import uuid creates zombies processes. I used a slightly different patch than the one attached to the issue, to be consistent with the style in the rest of the module. 2009-09-18 13:23:13 +00:00
Thomas Heller
00cfc379d6 Merged revisions 72352 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72352 | thomas.heller | 2009-05-05 20:55:47 +0200 (Di, 05 Mai 2009) | 3 lines

  Fix Issue #4875: find_library can return directories instead of files
  (on win32)
........
2009-05-05 19:04:40 +00:00
Benjamin Peterson
17bf0825bd fix syntax in ctypes.util 2009-01-10 22:37:11 +00:00
Matthias Klose
2c7e3ee79b Merge r68487 from svn+ssh://pythondev@svn.python.org/python/trunk:
- Issue #4861: ctypes.util.find_library(): Robustify. Fix library detection on
  biarch systems. Try to rely on ldconfig only, without using objdump and gcc.
2009-01-10 17:08:25 +00:00
Thomas Heller
3eaaeb437f Merged revisions 63395-63396,63511,63522-63523 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r63395 | thomas.heller | 2008-05-16 22:06:31 +0200 (Fr, 16 Mai 2008) | 4 lines

  Issue 1793: Add ctypes.util.find_msvcrt() function (on Windows).
........
  r63396 | thomas.heller | 2008-05-16 22:19:07 +0200 (Fr, 16 Mai 2008) | 4 lines

  Very simple test for ctypes.util.find_library on Windows.
........
  r63511 | thomas.heller | 2008-05-20 21:53:47 +0200 (Di, 20 Mai 2008) | 6 lines

  On HPUX, -fPIC must be used for linking.  _ctypes now builds on HP-UX
  IA64 and PA machines.

  The ctypes unittests work fine on the IA64, but dump core in
  test_qsort on the PA.
........
  r63522 | thomas.heller | 2008-05-21 20:47:02 +0200 (Mi, 21 Mai 2008) | 2 lines

  The -x <test1[,test2...]> flag allows to exclude tests.
........
  r63523 | thomas.heller | 2008-05-21 21:47:44 +0200 (Mi, 21 Mai 2008) | 2 lines

  Oops, get_tests may be called with 3 arguments.
........
2008-05-23 17:26:46 +00:00
Raymond Hettinger
d4cb56d4e8 Convert some custom sort comparison functions to equivalent key functions. 2008-01-30 02:55:10 +00:00
Guido van Rossum
f4d4f8b97f Explicitly close pipes so test_ctypes won't appear to randomly leak
+33 or -33 references.  (See discussion in #1597.)
2007-12-12 20:26:00 +00:00
Christian Heimes
a37d4c693a Removed PyInt_GetMax and sys.maxint
I replaced sys.maxint with sys.maxsize in Lib/*.py. Does anybody see a problem with the change on Win 64bit platforms? Win 64's long is just 32bit but the sys.maxsize is now 2**63-1 on every 64bit platform.
Also added docs for sys.maxsize.
2007-12-04 23:02:19 +00:00