summaryrefslogtreecommitdiffstats
path: root/third_party/qcms/google.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/qcms/google.patch')
-rw-r--r--third_party/qcms/google.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/third_party/qcms/google.patch b/third_party/qcms/google.patch
index 6c1cc28..1084bfc2 100644
--- a/third_party/qcms/google.patch
+++ b/third_party/qcms/google.patch
@@ -781,3 +781,27 @@ index e8447e5..f68699d 100644
}
struct matrix build_colorant_matrix(qcms_profile *p)
+diff --git a/third_party/qcms/src/transform.c b/third_party/qcms/src/transform.c
+index 976c498..44ce9b5 100644
+--- a/third_party/qcms/src/transform.c
++++ b/third_party/qcms/src/transform.c
+@@ -1324,8 +1324,18 @@ qcms_transform* qcms_transform_create(
+ }
+
+ #if defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__)
++#if !defined(__has_attribute)
++/* Assume that the compiler supports the provided attribute. */
++#define __has_attribute(x) 1
++#endif
++#if __has_attribute(__force_align_arg_pointer__)
+ /* we need this to avoid crashes when gcc assumes the stack is 128bit aligned */
+ __attribute__((__force_align_arg_pointer__))
++#else
++/* __force_align_arg_pointer__ is an x86-only attribute, and clang warns on used
++ * attributes. Don't use this on ARM.
++ */
++#endif
+ #endif
+ void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size_t length)
+ {
+