components/lcms2/patches/01-alignment.patch
author Drew Fisher <drew.fisher@oracle.com>
Thu, 13 Oct 2016 12:49:00 -0700
changeset 7108 e30b3b76a5ab
parent 6658 06a8b969738e
permissions -rw-r--r--
23329921 cloudbase-init creates C:\\cfn on Solaris
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6658
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     1
Patch from upstream git repo to allow us to specify correct alignment to fix
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     2
24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     3
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     4
From 51809bd437c159fda9a753959361d208ff47228b Mon Sep 17 00:00:00 2001
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     5
From: Chris Liddell <[email protected]>
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     6
Date: Tue, 24 Mar 2015 09:03:55 +0000
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     7
Subject: [PATCH] Allow ptr alignment to be set at build time
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     8
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     9
At least some configurations of gcc on UltraSPARC require 8 byte alignment of
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    10
memory pointers (even on 32 bit user space, where sizeof(void *) == 4).
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    11
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    12
Rather than contaminate the source, provide ability to set the ptr alignment
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    13
on the compiler command line (on Unix, using CFLAGS when calling configure).
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    14
---
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    15
 src/lcms2_internal.h | 10 +++++++++-
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    16
 1 file changed, 9 insertions(+), 1 deletion(-)
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    17
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    18
diff --git a/src/lcms2_internal.h b/src/lcms2_internal.h
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    19
index 9fe91ad..1e46740 100644
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    20
--- a/src/lcms2_internal.h
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    21
+++ b/src/lcms2_internal.h
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    22
@@ -57,7 +57,15 @@
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    23
 #define _cmsALIGNLONG(x) (((x)+(sizeof(cmsUInt32Number)-1)) & ~(sizeof(cmsUInt32Number)-1))
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    24
 
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    25
 // Alignment to memory pointer
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    26
-#define _cmsALIGNMEM(x)  (((x)+(sizeof(void *) - 1)) & ~(sizeof(void *) - 1))
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    27
+
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    28
+// (Ultra)SPARC with gcc requires ptr alignment of 8 bytes
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    29
+// even though sizeof(void *) is only four: for greatest flexibility
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    30
+// allow the build to specify ptr alignment.
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    31
+#ifndef CMS_PTR_ALIGNMENT
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    32
+# define CMS_PTR_ALIGNMENT sizeof(void *)
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    33
+#endif
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    34
+
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    35
+#define _cmsALIGNMEM(x)  (((x)+(CMS_PTR_ALIGNMENT - 1)) & ~(CMS_PTR_ALIGNMENT - 1))
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    36
 
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    37
 // Maximum encodeable values in floating point
06a8b969738e 24494517 lcms2 chunk allocator doesn't align properly for SPARC, causes bus errors
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    38
 #define MAX_ENCODEABLE_XYZ  (1.0 + 32767.0/32768.0)