patches/Python26-14-ctypes-util-find-library.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 15141 78d99bd8df60
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     1
--- Python-2.6.1/Lib/ctypes/util.py.orig	2008-05-17 04:06:31.000000000 +0800
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
     2
+++ Python-2.6.1/Lib/ctypes/util.py	2009-02-18 19:40:19.150260000 +0800
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     3
@@ -156,6 +156,35 @@
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     4
             res.sort(cmp= lambda x,y: cmp(_num_version(x), _num_version(y)))
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     5
             return res[-1]
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     6
 
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     7
+    elif sys.platform == "sunos5":
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
     8
+
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
     9
+        def _findLib_crle(name, is64):
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    10
+            if not os.path.exists('/usr/bin/crle'):
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    11
+                return None
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    12
+
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    13
+            if is64:
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    14
+                cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null'
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    15
+            else:
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    16
+                cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    17
+
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    18
+            for line in os.popen(cmd).readlines():
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    19
+                line = line.strip()
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    20
+                if (line.startswith('Default Library Path (ELF):')):
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    21
+                    paths = line.split()[4]
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    22
+
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    23
+            if not paths:
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    24
+                return None
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    25
+
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    26
+            for dir in paths.split(":"):
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    27
+                libfile = os.path.join(dir, "lib%s.so" % name)
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    28
+                if os.path.exists(libfile):
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    29
+                    return libfile
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    30
+
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    31
+            return None
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    32
+        
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    33
+        def find_library(name, is64 = False):
15141
78d99bd8df60 2009-02-18 Ke Wang <[email protected]>
wangke
parents: 15136
diff changeset
    34
+            return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
15136
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    35
+
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    36
     else:
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    37
 
1da8aefe6cc3 2009-02-18 Ke Wang <[email protected]>
wangke
parents:
diff changeset
    38
         def _findLib_ldconfig(name):