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 + + // =================================================================================================

