From 7fee6dd2a37461d7779087ff754898d19180617b Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Thu, 11 Oct 2007 19:51:32 +0000 Subject: [PATCH] On OS X, use os.uname() instead of gestalt.sysv(...) to get the operating system version. This allows to use ctypes when Python was configured with --disable-toolbox-glue. --- Lib/ctypes/__init__.py | 13 +++---------- Misc/NEWS | 3 +++ 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index 2e35307b5c8..150089603a0 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -24,19 +24,12 @@ if _os.name in ("nt", "ce"): DEFAULT_MODE = RTLD_LOCAL if _os.name == "posix" and _sys.platform == "darwin": - import gestalt - - # gestalt.gestalt("sysv") returns the version number of the - # currently active system file as BCD. - # On OS X 10.4.6 -> 0x1046 - # On OS X 10.2.8 -> 0x1028 - # See also http://www.rgaros.nl/gestalt/ - # # On OS X 10.3, we use RTLD_GLOBAL as default mode # because RTLD_LOCAL does not work at least on some - # libraries. + # libraries. OS X 10.3 is Darwin 7, so we check for + # that. - if gestalt.gestalt("sysv") < 0x1040: + if int(_os.uname()[2].split('.')[0]) < 8: DEFAULT_MODE = RTLD_GLOBAL from _ctypes import FUNCFLAG_CDECL as _FUNCFLAG_CDECL, \ diff --git a/Misc/NEWS b/Misc/NEWS index 4492590bef6..99d9249f83b 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -272,6 +272,9 @@ Core and builtins Library ------- +- Patch #1203: ctypes now does work on OS X when Python is built with + --disable-toolbox-glue + - collections.deque() now supports a "maxlen" argument. - itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised