summaryrefslogtreecommitdiff
path: root/editors/openoffice-4/Makefile
diff options
context:
space:
mode:
authorDon Lewis <truckman@FreeBSD.org>2017-01-31 03:42:07 +0000
committerDon Lewis <truckman@FreeBSD.org>2017-01-31 03:42:07 +0000
commit95150ce1115e4ac7277639338406d421faac4cce (patch)
treead41b57007f101a794e171354f836762eab1e14d /editors/openoffice-4/Makefile
parentMark various ports broken on aarch64 and armv6. (diff)
On amd64, clang++ 4.0 uses the MOVAPS SSE instruction to initialize
sufficiently large objects returned by the "new" operator. This requires that the object have 16-byte alignment. The FreeBSD malloc() implementation does the correct thing here, but OpenOffice has a couple of internal memory allocator implementations that only align to 8-byte boundaries at most. In addition OpenOffice overrides the new operator to interpose a couple of layers of wrappers. If the --enable-debug option is passed to configure, the wrapper adds 8 to the size passed to the allocator and adds an 8 byte offset to the pointer returned by the allocator to make room for a signature that it adds to the beginning of the memory block (the signature is validated and the inverse transformation is done when the memory is freed). This breaks the proper alignment done by the mamory allocator. Fix these problems by adding an EXTRA_PATCH that teaches the internal OpenOffice memory allocators to do 16-byte alignment and to use a 16-byte offset in the "new" wrapper, and apply this patch on amd64 if clang 4.0 is the system compiler. Pass the --with-alloc=system flag to configure so that the libc version of malloc() is used instead of one of the internal memory allocator implementations. Fix a few mis-sorts in BUILD_DEPENDS and don't list www/p5-libwww twice. Fix a compile error in the bridges code when --enable-debug is specified. Fix a sporadic failure in the clear_001 QA test that occasionally breaks the build. The nominal mutex hold time is 5 seconds, but because it is only checked one per second, the actual time is more likely to be around 6 seconds. When the before time value is subtracted from the after time value, the result might be 7 whole seconds and a large negative number of nanoseconds. Since the pass/fail check only looks at the difference in the seconds fields, it will fail the "< 7" assertion. Relax the assertion to "<= 7" as a quick fix. The editors/openoffice-4 port does not need poppler. It is only needed for the PDF import extension, which is not built in OpenOffice 4.1.x. Cherrypick some cleanups from PR 216245 [1]: * The --without-stlport configure flag is not needed. * Pass the -with-build-version flag to configure (but use ${PKGNAME} for completeness instead of just ${PORTNAME}-${PORTVERSION}) * Tweak a comment in the Makefile. PR: 216245 Submitted by: pfg [1]
Notes
Notes: svn path=/head/; revision=432898
Diffstat (limited to 'editors/openoffice-4/Makefile')
-rw-r--r--editors/openoffice-4/Makefile19
1 files changed, 10 insertions, 9 deletions
diff --git a/editors/openoffice-4/Makefile b/editors/openoffice-4/Makefile
index 1c3b9e101368..85e51baf5e60 100644
--- a/editors/openoffice-4/Makefile
+++ b/editors/openoffice-4/Makefile
@@ -3,7 +3,7 @@
PORTNAME= apache-openoffice
PORTVERSION= ${AOOVERSION}
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= editors java
MASTER_SITES= APACHE/openoffice/${PORTVERSION}/source \
http://tools.openoffice.org/unowinreg_prebuild/680/:unoreg \
@@ -20,7 +20,7 @@ EXTRACT_ONLY= ${AOOSRC}
MAINTAINER= office@FreeBSD.org
#de facto maintainer is truckman@FreeBSD.org
-#Frequent Patch submitters should optionally sign Apache iCLA
+#Frequent Patch submitters should (optionally) sign the Apache iCLA
COMMENT= Integrated wordprocessor/dbase/spreadsheet/drawing/chart/browser
LICENSE= APACHE20 ADOBE BSD3CLAUSE BSD4CLAUSE BSL ICU MIT MPL \
@@ -48,9 +48,6 @@ LICENSE_PERMS_W3C= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BUILD_DEPENDS= \
p5-Archive-Zip>=0:archivers/p5-Archive-Zip \
- p5-libwww>=0:www/p5-libwww \
- p5-LWP-Protocol-https>0:www/p5-LWP-Protocol-https \
- p5-XML-Parser>=0:textproc/p5-XML-Parser \
${LOCALBASE}/bin/unzip:archivers/unzip \
zip:archivers/zip \
ant:devel/apache-ant \
@@ -68,14 +65,15 @@ BUILD_DEPENDS= \
${JAVALIBDIR}/bsh.jar:lang/bsh \
bash:shells/bash \
${JAVALIBDIR}/lucene-core-3.6.2.jar:textproc/lucene \
- p5-libwww>=0:www/p5-libwww
+ p5-XML-Parser>=0:textproc/p5-XML-Parser \
+ p5-libwww>=0:www/p5-libwww \
+ p5-LWP-Protocol-https>0:www/p5-LWP-Protocol-https
LIB_DEPENDS= \
libapr-1.so:devel/apr1 \
libnspr4.so:devel/nspr \
libcurl.so:ftp/curl \
libcairo.so:graphics/cairo \
libpng.so:graphics/png \
- libpoppler-glib.so:graphics/poppler-glib \
libgraphite.so:graphics/silgraphite \
libCoinMP.so:math/coinmp \
libfreetype.so:print/freetype2 \
@@ -178,6 +176,9 @@ TARGET_ORDER_OVERRIDE= 710:gnome-post-icons
.if ${COMPILER_TYPE} == clang
CPPFLAGS+= -I${LOCALBASE}/include
+. if ${COMPILER_VERSION} >= 40 && ${ARCH} == amd64
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-align16
+. endif
.endif
.if ${ARCH} == amd64
@@ -216,6 +217,7 @@ SUB_LIST= EXECBASE=${EXECBASE} AOOTAG=${AOOTAG} AOOUDIR=${AOOUDIR} \
CONFIGURE_ARGS+= \
--with-unix-wrapper=${EXECBASE} \
+ --with-alloc=system \
--with-system-apache-commons=yes \
--with-commons-codec-jar=${JAVALIBDIR}/commons-codec.jar \
--with-commons-lang-jar=${JAVALIBDIR}/commons-lang.jar \
@@ -260,14 +262,13 @@ CONFIGURE_ARGS+= \
--enable-opengl \
--with-system-openssl \
--with-package-format="archive" \
- --with-system-poppler \
--with-system-python \
--with-system-redland \
--with-system-sane \
--with-system-serf \
--with-system-stdlibs \
- --without-stlport \
--with-vendor="FreeBSD ports system" \
+ --with-build-version="PKGNAME: ${PKGNAME:S/,/@/g}" \
--enable-verbose \
--with-system-vigra \
--with-system-xrender \