From: Thomas Heller Date: Thu, 11 Oct 2007 19:51:32 +0000 (+0000) Subject: On OS X, use os.uname() instead of gestalt.sysv(...) to get the X-Git-Tag: v2.6a1~1200 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7fee6dd2a37461d7779087ff754898d19180617b;p=python 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. --- diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index 2e35307b5c..150089603a 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 4492590bef..99d9249f83 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