[ctypesgen] r151 committed - Fix test suite failures under Ubuntu 12.04 due to multiarch....

6 views
Skip to first unread message

codesite...@google.com

unread,
Aug 21, 2013, 12:23:10 AM8/21/13
to ctyp...@googlegroups.com
Revision: 151
Author: clach04
Date: Wed Aug 21 04:22:58 2013 UTC
Log: Fix test suite failures under Ubuntu 12.04 due to multiarch.
Updated loader as libc and libm loading was failing due to looking
in wrong directories.

Tested platform:

$ cat /etc/*elease
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

http://code.google.com/p/ctypesgen/source/detail?r=151

Modified:
/trunk/ctypesgencore/libraryloader.py

=======================================
--- /trunk/ctypesgencore/libraryloader.py Sat Oct 1 20:56:43 2011 UTC
+++ /trunk/ctypesgencore/libraryloader.py Wed Aug 21 04:22:58 2013 UTC
@@ -33,6 +33,7 @@
#
----------------------------------------------------------------------------

import os.path, re, sys, glob
+import platform
import ctypes
import ctypes.util

@@ -167,7 +168,21 @@
try: directories.extend([dir.strip() for dir in
open('/etc/ld.so.conf')])
except IOError: pass

- directories.extend(['/lib', '/usr/lib', '/lib64', '/usr/lib64'])
+ unix_lib_dirs_list = ['/lib', '/usr/lib', '/lib64', '/usr/lib64']
+ if sys.platform.startswith('linux'):
+ # Try and support multiarch work in Ubuntu
+ # https://wiki.ubuntu.com/MultiarchSpec
+ bitage = platform.architecture()[0]
+ if bitage.startswith('32'):
+ # Assume Intel/AMD x86 compat
+ unix_lib_dirs_list +=
['/lib/i386-linux-gnu', '/usr/lib/i386-linux-gnu']
+ elif bitage.startswith('64'):
+ # Assume Intel/AMD x86 compat
+ unix_lib_dirs_list +=
['/lib/x86_64-linux-gnu', '/usr/lib/x86_64-linux-gnu']
+ else:
+ # guess...
+ unix_lib_dirs_list += glob.glob('/lib/*linux-gnu')
+ directories.extend(unix_lib_dirs_list)

cache = {}
lib_re = re.compile(r'lib(.*)\.s[ol]')
Reply all
Reply to author
Forward
0 new messages