summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2015-03-23 15:29:37 +0000
committerChris Liddell <chris.liddell@artifex.com>2015-03-24 14:04:56 +0000
commit49ac7a284e46cf8df8eb553c91ee48a6b004652e (patch)
tree661ccfac56adea5406a74af72c3acd9a472d844c
parentf2f22a246dcbe8468880535ea75f47e0fc4619ce (diff)
downloadghostpdl-49ac7a284e46cf8df8eb553c91ee48a6b004652e.tar.gz
LCMS2 pointer alignment on SPARC/gcc
Building on commit 5a2da7dd71: With gcc on (Ultra)SPARC hardware, pointers must be 8 byte aligned, even in 32 bit userspace (where sizeof(void *) == 4). So it means taking special action to enforce 8 byte alignment in the LCMS2 memory management code. We'll set the alignment for SPARC builds in the configure script. No cluster differences.
-rw-r--r--config.mak.in2
-rw-r--r--configure.ac14
-rw-r--r--gs/Makefile.in2
-rw-r--r--gs/configure.ac14
4 files changed, 30 insertions, 2 deletions
diff --git a/config.mak.in b/config.mak.in
index d962dda20..2312ea2e3 100644
--- a/config.mak.in
+++ b/config.mak.in
@@ -34,7 +34,7 @@ XLIBS?=@XLIBS@
X11DEVS?=@X11DEVS@
LCMS_CFLAGS=@LCMS_ENDIAN@
-LCMS2_CFLAGS=@LCMS2_ENDIAN@ @SQRTF_SUBST@
+LCMS2_CFLAGS=@LCMS2_ENDIAN@ @SQRTF_SUBST@ @LCMS2_PTR_ALIGNMENT@
AC_TRIO_CFLAGS=@AC_TRIO_CFLAGS@
TRIO_CFLAGS=$(TRIO_XCFLAGS) $(AC_TRIO_CFLAGS)
diff --git a/configure.ac b/configure.ac
index ffb8b5128..6d0f45386 100644
--- a/configure.ac
+++ b/configure.ac
@@ -327,6 +327,20 @@ AC_SUBST(LCMS_ENDIAN)
AC_SUBST(LCMS2_ENDIAN)
dnl --------------------------------------------------
+dnl set LCMS2 memory manager's ptr alignment for sparc
+dnl --------------------------------------------------
+
+LCMS2_PTR_ALIGNMENT=
+
+case `uname -a` in
+ *sparc*)
+ LCMS2_PTR_ALIGNMENT="-DCMS_PTR_ALIGNMENT=8"
+ ;;
+esac
+
+AC_SUBST(LCMS2_PTR_ALIGNMENT)
+
+dnl --------------------------------------------------
dnl decide if we have to "hack" sqrtf() for lcms2
dnl --------------------------------------------------
diff --git a/gs/Makefile.in b/gs/Makefile.in
index 2ba4efed7..3e0746cae 100644
--- a/gs/Makefile.in
+++ b/gs/Makefile.in
@@ -268,7 +268,7 @@ JPX_CFLAGS=@JPX_AUTOCONF_CFLAGS@
# options for lcms color management library
SHARE_LCMS=@SHARELCMS@
LCMS2SRCDIR=@LCMS2DIR@
-LCMS2_CFLAGS=-DSHARE_LCMS=$(SHARE_LCMS) @LCMS2_ENDIAN@ @SQRTF_SUBST@
+LCMS2_CFLAGS=-DSHARE_LCMS=$(SHARE_LCMS) @LCMS2_ENDIAN@ @SQRTF_SUBST@ @LCMS2_PTR_ALIGNMENT@
# Which CMS are we using?
# Options are currently lcms or lcms2
diff --git a/gs/configure.ac b/gs/configure.ac
index de67c87da..94e1f7c11 100644
--- a/gs/configure.ac
+++ b/gs/configure.ac
@@ -2207,6 +2207,20 @@ AC_SUBST(LCMS_ENDIAN)
AC_SUBST(LCMS2_ENDIAN)
dnl --------------------------------------------------
+dnl set LCMS2 memory manager's ptr alignment for sparc
+dnl --------------------------------------------------
+
+LCMS2_PTR_ALIGNMENT=
+
+case `uname -a` in
+ *sparc*)
+ LCMS2_PTR_ALIGNMENT="-DCMS_PTR_ALIGNMENT=8"
+ ;;
+esac
+
+AC_SUBST(LCMS2_PTR_ALIGNMENT)
+
+dnl --------------------------------------------------
dnl decide if we have to "hack" sqrtf() for lcms2
dnl --------------------------------------------------