summaryrefslogtreecommitdiff
path: root/debian/patches/ctypes-arm
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/ctypes-arm')
-rw-r--r--debian/patches/ctypes-arm52
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')
+