Package: exempi
Version: 2.4.3-1
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu artful ubuntu-patch autopkgtest

Hi Michael,

On ARM, unaligned memory access is not guaranteed to succeed; depending on
the CPU and the kernel configuration, it may raise SIGBUS instead.

exempi defaults to using unaligned access, which caused the
python-xmp-toolkit autopkgtests to fail on Ubuntu infrastructure which does
raise SIGBUS:

  http://autopkgtest.ubuntu.com/packages/p/python-xmp-toolkit/artful/armhf

Since exempi does have an alternate code path for avoiding unaligned access,
I've applied the attached patch in Ubuntu to cause it to use this instead on
ARM.

Please consider applying this in Debian as well, where it may affect some
number of users even if it doesn't trigger on Debian infrastructure.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
[email protected]                                     [email protected]
diff -Nru exempi-2.4.3/debian/patches/series exempi-2.4.3/debian/patches/series
--- exempi-2.4.3/debian/patches/series  1969-12-31 16:00:00.000000000 -0800
+++ exempi-2.4.3/debian/patches/series  2017-08-13 23:34:30.000000000 -0700
@@ -0,0 +1 @@
+unaligned-access.patch
diff -Nru exempi-2.4.3/debian/patches/unaligned-access.patch 
exempi-2.4.3/debian/patches/unaligned-access.patch
--- exempi-2.4.3/debian/patches/unaligned-access.patch  1969-12-31 
16:00:00.000000000 -0800
+++ exempi-2.4.3/debian/patches/unaligned-access.patch  2017-08-14 
09:36:57.000000000 -0700
@@ -0,0 +1,21 @@
+Description: use alignment-safe copy on ARM on Linux, not just on iOS
+ There is existing logic to avoid unaligned copies on ARM, but it is only
+ enabled when building for iOS.  iOS is not the only environment where
+ unaligned access is a problem for ARM; some ARM chips also disallow
+ unaligned access, and depending on the kernel config this is exposed in
+ userspace as SIGBUS.
+Author: Steve Langasek <[email protected]>
+Index: exempi-2.4.3/public/include/XMP_Environment.h
+===================================================================
+--- exempi-2.4.3.orig/public/include/XMP_Environment.h
++++ exempi-2.4.3/public/include/XMP_Environment.h
+@@ -155,6 +155,9 @@
+       #define XMP_HELPER_DLL_IMPORT
+       #define XMP_HELPER_DLL_EXPORT
+       #define XMP_HELPER_DLL_PRIVATE
++      #ifdef __arm__
++              #define XMP_IOS_ARM 1
++      #endif
+ #endif
+ 
+ // 
=================================================================================================

Reply via email to