components/python/python27/patches/20-ctypes-util-find-library.patch
author John Beck <John.Beck@Oracle.COM>
Thu, 27 Mar 2014 10:39:39 -0700
changeset 1794 942d8ee5d880
permissions -rw-r--r--
18468472 ctypes fails for python 2.7

This patch comes from upstream: http://bugs.python.org/issue5289
If we ever upgrade to 2.7.4 or later, it will no longer be needed.

--- Python-2.7.3/Lib/ctypes/util.py~
+++ Python-2.7.3/Lib/ctypes/util.py
@@ -180,6 +180,35 @@ elif os.name == "posix":
             res.sort(cmp= lambda x,y: cmp(_num_version(x), _num_version(y)))
             return res[-1]
 
+    elif sys.platform == "sunos5":
+
+        def _findLib_crle(name, is64):
+            if not os.path.exists('/usr/bin/crle'):
+                return None
+
+            if is64:
+                cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null'
+            else:
+                cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
+
+            for line in os.popen(cmd).readlines():
+                line = line.strip()
+                if line.startswith('Default Library Path (ELF):'):
+                    paths = line.split()[4]
+
+            if not paths:
+                return None
+
+            for dir in paths.split(":"):
+                libfile = os.path.join(dir, "lib%s.so" % name)
+                if os.path.exists(libfile):
+                    return libfile
+
+            return None
+
+        def find_library(name, is64 = False):
+            return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
+
     else:
 
         def _findSoname_ldconfig(name):