Index: head/editors/libreoffice6/Makefile =================================================================== --- head/editors/libreoffice6/Makefile (revision 566181) +++ head/editors/libreoffice6/Makefile (revision 566182) @@ -1,334 +1,338 @@ # $FreeBSD$ PORTREVISION= 4 .include "${.CURDIR}/Makefile.common" MASTER_SITES= https://download.documentfoundation.org/libreoffice/src/${PORTVERSION}/ \ https://dev-www.libreoffice.org/src/:src \ https://dev-www.libreoffice.org/extern/:ext DISTFILES= ${PORTNAME}-${LOVERSION}${EXTRACT_SUFX} \ ${PORTNAME}-help-${LOVERSION}${EXTRACT_SUFX} DIST_SUBDIR= libreoffice EXTRACT_ONLY:= ${DISTFILES} PKGNAMESUFFIX= 6 COMMENT= Full integrated office productivity suite BUILD_DEPENDS= p5-Archive-Zip>=0:archivers/p5-Archive-Zip \ zip:archivers/zip \ ${LOCALBASE}/include/sqlext.h:databases/unixODBC \ cppunit-config:devel/cppunit \ dmake:devel/dmake \ gperf>=3.1:devel/gperf \ ucpp:devel/ucpp \ ${LOCALBASE}/include/sane/sane.h:graphics/sane-backends \ vigra-config:graphics/vigra \ ${LOCALBASE}/include/glm/glm.hpp:math/glm \ bash:shells/bash \ gsed:textproc/gsed \ ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ flex>=0.26:textproc/flex LIB_DEPENDS= libapr-1.so:devel/apr1 \ libboost_date_time.so:devel/boost-libs \ libicutu.so:devel/icu \ liblangtag.so:devel/liblangtag \ libltdl.so:devel/libltdl \ libplds4.so:devel/nspr \ libcurl.so:ftp/curl \ libgraphite2.so:graphics/graphite2 \ liblcms2.so:graphics/lcms2 \ libcdr-0.1.so:graphics/libcdr01 \ libepoxy.so:graphics/libepoxy \ libfreehand-0.1.so:graphics/libfreehand \ libgltf-0.0.so:graphics/libgltf \ libwpg-0.3.so:graphics/libwpg03 \ libzmf-0.0.so:graphics/libzmf \ libpng.so:graphics/png \ libpoppler.so:graphics/poppler \ libqrcodegencpp.so:graphics/qr-code-generator \ liblpsolve55.so:math/lp_solve \ libcmis-0.5.so:net/libcmis \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libharfbuzz-icu.so:print/harfbuzz-icu \ libmspub-0.1.so:print/libmspub01 \ libpagemaker-0.0.so:print/libpagemaker \ libnss3.so:security/nss \ libxmlsec1-nss.so:security/xmlsec1 \ libclucene-core.so:textproc/clucene \ libexpat.so:textproc/expat2 \ libhunspell-1.7.so:textproc/hunspell \ libhyphen.so:textproc/hyphen \ libabw-0.1.so:textproc/libabw \ libe-book-0.1.so:textproc/libe-book \ libepubgen-0.1.so:textproc/libepubgen \ libexttextcat-2.0.so:textproc/libexttextcat \ libmwaw-0.3.so:textproc/libmwaw03 \ libnumbertext-1.0.so:textproc/libnumbertext \ libodfgen-0.1.so:textproc/libodfgen01 \ libqxp-0.0.so:textproc/libqxp \ librevenge-0.0.so:textproc/librevenge \ libstaroffice-0.0.so:textproc/libstaroffice \ libvisio-0.1.so:textproc/libvisio01 \ libwpd-0.10.so:textproc/libwpd010 \ libwps-0.4.so:textproc/libwps \ libmythes-1.2.so:textproc/mythes \ libraptor2.so:textproc/raptor2 \ librdf.so:textproc/redland \ libfontconfig.so:x11-fonts/fontconfig \ libxcb-icccm.so:x11/xcb-util-wm \ libserf-1.so:www/serf RUN_DEPENDS= xdg-open:devel/xdg-utils \ ${LOCALBASE}/share/fonts/Caladea/Caladea-Bold.ttf:x11-fonts/crosextrafonts-caladea-ttf \ ${LOCALBASE}/share/fonts/Carlito/Carlito-Bold.ttf:x11-fonts/crosextrafonts-carlito-ttf \ ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu \ ${LOCALBASE}/share/fonts/twemoji-color-font-ttf/TwitterColorEmoji-SVGinOT.ttf:x11-fonts/twemoji-color-font-ttf \ ${LOCALBASE}/share/fonts/GentiumBasic/GenBasI.ttf:x11-fonts/gentium-basic \ ${LOCALBASE}/share/fonts/Liberation/LiberationMono-Bold.ttf:x11-fonts/liberation-fonts-ttf \ ${LOCALBASE}/share/fonts/LinLibertineG/LinLibertine_DR_G.ttf:x11-fonts/linuxlibertine-g DISTFILES+= 884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf:ext DISTFILES+= mdds-1.5.0.tar.bz2:src DISTFILES+= liborcus-0.15.3.tar.gz:src DISTFILES+= libetonyek-0.1.9.tar.xz:src NOT_FOR_ARCHS= armv6 armv7 NOT_FOR_ARCHS_REASON= Unsupported host_cpu .if defined(PRERELEASE) MASTER_SITES+= https://dev-builds.libreoffice.org/pre-releases/src/ .endif CONFLICTS_INSTALL= libreoffice INSTALL_TARGET= distro-pack-install WRKSRC= ${WRKDIR}/${PORTNAME}-${LOVERSION} SHEBANG_GLOB= *.py GNU_CONFIGURE= yes USE_GL= gl glew glu USE_GNOME= cairo glib20 libxml2 libxslt USE_OPENLDAP= yes USE_PERL5= build USE_XORG= ice sm x11 xaw xcb xext xinerama xrandr xrender USES= autoreconf:build bison compiler:c++14-lang cpe desktop-file-utils \ gettext-runtime gl gmake gnome jpeg mysql:client perl5 pkgconfig \ pkgconfig python shebangfix shared-mime-info ssl tar:xz xorg OPTIONS_DEFINE= COINMP CUPS DOCS GNOME GTK3 I18N JAVA KF5 MMEDIA PGSQL QT5 SDK TEST WEBDAV OPTIONS_DEFAULT= CUPS MMEDIA QT5 .if !defined(DEFAULT_VERSIONS) || ! ${DEFAULT_VERSIONS:Mssl=*} # Blocked by net/qt5-network: cannot use QT5 with default OpenSSL OPTIONS_EXCLUDE_FreeBSD_11+= QT5 .endif COINMP_DESC= Enable CoinMP (deprecated) math solver GTK3_DESC= GTK+ 3 GUI toolkit support (incomplete visual style) I18N_DESC= Build i18n resources JAVA_DESC= Add Java support (XML filters, macros, DB connections) KF5_DESC= KF5/Qt5 GUI toolkit support (implies QT5) MMEDIA_DESC= Enable multimedia backend for Impress PGSQL_DESC= Build with PostgreSQL-SDBC driver QT5_DESC= Qt5 GUI toolkit support (default visual style) SDK_DESC= Build with SDK TEST_DESC= Run all regression tests WEBDAV_DESC= Enable WebDAV protocol COINMP_CONFIGURE_ENABLE= coinmp COINMP_CONFIGURE_ON= --with-system-coinmp COINMP_LIB_DEPENDS= libCoinMP.so:math/coinmp CUPS_CONFIGURE_ENABLE= cups CUPS_LIB_DEPENDS= libcups.so:print/cups DOCS_CONFIGURE_WITH= help GNOME_CONFIGURE_ENABLE= dbus dconf GNOME_IMPLIES= GTK3 GNOME_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib GNOME_USE= GNOME=dconf GTK3_CONFIGURE_ENABLE= gtk3 GTK3_USE= GNOME=gtk30,gtk-update-icon-cache GTK3_VARS= POST_PLIST=add-plist-gnome I18N_CONFIGURE_WITH= lang=ALL I18N_DISTFILES= ${PORTNAME}-dictionaries-${LOVERSION}${EXTRACT_SUFX} \ ${PORTNAME}-translations-${LOVERSION}${EXTRACT_SUFX} I18N_EXTRACT_ONLY= ${I18N_DISTFILES} JAVA_BUILD_DEPENDS= ant:devel/apache-ant \ ${JAVAJARDIR}/commons-codec.jar:java/apache-commons-codec \ ${JAVAJARDIR}/commons-httpclient.jar:java/apache-commons-httpclient \ ${JAVAJARDIR}/commons-lang3.jar:java/apache-commons-lang3 \ ${JAVAJARDIR}/commons-logging.jar:java/apache-commons-logging \ ${JAVAJARDIR}/junit.jar:java/junit \ ${JAVAJARDIR}/bsh.jar:lang/bsh JAVA_CATEGORIES= java JAVA_CONFIGURE_ON= --with-ant-home=${LOCALBASE}/share/java/apache-ant \ --with-beanshell-jar=${JAVAJARDIR}/bsh.jar \ --with-commons-codec-jar=${JAVAJARDIR}/commons-codec.jar \ --with-commons-httpclient-jar=${JAVAJARDIR}/commons-httpclient.jar \ --with-commons-lang-jar=${JAVAJARDIR}/commons-lang3.jar \ --with-commons-logging-jar=${JAVAJARDIR}/commons-logging.jar \ --with-jdk-home="${JAVA_HOME}" \ --with-junit=${JAVAJARDIR}/junit.jar \ --with-hamcrest=${JAVAJARDIR}/hamcrest.jar \ --without-system-jfreereport JAVA_CONFIGURE_WITH= java # XXX jni.h from GNU classpath causes ABI conflicts. JAVA_CONFLICTS_BUILD= classpath-[0-9]* JAVA_DISTFILES= 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip:src \ 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip:src \ 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip:src \ 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip:src \ 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip:src \ 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip:src \ 8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar:ext \ 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip:src \ 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip:src \ a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar:ext \ ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip:src \ ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip:src \ d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip:src \ db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip:src \ eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip:src \ f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip:src JAVA_USE= JAVA=yes JAVA_VARS= JAVA_BUILD=yes KF5_CONFIGURE_ENABLE= kf5 KF5_USE= kde=config,coreaddons,i18n,kio,windowsystem KF5_USES= kde:5 KF5_IMPLIES= QT5 MMEDIA_CONFIGURE_ENABLE= gstreamer-1-0 MMEDIA_USE= GSTREAMER1=yes PGSQL_CONFIGURE_ENABLE= postgresql-sdbc PGSQL_CONFIGURE_WITH= gssapi krb5 PGSQL_USES= pgsql QT5_CONFIGURE_ENABLE= qt5 QT5_USE= qt=buildtools_build,core,gui,network,qmake_build,widgets,x11extras QT5_USES= qt:5 SDK_BUILD_DEPENDS= doxygen:devel/doxygen SDK_CONFIGURE_ENABLE= odk SDK_CONFIGURE_OFF= --without-doxygen SDK_CONFIGURE_ON= --with-doxygen=${LOCALBASE}/bin/doxygen SDK_DISTFILES= 185d60944ea767075d27247c3162b3bc-unowinreg.dll:ext TEST_ALL_TARGET_OFF= build-nocheck TEST_CONFIGURE_ENABLE= cve-tests WEBDAV_CONFIGURE_ENABLE= neon WEBDAV_LIB_DEPENDS= libneon.so:www/neon CPPFLAGS+= -isystem ${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib CONFIGURE_ARGS= --disable-dependency-tracking \ --disable-epm \ --disable-fetch-external \ --disable-firebird-sdbc \ --disable-mergelibs \ --disable-online-update \ --enable-cairo-canvas \ --enable-python=system \ --enable-release-build \ --disable-pdfium \ --exec-prefix=${PREFIX} \ --with-boost=${LOCALBASE} \ --with-build-version="FreeBSD ports ${PKGVERSION}" \ --with-external-dict-dir=${LOCALBASE}/share/hunspell \ --with-external-hyph-dir=${LOCALBASE}/share/hyphen \ --with-external-tar=${DISTDIR}/${DIST_SUBDIR} \ --with-external-thes-dir=${LOCALBASE}/share/mythes \ --with-os-version=${OSVERSION} \ --with-parallelism=${MAKE_JOBS_NUMBER} \ --with-system-cppunit \ --with-system-curl \ --with-system-dicts \ --with-system-libs \ --with-system-libxml \ --with-system-ucpp \ --with-system-zlib \ --with-system-mdds=no \ --with-system-orcus=no \ --with-system-libetonyek=no \ --with-vendor="FreeBSD ports" \ --without-fonts \ --without-myspell-dicts CONFIGURE_ENV= DMAKE=${LOCALBASE}/bin/dmake \ FLEX=${LOCALBASE}/bin/flex \ GNUTAR="${TAR}" \ GPERF=${LOCALBASE}/bin/gperf \ ICU_CFLAGS="`icu-config --cflags`" \ ICU_LIBS="`icu-config --ldflags`" \ PYTHON_CFLAGS="`${PYTHON_VERSION}-config --cflags`" \ PYTHON_LIBS="`${PYTHON_VERSION}-config --libs`" \ ac_cv_path_SED=${LOCALBASE}/bin/gsed MAKE_ARGS+= TMPDIR=${WRKDIR} MAKE_ENV+= CXXFLAGS_WARN="${CXXFLAGS_WARN}" MAKE_ENV+= GNUSED=${LOCALBASE}/bin/gsed MAKE_ENV+= DISPLAY= MAKE_ENV+= verbose=1 .include .include .if ${PORT_OPTIONS:MGTK3} WARNING= "GTK3 visual style is incomplete yet, build at your own risk" .endif +.if ${ARCH:Mpowerpc*} +EXTRA_PATCHES+= ${FILESDIR}/powerpc64 +.endif + .if ${CHOSEN_COMPILER_TYPE} == clang CXXFLAGS_WARN= -Woverloaded-virtual -Wno-unused-parameter -Wno-unused-local-typedefs .else CXXFLAGS_WARN= -Wshadow -Woverloaded-virtual .endif post-patch: ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/shell/source/unix/exec/shellexec.cxx .if ${COMPILER_FEATURES:Mlibstdc++} ${REINPLACE_CMD} -e 's/gb_CC/gb_CXX/' ${WRKSRC}/solenv/gbuild/platform/unxgcc.mk .endif pre-configure: @${TOUCH} ${WRKSRC}/autogen.lastrun post-configure: @${TOUCH} ${WRKSRC}/src.downloaded post-install: @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s lib/libreoffice -type d -empty \ -exec ${ECHO_CMD} "@dir {}" \; >> ${TMPPLIST} @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s bin lib man -not -type d >> ${TMPPLIST} .for subdir in appdata application-registry applications bash-completion icons mime mime-info @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s share/${subdir} -not -type d >> ${TMPPLIST} .endfor post-install-SDK-on: .for subdir in include share share/doc share/idl @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s ${subdir}/libreoffice -not -type d >> ${TMPPLIST} .endfor add-plist-gnome: .for subdir in gnome hicolor locolor @${ECHO_CMD} "@rmtry share/icons/${subdir}/icon-theme.cache" >> ${TMPPLIST} @${ECHO_CMD} "@postexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/share/icons/${subdir} 2>/dev/null || ${TRUE}" >> ${TMPPLIST} @${ECHO_CMD} "@postunexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/share/icons/${subdir} 2>/dev/null || ${TRUE}" >> ${TMPPLIST} .endfor .include Index: head/editors/libreoffice6/files/patch-powerpc =================================================================== --- head/editors/libreoffice6/files/patch-powerpc (revision 566181) +++ head/editors/libreoffice6/files/patch-powerpc (revision 566182) @@ -1,216 +1,226 @@ --- configure.ac.orig 2019-08-08 20:00:41.682261000 +0800 +++ configure.ac 2019-08-08 20:01:10.652575000 +0800 -@@ -4278,6 +4278,16 @@ +@@ -4278,6 +4278,21 @@ RTL_ARCH=X86_64 PLATFORMID=freebsd_x86_64 ;; + powerpc64) + CPUNAME=POWERPC64 + RTL_ARCH=PowerPC_64 + PLATFORMID=freebsd_powerpc64 + ;; ++ powerpc64le) ++ CPUNAME=POWERPC64 ++ RTL_ARCH=PowerPC_64 ++ PLATFORMID=freebsd_powerpc64_le ++ ;; + powerpc|powerpcspe) + CPUNAME=POWERPC + RTL_ARCH=PowerPC + PLATFORMID=freebsd_powerpc + ;; *) AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os]) ;; --- configure.orig 2019-08-07 01:54:44.000000000 +0800 +++ configure 2019-08-08 20:00:26.166619000 +0800 -@@ -12537,6 +12537,16 @@ +@@ -12537,6 +12537,21 @@ PLATFORMID=freebsd_aarch64 RTL_ARCH=AARCH64 ;; + powerpc64) + CPUNAME=POWERPC64 + RTL_ARCH=PowerPC_64 + PLATFORMID=freebsd_powerpc64 ++ ;; ++ powerpc64le) ++ CPUNAME=POWERPC64 ++ RTL_ARCH=PowerPC_64 ++ PLATFORMID=freebsd_powerpc64_le + ;; + powerpc|powerpcspe) + CPUNAME=POWERPC + RTL_ARCH=PowerPC + PLATFORMID=freebsd_powerpc + ;; *) as_fn_error $? "Unsupported host_cpu $host_cpu for host_os $host_os" "$LINENO" 5 ;; --- bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx.orig +++ bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx @@ -20,7 +20,11 @@ #include #include +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY) +#include +#else #include +#endif #include #include --- bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx.orig +++ bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx @@ -20,7 +20,11 @@ #include #include +#if defined (FREEBSD) || defined(NETBSD) || defined(OPENBSD) || defined(DRAGONFLY) +#include +#else #include +#endif #include #include --- include/osl/endian.h.orig +++ include/osl/endian.h @@ -53,9 +53,11 @@ #elif defined FREEBSD # include # include -# if defined _LITTLE_ENDIAN +# if BYTE_ORDER == LITTLE_ENDIAN +# undef _BIG_ENDIAN # define OSL_LITENDIAN -# elif defined _BIG_ENDIAN +# elif BYTE_ORDER == BIG_ENDIAN +# undef _LITTLE_ENDIAN # define OSL_BIGENDIAN # endif #elif defined AIX --- /dev/null +++ solenv/gbuild/platform/FREEBSD_POWERPC_GCC.mk @@ -0,0 +1,16 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DPPC -DPOWERPC +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: --- /dev/null +++ solenv/gbuild/platform/FREEBSD_POWERPC64_GCC.mk @@ -0,0 +1,17 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DPPC -DPOWERPC64 +gb_COMPILERDEFAULTOPTFLAGS := -O2 +gb_CXXFLAGS += -mminimal-toc + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: --- desktop/source/deployment/misc/dp_platform.cxx.orig +++ desktop/source/deployment/misc/dp_platform.cxx @@ -132,6 +132,8 @@ ret = checkOSandCPU("FreeBSD", "X86_64"); else if (token == "freebsd_powerpc") ret = checkOSandCPU("FreeBSD", "PowerPC"); + else if (token == "freebsd_powerpc64") + ret = checkOSandCPU("FreeBSD", "PowerPC64"); else if (token == "kfreebsd_x86") ret = checkOSandCPU("kFreeBSD", "x86"); else if (token == "kfreebsd_x86_64") --- lotuswordpro/source/filter/lwpobjstrm.cxx.orig +++ lotuswordpro/source/filter/lwpobjstrm.cxx @@ -57,6 +57,7 @@ #include "lwpobjstrm.hxx" #include "lwptools.hxx" +#include #include #include #include --- oox/source/helper/binaryoutputstream.cxx.orig +++ oox/source/helper/binaryoutputstream.cxx @@ -23,6 +23,8 @@ #include #include #include + +#include namespace oox { --- sal/cppunittester/cppunittester.cxx.orig +++ sal/cppunittester/cppunittester.cxx @@ -361,6 +361,7 @@ SAL_IMPLEMENT_MAIN() { + return EXIT_SUCCESS; bool ok = false; OUString path; try --- sw/source/filter/ww8/ww8scan.cxx.orig +++ sw/source/filter/ww8/ww8scan.cxx @@ -23,6 +23,7 @@ #include #include +#include #include #include #include --- testtools/CustomTarget_uno_test.mk.orig 2019-03-27 15:11:56.660402000 +0800 +++ testtools/CustomTarget_uno_test.mk 2019-03-27 15:11:55.757889000 +0800 @@ -12,7 +12,10 @@ # this target is phony to run it every time .PHONY : $(call gb_CustomTarget_get_target,testtools/uno_test) -$(call gb_CustomTarget_get_target,testtools/uno_test) : \ +ifeq (($(OS)-$(CPUNAME)), FREEBSD-POWERPC64) + @echo "FreeBSD PowerPC64 GCC fails this test! likely broken UNO bridge. Fix me." +else + $(call gb_CustomTarget_get_target,testtools/uno_test) : \ $(call gb_Executable_get_runtime_dependencies,uno) \ $(call gb_InternalUnoApi_get_target,bridgetest) \ $(call gb_Package_get_target,instsetoo_native_setup_ure) \ @@ -29,6 +32,7 @@ -env:LO_BUILD_LIB_DIR=$(call gb_Helper_make_url,$(gb_Library_WORKDIR_FOR_BUILD)) \ -env:URE_MORE_SERVICES=$(call gb_Helper_make_url,$(call gb_Rdb_get_target,uno_services)) \ -env:URE_MORE_TYPES=$(call gb_Helper_make_url,$(WORKDIR)/UnoApiTarget/bridgetest.rdb)) +endif endif # vim:set shiftwidth=4 tabstop=4 noexpandtab: --- vcl/headless/svpbmp.cxx.orig +++ vcl/headless/svpbmp.cxx @@ -26,6 +26,8 @@ #include #include #include +#include + #include #include --- vcl/source/filter/jpeg/Exif.cxx.orig +++ vcl/source/filter/jpeg/Exif.cxx @@ -20,6 +20,7 @@ #include #include +#include Exif::Exif() : maOrientation(TOP_LEFT), Index: head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-cpp2uno.cxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-cpp2uno.cxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-cpp2uno.cxx (revision 566182) @@ -0,0 +1,79 @@ +--- bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx.orig 2020-04-04 12:03:03.236554000 -0500 ++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx 2020-04-08 14:28:30.208034000 -0500 +@@ -341,7 +341,7 @@ + + static typelib_TypeClass cpp_mediate( + sal_uInt64 nOffsetAndIndex, +- void ** gpreg, void ** fpreg, long sp, ++ void ** gpreg, void ** fpreg, long fp, + sal_Int64 * pRegisterReturn /* space for register return */ ) + { + static_assert(sizeof(sal_Int64)==sizeof(void *), "### unexpected!"); +@@ -349,8 +349,8 @@ + sal_Int32 nVtableOffset = (nOffsetAndIndex >> 32); + sal_Int32 nFunctionIndex = (nOffsetAndIndex & 0xFFFFFFFF); + +- long sf = *(long*)sp; +- void ** ovrflw = (void**)(sf + PARAMSAVE + 64); ++ /* XXX: This is the stack frame!!!! */ ++ void ** ovrflw = (void**)(fp + PARAMSAVE + 64); + + // gpreg: [ret *], this, [other gpr params] + // fpreg: [fpr params] +@@ -513,18 +513,22 @@ + return eRet; + } + +-extern "C" void privateSnippetExecutor( ... ) ++extern "C" void privateSnippetExecutor( uint64_t a, ... ) + { ++ va_list args, fpargs; + sal_uInt64 gpreg[ppc64::MAX_GPR_REGS]; + +- register long r3 asm("r3"); gpreg[0] = r3; +- register long r4 asm("r4"); gpreg[1] = r4; +- register long r5 asm("r5"); gpreg[2] = r5; +- register long r6 asm("r6"); gpreg[3] = r6; +- register long r7 asm("r7"); gpreg[4] = r7; +- register long r8 asm("r8"); gpreg[5] = r8; +- register long r9 asm("r9"); gpreg[6] = r9; +- register long r10 asm("r10"); gpreg[7] = r10; ++ va_start(args, a); ++ va_copy(fpargs, args); ++ /* Start with all the GPRs */ ++ gpreg[0] = a; ++ gpreg[1] = va_arg(args, uint64_t); ++ gpreg[2] = va_arg(args, uint64_t); ++ gpreg[3] = va_arg(args, uint64_t); ++ gpreg[4] = va_arg(args, uint64_t); ++ gpreg[5] = va_arg(args, uint64_t); ++ gpreg[6] = va_arg(args, uint64_t); ++ gpreg[7] = va_arg(args, uint64_t); + + double fpreg[ppc64::MAX_SSE_REGS]; + +@@ -547,11 +551,11 @@ + "fr10", "fr11", "fr12", "fr13" + ); + +- register long r11 asm("r11"); +- const long nOffsetAndIndex = r11; ++ long nOffsetAndIndex; ++ long fp; + +- register long r1 asm("r1"); +- const long sp = r1; ++ __asm __volatile("mr %0, 11\n" : "=r"(nOffsetAndIndex)); ++ fp = (long)__builtin_frame_address(0); + + #if defined(_CALL_ELF) && _CALL_ELF == 2 + volatile long nRegReturn[2]; +@@ -560,7 +564,7 @@ + #endif + + typelib_TypeClass aType = +- cpp_mediate( nOffsetAndIndex, (void**)gpreg, (void**)fpreg, sp, (sal_Int64*)nRegReturn); ++ cpp_mediate( nOffsetAndIndex, (void**)gpreg, (void**)fpreg, fp, (sal_Int64*)nRegReturn); + + switch( aType ) + { Property changes on: head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-cpp2uno.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-except.cxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-except.cxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-except.cxx (revision 566182) @@ -0,0 +1,112 @@ +--- bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx.orig 2019-12-05 13:59:23.000000000 -0600 ++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx 2020-09-14 11:24:58.489149000 -0500 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -136,7 +137,7 @@ + buf.append( 'E' ); + + OString symName( buf.makeStringAndClear() ); +- rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); ++ rtti = static_cast(dlsym( m_hApp, symName.getStr() )); + + if (rtti) + { +@@ -161,9 +162,9 @@ + { + // ensure availability of base + type_info * base_rtti = getRTTI( +- (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription ); ++ pTypeDescr->pBaseTypeDescription ); + rtti = new __si_class_type_info( +- strdup( rttiName ), (__class_type_info *)base_rtti ); ++ strdup( rttiName ), static_cast<__class_type_info *>(base_rtti )); + } + else + { +@@ -192,8 +193,8 @@ + + static void deleteException( void * pExc ) + { +- __cxa_exception const * header = ((__cxa_exception const *)pExc - 1); +- typelib_TypeDescription * pTD = 0; ++ __cxxabiv1::__cxa_exception const * header = static_cast<__cxxabiv1::__cxa_exception const *>(pExc) - 1; ++ typelib_TypeDescription * pTD = nullptr; + OUString unoName( toUNOname( header->exceptionType->name() ) ); + ::typelib_typedescription_getByName( &pTD, unoName.pData ); + assert(pTD && "### unknown exception type! leaving out destruction => leaking!!!"); +@@ -216,39 +217,57 @@ + if (! pTypeDescr) + terminate(); + +- pCppExc = __cxa_allocate_exception( pTypeDescr->nSize ); ++ pCppExc = __cxxabiv1::__cxa_allocate_exception( pTypeDescr->nSize ); + ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp ); + + // destruct uno exception +- ::uno_any_destruct( pUnoExc, 0 ); ++ ::uno_any_destruct( pUnoExc, nullptr ); + // avoiding locked counts + static RTTI rtti_data; +- rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr); ++ rtti = rtti_data.getRTTI(reinterpret_cast(pTypeDescr)); + TYPELIB_DANGER_RELEASE( pTypeDescr ); + if (! rtti) +- terminate(); ++ { ++ throw RuntimeException( ++ "no rtti for type " + ++ OUString::unacquired( &pUnoExc->pType->pTypeName ) ); + } ++ } + +- __cxa_throw( pCppExc, rtti, deleteException ); ++ __cxxabiv1::__cxa_throw( pCppExc, rtti, deleteException ); + } + + void fillUnoException(uno_Any * pExc, uno_Mapping * pCpp2Uno) + { +- __cxa_exception * header = __cxa_get_globals()->caughtExceptions; ++ __cxxabiv1::__cxa_exception * header = ++ __cxxabiv1::__cxa_get_globals()->caughtExceptions; + if (! header) + terminate(); + +- std::type_info *exceptionType = __cxa_current_exception_type(); ++ std::type_info *exceptionType = __cxxabiv1::__cxa_current_exception_type(); + +- typelib_TypeDescription * pExcTypeDescr = 0; ++ typelib_TypeDescription * pExcTypeDescr = nullptr; + OUString unoName( toUNOname( exceptionType->name() ) ); +- ::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData ); +- if (! pExcTypeDescr) ++ typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData ); ++ if (pExcTypeDescr == nullptr) ++ { ++ RuntimeException aRE( "exception type not found: " + unoName ); ++ Type const & rType = cppu::UnoType::get(); ++ uno_type_any_constructAndConvert( pExc, &aRE, rType.getTypeLibType(), pCpp2Uno ); ++ SAL_WARN("bridges", aRE.Message); ++ } ++ else ++ { ++ // construct uno exception any ++ uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno ); ++ typelib_typedescription_release( pExcTypeDescr ); ++ } ++ if (nullptr == pExcTypeDescr) + terminate(); + + // construct uno exception any +- ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno ); +- ::typelib_typedescription_release( pExcTypeDescr ); ++ uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno ); ++ typelib_typedescription_release( pExcTypeDescr ); + } + + } Property changes on: head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-except.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-share.hxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-share.hxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-share.hxx (revision 566182) @@ -0,0 +1,106 @@ +--- bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx.orig 2020-04-07 10:06:14.193381000 -0500 ++++ bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx 2020-04-09 11:33:30.706043000 -0500 +@@ -25,6 +25,63 @@ + #include + #include + ++#include ++#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h ++#define _GLIBCXX_CDTOR_CALLABI ++#endif ++#include ++ ++#include ++ ++#if !HAVE_CXXABI_H_CLASS_TYPE_INFO ++// , ++// libstdc++-v3/libsupc++/cxxabi.h: ++namespace __cxxabiv1 { ++class __class_type_info: public std::type_info { ++public: ++ explicit __class_type_info(char const * n): type_info(n) {} ++ ~__class_type_info() override; ++}; ++} ++#endif ++ ++#if !HAVE_CXXABI_H_SI_CLASS_TYPE_INFO ++// , ++// libstdc++-v3/libsupc++/cxxabi.h: ++namespace __cxxabiv1 { ++class __si_class_type_info: public __class_type_info { ++public: ++ __class_type_info const * __base_type; ++ explicit __si_class_type_info( ++ char const * n, __class_type_info const *base): ++ __class_type_info(n), __base_type(base) {} ++ ~__si_class_type_info() override; ++}; ++} ++#endif ++#if !HAVE_CXXABI_H_CXA_GET_GLOBALS ++namespace __cxxabiv1 { extern "C" void *__cxa_get_globals () throw(); } ++#endif ++#if !HAVE_CXXABI_H_CXA_CURRENT_EXCEPTION_TYPE ++namespace __cxxabiv1 { ++extern "C" std::type_info *__cxa_current_exception_type() throw(); ++} ++#endif ++ ++#if !HAVE_CXXABI_H_CXA_ALLOCATE_EXCEPTION ++namespace __cxxabiv1 { ++extern "C" void *__cxa_allocate_exception( ++ std::size_t thrown_size ) throw(); ++} ++#endif ++ ++#if !HAVE_CXXABI_H_CXA_THROW ++namespace __cxxabiv1 { ++extern "C" void __cxa_throw ( ++ void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn)); ++} ++#endif ++ + namespace CPPU_CURRENT_NAMESPACE + { + +@@ -33,6 +90,7 @@ + + // ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h + ++#if 0 + struct _Unwind_Exception + { + unsigned exception_class __attribute__((__mode__(__DI__))); +@@ -40,9 +98,11 @@ + unsigned private_1 __attribute__((__mode__(__word__))); + unsigned private_2 __attribute__((__mode__(__word__))); + } __attribute__((__aligned__)); ++#endif + + struct __cxa_exception + { ++ //uintptr_t referenceCount; + std::type_info *exceptionType; + void (*exceptionDestructor)(void *); + +@@ -62,19 +122,11 @@ + _Unwind_Exception unwindHeader; + }; + +-extern "C" void *__cxa_allocate_exception( +- std::size_t thrown_size ) throw(); +-extern "C" void __cxa_throw ( +- void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn)); +- + struct __cxa_eh_globals + { + __cxa_exception *caughtExceptions; + unsigned int uncaughtExceptions; + }; +- +-extern "C" __cxa_eh_globals *__cxa_get_globals () throw(); +-extern "C" std::type_info *__cxa_current_exception_type() throw(); + + void raiseException( + uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ); Property changes on: head/editors/libreoffice6/files/powerpc64/patch-bridges-source-cpp_uno-gcc3_linux_powerpc64-share.hxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-cppuhelper_source_exc__thrower.cxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-cppuhelper_source_exc__thrower.cxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-cppuhelper_source_exc__thrower.cxx (revision 566182) @@ -0,0 +1,10 @@ +--- cppuhelper/source/exc_thrower.cxx.orig 2020-11-27 22:07:39 UTC ++++ cppuhelper/source/exc_thrower.cxx +@@ -220,6 +220,7 @@ namespace cppu + { + + ++__attribute__ ((optnone)) + void SAL_CALL throwException( Any const & exc ) + { + if (exc.getValueTypeClass() != TypeClass_EXCEPTION) Property changes on: head/editors/libreoffice6/files/powerpc64/patch-cppuhelper_source_exc__thrower.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-desktop_source_deployment_misc_dp__ucb.cxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-desktop_source_deployment_misc_dp__ucb.cxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-desktop_source_deployment_misc_dp__ucb.cxx (revision 566182) @@ -0,0 +1,20 @@ +--- desktop/source/deployment/misc/dp_ucb.cxx.orig 2020-10-21 20:09:11 UTC ++++ desktop/source/deployment/misc/dp_ucb.cxx +@@ -45,7 +45,7 @@ namespace dp_misc + bool create_ucb_content( + ::ucbhelper::Content * ret_ucbContent, OUString const & url, + Reference const & xCmdEnv, +- bool throw_exc ) ++ bool throw_exc ) __attribute__ ((optnone)) + { + try { + // Existence check... +@@ -81,7 +81,7 @@ bool create_ucb_content( + + bool create_folder( + ::ucbhelper::Content * ret_ucb_content, OUString const & url_, +- Reference const & xCmdEnv, bool throw_exc ) ++ Reference const & xCmdEnv, bool throw_exc ) __attribute__ ((optnone)) + { + ::ucbhelper::Content ucb_content; + if (create_ucb_content( Property changes on: head/editors/libreoffice6/files/powerpc64/patch-desktop_source_deployment_misc_dp__ucb.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.h =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.h (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.h (revision 566182) @@ -0,0 +1,11 @@ +--- include/com/sun/star/uno/Reference.h.orig 2020-11-27 17:16:53 UTC ++++ include/com/sun/star/uno/Reference.h +@@ -377,7 +377,7 @@ class SAL_DLLPUBLIC_RTTI Reference : public BaseRefere + + @return UNacquired interface pointer + */ +- interface_type * SAL_CALL operator -> () const { ++ interface_type * SAL_CALL operator -> () const __attribute__ ((optnone)) { + assert(_pInterface != NULL); + return castFromXInterface(_pInterface); + } Property changes on: head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.hxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.hxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.hxx (revision 566182) @@ -0,0 +1,20 @@ +--- include/com/sun/star/uno/Reference.hxx.orig 2020-10-21 20:09:11 UTC ++++ include/com/sun/star/uno/Reference.hxx +@@ -91,7 +91,7 @@ inline XInterface * Reference< interface_type >::iquer + + template< class interface_type > + inline interface_type * Reference< interface_type >::iset_throw( +- interface_type * pInterface ) ++ interface_type * pInterface ) __attribute__ ((optnone)) + { + if (pInterface) + { +@@ -104,7 +104,7 @@ inline interface_type * Reference< interface_type >::i + } + + template< class interface_type > +-inline Reference< interface_type >::~Reference() COVERITY_NOEXCEPT_FALSE ++inline Reference< interface_type >::~Reference() COVERITY_NOEXCEPT_FALSE __attribute__ ((optnone)) + { + if (_pInterface) + _pInterface->release(); Property changes on: head/editors/libreoffice6/files/powerpc64/patch-include_com_sun_star_uno_Reference.hxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-include_uno_mapping.hxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-include_uno_mapping.hxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-include_uno_mapping.hxx (revision 566182) @@ -0,0 +1,10 @@ +--- include/uno/mapping.hxx.orig 2020-11-28 00:12:11 UTC ++++ include/uno/mapping.hxx +@@ -248,6 +248,7 @@ inline Mapping::Mapping( const Mapping & rMapping ) + (*_pMapping->acquire)( _pMapping ); + } + ++__attribute__ ((optnone)) + inline Mapping::~Mapping() + { + if (_pMapping) Property changes on: head/editors/libreoffice6/files/powerpc64/patch-include_uno_mapping.hxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/editors/libreoffice6/files/powerpc64/patch-ucb_source_ucp_file_bc.cxx =================================================================== --- head/editors/libreoffice6/files/powerpc64/patch-ucb_source_ucp_file_bc.cxx (nonexistent) +++ head/editors/libreoffice6/files/powerpc64/patch-ucb_source_ucp_file_bc.cxx (revision 566182) @@ -0,0 +1,10 @@ +--- ucb/source/ucp/file/bc.cxx.orig 2020-12-08 05:01:04 UTC ++++ ucb/source/ucp/file/bc.cxx +@@ -40,6 +40,7 @@ + #include "prov.hxx" + #include "filerror.hxx" + #include "filinsreq.hxx" ++#pragma clang optimize off + + using namespace fileaccess; + using namespace com::sun::star; Property changes on: head/editors/libreoffice6/files/powerpc64/patch-ucb_source_ucp_file_bc.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property