Skip to content

Commit

Permalink
Fix test suite failures under Ubuntu 12.04 due to multiarch.
Browse files Browse the repository at this point in the history
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"
  • Loading branch information
clach04 committed Aug 21, 2013
1 parent e390959 commit 01ce5c2
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion ctypesgencore/libraryloader.py
Expand Up @@ -33,6 +33,7 @@
# ----------------------------------------------------------------------------

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

Expand Down Expand Up @@ -167,7 +168,21 @@ def _create_ld_so_cache(self):
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]')
Expand Down

0 comments on commit 01ce5c2

Please sign in to comment.