diff options
Diffstat (limited to 'debian/patches/ctypes-arm')
-rw-r--r-- | debian/patches/ctypes-arm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/debian/patches/ctypes-arm b/debian/patches/ctypes-arm new file mode 100644 index 0000000..2d49d54 --- /dev/null +++ b/debian/patches/ctypes-arm @@ -0,0 +1,52 @@ +From: Stefano Rivera <stefanor@debian.org> +Date: Sat, 7 Oct 2017 09:38:57 +0200 +Subject: armhf support +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Workaround the presentce of hard-float in ldconfig -p output. +Also, handle the wide variety of ARM unames. + +Author: Loïc Minier +Bug-Ubuntu: https://bugs.launchpad.net/bugs/898172 +Bug-cpython: http://bugs.python.org/issue13508 +Last-Update: 2011-12-19 +--- + lib-python/2.7/ctypes/util.py | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/lib-python/2.7/ctypes/util.py b/lib-python/2.7/ctypes/util.py +index 16930e4..eb1c8e1 100644 +--- a/lib-python/2.7/ctypes/util.py ++++ b/lib-python/2.7/ctypes/util.py +@@ -237,16 +237,27 @@ elif os.name == "posix": + + def _findSoname_ldconfig(name): + import struct ++ # XXX this code assumes that we know all unames and that a single ++ # ABI is supported per uname; instead we should find what the ++ # ABI is (e.g. check ABI of current process) or simply ask libc ++ # to load the library for us ++ uname = os.uname()[4] ++ # ARM has a variety of unames, e.g. armv7l ++ if uname.startswith("arm"): ++ uname = "arm" + if struct.calcsize('l') == 4: +- machine = os.uname()[4] + '-32' ++ machine = uname + '-32' + else: +- machine = os.uname()[4] + '-64' ++ machine = uname + '-64' + mach_map = { + 'x86_64-64': 'libc6,x86-64', + 'ppc64-64': 'libc6,64bit', + 'sparc64-64': 'libc6,64bit', + 's390x-64': 'libc6,64bit', + 'ia64-64': 'libc6,IA-64', ++ # this actually breaks on biarch or multiarch as the first ++ # library wins; uname doesn't tell us which ABI we're using ++ 'arm-32': 'libc6(,hard-float)?', + } + abi_type = mach_map.get(machine, 'libc6') + |