aboutsummaryrefslogtreecommitdiff
path: root/editors/libreoffice
diff options
context:
space:
mode:
authorDima Panov <fluffy@FreeBSD.org>2020-06-13 07:16:28 +0000
committerDima Panov <fluffy@FreeBSD.org>2020-06-13 07:16:28 +0000
commit1e625d55fc0fc367b21f9f9afc402b0e356b8e63 (patch)
tree525bf0f2c12cced6d8b64021df76add5de6cc84f /editors/libreoffice
parentc0fba9aa3198e7df256f6c9300af2f480ba15af1 (diff)
downloadports-1e625d55fc0fc367b21f9f9afc402b0e356b8e63.tar.gz
ports-1e625d55fc0fc367b21f9f9afc402b0e356b8e63.zip
FreeBSD Office team is proud to announce LibreOffice 6.4.4, latest stable release
Some notes about changes in port options: - GTK2 option is obsolete by upstream - GTK3 option is not more set by default because of unstable yet and have visual glitches - QT5 option is set by default to provide comfy visual style for every user - Change VCL autotetect logic (used if enable, skipto next in row if disabled: -- For KDE/LXQT: kf5, qt5, gtk3_kde5, gtk3, gen -- For GNOME, Unity, XFCE, MATE: gtk3, qt5, gen -- All other DE should follow gnome list One small note — since upcoming Qt5-5.15 will drop binary support for FreeBSD 11.x due to outdated OpenSSL-1.0 in base, here is no reason to enable QT5 option on FreeBSD <12 by default Thanks for all testers and supporters! Dima, with office hat Relnotes: https://wiki.documentfoundation.org/ReleaseNotes/6.4
Notes
Notes: svn path=/head/; revision=538642
Diffstat (limited to 'editors/libreoffice')
-rw-r--r--editors/libreoffice/Makefile73
-rw-r--r--editors/libreoffice/Makefile.common2
-rw-r--r--editors/libreoffice/distinfo12
-rw-r--r--editors/libreoffice/files/patch-aarch64-gcc3_linux_aarch64274
-rw-r--r--editors/libreoffice/files/patch-bridges_source_cpp__uno_gcc3__linux__aarch64_cpp2uno.cxx22
-rw-r--r--editors/libreoffice/files/patch-configure.aarch6414
-rw-r--r--editors/libreoffice/files/patch-cxa_exception98
-rw-r--r--editors/libreoffice/files/patch-python382114
-rw-r--r--editors/libreoffice/files/patch-sc_source_core_opencl_formulagroupcl.cxx (renamed from editors/libreoffice/files/patch-clang10)187
-rw-r--r--editors/libreoffice/files/patch-solenv_gbuild_platform_FREEBSD__AARCH64__GCC.mk17
-rw-r--r--editors/libreoffice/files/patch-vcl_qt5_Qt5Instance.cxx11
-rw-r--r--editors/libreoffice/files/patch-vcl_source_app_salplug.cxx19
-rw-r--r--editors/libreoffice/files/patch-vcl_unx_generic_app_geninst.cxx23
-rw-r--r--editors/libreoffice/files/patch-vcl_unx_kde5_kde5salinstance.cxx23
14 files changed, 616 insertions, 273 deletions
diff --git a/editors/libreoffice/Makefile b/editors/libreoffice/Makefile
index c1ee78fefcc7..26828815bbc4 100644
--- a/editors/libreoffice/Makefile
+++ b/editors/libreoffice/Makefile
@@ -1,7 +1,5 @@
# $FreeBSD$
-PORTREVISION= 1
-
.include "${.CURDIR}/Makefile.common"
MASTER_SITES= https://download.documentfoundation.org/libreoffice/src/${PORTVERSION}/ \
@@ -20,7 +18,7 @@ BUILD_DEPENDS= p5-Archive-Zip>=0:archivers/p5-Archive-Zip \
cppunit-config:devel/cppunit \
dmake:devel/dmake \
gperf>=3.1:devel/gperf \
- mdds>=1.4:devel/mdds \
+ mdds>=1.5:devel/mdds \
ucpp:devel/ucpp \
${LOCALBASE}/include/sane/sane.h:graphics/sane-backends \
vigra-config:graphics/vigra \
@@ -34,7 +32,7 @@ LIB_DEPENDS= libapr-1.so:devel/apr1 \
libicutu.so:devel/icu \
liblangtag.so:devel/liblangtag \
libltdl.so:devel/libltdl \
- liborcus-0.14.so:devel/liborcus \
+ liborcus-0.15.so:devel/liborcus \
libplds4.so:devel/nspr \
libcurl.so:ftp/curl \
libcairo.so:graphics/cairo \
@@ -47,9 +45,9 @@ LIB_DEPENDS= libapr-1.so:devel/apr1 \
libgltf-0.0.so:graphics/libgltf \
libwpg-0.3.so:graphics/libwpg03 \
libzmf-0.0.so:graphics/libzmf \
- libGeneratedSaxParser.so:graphics/opencollada \
libpng.so:graphics/png \
libpoppler.so:graphics/poppler \
+ libqrcodegencpp.so:graphics/qr-code-generator \
libCoinMP.so:math/coinmp \
liblpsolve55.so:math/lp_solve \
libcmis-0.5.so:net/libcmis \
@@ -93,10 +91,9 @@ RUN_DEPENDS= xdg-open:devel/xdg-utils \
${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+= 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2:src \
- 884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf:ext
+DISTFILES+= 884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf:ext
-NOT_FOR_ARCHS= aarch64 armv6 armv7
+NOT_FOR_ARCHS= armv6 armv7
NOT_FOR_ARCHS_REASON= Unsupported host_cpu
.if defined(PRERELEASE)
@@ -118,19 +115,19 @@ USES= autoreconf:build bison compiler:c++14-lang cpe gl gmake gnome \
perl5 pkgconfig python shebangfix shared-mime-info ssl tar:xz \
xorg
-OPTIONS_DEFINE= CUPS DOCS GNOME GTK2 GTK3 JAVA KDE5 MMEDIA PGSQL QT5 SDK \
- SYSTRAY TEST WEBDAV
-OPTIONS_DEFAULT= CUPS GTK2 MMEDIA
+OPTIONS_DEFINE= CUPS DOCS GNOME GTK3 JAVA KF5 MMEDIA PGSQL QT5 SDK TEST WEBDAV
+OPTIONS_DEFAULT= CUPS MMEDIA
+OPTIONS_DEFAULT_FreeBSD_12= QT5
+OPTIONS_DEFAULT_FreeBSD_13= QT5
+OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${OPSYS}_${OSREL:R}}
-GTK2_DESC= GTK+ 2 GUI toolkit support
-GTK3_DESC= GTK+ 3 GUI toolkit support (experimental)
+GTK3_DESC= GTK+ 3 GUI toolkit support (broken visual style)
JAVA_DESC= Add Java support (XML filters, macros, DB connections)
-KDE5_DESC= KF5/Qt5 GUI toolkit support (require QT5)
+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
+QT5_DESC= Qt5 GUI toolkit support (default visual style)
SDK_DESC= Build with SDK
-SYSTRAY_DESC= Enable systemtray quickstarter
TEST_DESC= Run all regression tests
WEBDAV_DESC= Enable WebDAV protocol
@@ -140,23 +137,14 @@ CUPS_LIB_DEPENDS= libcups.so:print/cups
DOCS_CONFIGURE_WITH= help
GNOME_CONFIGURE_ENABLE= dbus dconf
-GNOME_IMPLIES= GTK2
+GNOME_IMPLIES= GTK3
GNOME_LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib
GNOME_USE= GNOME=dconf
-GTK_USE_GNOME= gtk-update-icon-cache
-GTK_USES= desktop-file-utils
-GTK_VARS= POST_PLIST=add-plist-gnome
-
-GTK2_CONFIGURE_ENABLE= gtk
-GTK2_USE= GNOME=gtk20,${GTK_USE_GNOME}
-GTK2_USES= ${GTK_USES}
-GTK2_VARS= ${GTK_VARS}
-
GTK3_CONFIGURE_ENABLE= gtk3
-GTK3_USE= GNOME=gtk30,${GTK_USE_GNOME}
-GTK3_USES= ${GTK_USES}
-GTK3_VARS= ${GTK_VARS}
+GTK3_USE= GNOME=gtk30,gtk-update-icon-cache
+GTK3_USES= desktop-file-utils
+GTK3_VARS= POST_PLIST=add-plist-gnome
JAVA_BUILD_DEPENDS= ant:devel/apache-ant \
${JAVAJARDIR}/commons-codec.jar:java/apache-commons-codec \
@@ -198,10 +186,10 @@ JAVA_DISTFILES= 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip:src \
JAVA_USE= JAVA=yes
JAVA_VARS= JAVA_BUILD=yes
-KDE5_CONFIGURE_ENABLE= kde5
-KDE5_USE= kde=config,coreaddons,i18n,kio,windowsystem
-KDE5_USES= kde:5
-KDE5_IMPLIES= QT5
+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
@@ -220,8 +208,6 @@ SDK_CONFIGURE_OFF= --without-doxygen
SDK_CONFIGURE_ON= --with-doxygen=${LOCALBASE}/bin/doxygen
SDK_DISTFILES= 185d60944ea767075d27247c3162b3bc-unowinreg.dll:ext
-SYSTRAY_CONFIGURE_ENABLE= systray
-
TEST_ALL_TARGET_OFF= build-nocheck
TEST_CONFIGURE_ENABLE= cve-tests
@@ -231,12 +217,6 @@ WEBDAV_LIB_DEPENDS= libneon.so:www/neon
CPPFLAGS+= -isystem ${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
-COLLADA_MODS= COLLADABaseUtils COLLADAFramework \
- COLLADASaxFrameworkLoader GeneratedSaxParser
-COLLADA_CFLAGS= ${COLLADA_MODS:S|^|-isystem ${LOCALBASE}/include/opencollada/|}
-COLLADA_LIBS= -L${LOCALBASE}/lib/opencollada \
- ${COLLADA_MODS:S|^COLLADA|OpenCOLLADA|:S|^|-l|}
-
CONFIGURE_ARGS= --disable-dependency-tracking \
--disable-epm \
--disable-fetch-external \
@@ -248,7 +228,6 @@ CONFIGURE_ARGS= --disable-dependency-tracking \
--enable-release-build \
--disable-pdfium \
--exec-prefix=${PREFIX} \
- --with-alloc=system \
--with-boost=${LOCALBASE} \
--with-build-version="FreeBSD ports ${PKGVERSION}" \
--with-external-dict-dir=${LOCALBASE}/share/hunspell \
@@ -262,7 +241,6 @@ CONFIGURE_ARGS= --disable-dependency-tracking \
--with-system-dicts \
--with-system-libs \
--with-system-libxml \
- --with-system-opencollada \
--with-system-ucpp \
--with-system-zlib \
--with-vendor="FreeBSD ports" \
@@ -275,8 +253,6 @@ CONFIGURE_ENV= DMAKE=${LOCALBASE}/bin/dmake \
GPERF=${LOCALBASE}/bin/gperf \
ICU_CFLAGS="`icu-config --cflags`" \
ICU_LIBS="`icu-config --ldflags`" \
- OPENCOLLADA_CFLAGS="${COLLADA_CFLAGS}" \
- OPENCOLLADA_LIBS="${COLLADA_LIBS}" \
PYTHON_CFLAGS="`${PYTHON_VERSION}-config --cflags`" \
PYTHON_LIBS="`${PYTHON_VERSION}-config --libs`" \
ac_cv_path_SED=${LOCALBASE}/bin/gsed
@@ -291,6 +267,10 @@ MAKE_ENV+= verbose=1
.include <bsd.port.pre.mk>
+.if ${PORT_OPTIONS:MGTK3}
+WARNING= "GTK3 visual style is bkoken yet, build at your ouwn risk"
+.endif
+
.if ${CHOSEN_COMPILER_TYPE} == clang
CXXFLAGS_WARN= -Woverloaded-virtual -Wno-unused-parameter -Wno-unused-local-typedefs
.else
@@ -327,9 +307,6 @@ post-install-SDK-on:
${FIND} -s ${subdir}/libreoffice -not -type d >> ${TMPPLIST}
.endfor
-post-install-GTK3-on:
- @${ECHO_CMD} "share/gir-1.0/LOKDocView-0.1.gir" >> ${TMPPLIST}
-
add-plist-gnome:
.for subdir in gnome hicolor locolor
@${ECHO_CMD} "@rmtry share/icons/${subdir}/icon-theme.cache" >> ${TMPPLIST}
diff --git a/editors/libreoffice/Makefile.common b/editors/libreoffice/Makefile.common
index 4f5e598b7918..7eafaa7959a7 100644
--- a/editors/libreoffice/Makefile.common
+++ b/editors/libreoffice/Makefile.common
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= libreoffice
-PORTVERSION= 6.3.6
+PORTVERSION= 6.4.4
CATEGORIES+= editors
MAINTAINER= office@FreeBSD.org
diff --git a/editors/libreoffice/distinfo b/editors/libreoffice/distinfo
index 3e8cb2b7e302..82b8655cc00a 100644
--- a/editors/libreoffice/distinfo
+++ b/editors/libreoffice/distinfo
@@ -1,10 +1,8 @@
-TIMESTAMP = 1589618868
-SHA256 (libreoffice/libreoffice-6.3.6.2.tar.xz) = c39a4c7bb6e3bea604b0bfb2743492cb908166b464336272dac92c7dcf48af58
-SIZE (libreoffice/libreoffice-6.3.6.2.tar.xz) = 226305208
-SHA256 (libreoffice/libreoffice-help-6.3.6.2.tar.xz) = 391723f757f30ed8c372005d64d0845fe62034f61a116dc7554981d2f7afbfc0
-SIZE (libreoffice/libreoffice-help-6.3.6.2.tar.xz) = 13192272
-SHA256 (libreoffice/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2) = b0adb8e71aef80751b999c9c055e419a625c4a05184e407aef2aee28752ad8cb
-SIZE (libreoffice/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2) = 555291
+TIMESTAMP = 1590779230
+SHA256 (libreoffice/libreoffice-6.4.4.2.tar.xz) = 54388597dffc9c32f81446e6e634f7af76ca0e0e5a0d27bc3fe89033a011c078
+SIZE (libreoffice/libreoffice-6.4.4.2.tar.xz) = 231325236
+SHA256 (libreoffice/libreoffice-help-6.4.4.2.tar.xz) = c61ac7b9ceac9aa0813bce405ce25b13dc1b698509ce33827ff7c65dffde25ac
+SIZE (libreoffice/libreoffice-help-6.4.4.2.tar.xz) = 88296340
SHA256 (libreoffice/884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf) = 884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc
SIZE (libreoffice/884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf) = 207544
SHA256 (libreoffice/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip) = d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370
diff --git a/editors/libreoffice/files/patch-aarch64-gcc3_linux_aarch64 b/editors/libreoffice/files/patch-aarch64-gcc3_linux_aarch64
new file mode 100644
index 000000000000..22c7d9bf4326
--- /dev/null
+++ b/editors/libreoffice/files/patch-aarch64-gcc3_linux_aarch64
@@ -0,0 +1,274 @@
+From 189d498f5c0c633f8cd87b3f1b6d57020371a952 Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman@redhat.com>
+Date: Tue, 17 Dec 2019 23:33:28 +0100
+Subject: [PATCH] tdf#128671: Rely on unwind.h, declare what's missing from
+ cxxabi.h
+
+...for gcc3_linux_aarch64, similar to what
+128deeae81a6f802bfb79b8f0fa8c4b10729f7db "cxxabi.h is not specific to GCC" et al
+did for gcc3_linux_x86-64
+
+Change-Id: Iee9980842c0e5f6f49642407339a67e865f8be9c
+Reviewed-on: https://gerrit.libreoffice.org/85344
+Tested-by: Jenkins
+Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
+---
+ .../source/cpp_uno/gcc3_linux_aarch64/abi.cxx | 7 +-
+ .../source/cpp_uno/gcc3_linux_aarch64/abi.hxx | 117 +++++++++++++-----
+ .../cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx | 4 +-
+ 3 files changed, 92 insertions(+), 36 deletions(-)
+
+diff --git bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx
+index 938011a09a2e..892bf6e81963 100644
+--- bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx
++++ bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx
+@@ -24,7 +24,6 @@
+ #include <cstring>
+ #include <typeinfo>
+
+-#include <cxxabi.h>
+ #include <dlfcn.h>
+
+ #include <com/sun/star/uno/RuntimeException.hpp>
+@@ -135,8 +134,8 @@ std::type_info * getRtti(typelib_TypeDescription const & type) {
+ }
+
+ extern "C" void _GLIBCXX_CDTOR_CALLABI deleteException(void * exception) {
+- abi_aarch64::__cxa_exception * header =
+- static_cast<abi_aarch64::__cxa_exception *>(exception) - 1;
++ __cxxabiv1::__cxa_exception * header =
++ static_cast<__cxxabiv1::__cxa_exception *>(exception) - 1;
+ OUString unoName(toUnoName(header->exceptionType->name()));
+ typelib_TypeDescription * td = 0;
+ typelib_typedescription_getByName(&td, unoName.pData);
+@@ -224,7 +223,7 @@ StructKind getStructKind(typelib_CompoundTypeDescription const * type) {
+ namespace abi_aarch64 {
+
+ void mapException(
+- __cxa_exception * exception, std::type_info const * type, uno_Any * any, uno_Mapping * mapping)
++ __cxxabiv1::__cxa_exception * exception, std::type_info const * type, uno_Any * any, uno_Mapping * mapping)
+ {
+ assert(exception != 0);
+ assert(type != nullptr);
+diff --git bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx
+index 50c5f1f21a37..e3dc9b5872a7 100644
+--- bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx
++++ bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx
+@@ -22,55 +22,114 @@
+
+ #include <sal/config.h>
+
++#include <cstddef>
+ #include <exception>
+ #include <typeinfo>
+
++#include <cxxabi.h>
++#ifndef _GLIBCXX_CDTOR_CALLABI // new in GCC 4.7 cxxabi.h
++#define _GLIBCXX_CDTOR_CALLABI
++#endif
++#include <unwind.h>
++
++#include <config_cxxabi.h>
+ #include <typelib/typedescription.h>
+ #include <uno/any2.h>
+ #include <uno/mapping.h>
+
+-namespace abi_aarch64 {
+-
+-// Following declarations from libstdc++-v3/libsupc++/unwind-cxx.h and
+-// lib/gcc/*-*-*/*/include/unwind.h:
+-
+-struct _Unwind_Exception
+-{
+- unsigned exception_class __attribute__((__mode__(__DI__)));
+- void * exception_cleanup;
+- unsigned private_1 __attribute__((__mode__(__word__)));
+- unsigned private_2 __attribute__((__mode__(__word__)));
+-} __attribute__((__aligned__));
++#if !HAVE_CXXABI_H_CLASS_TYPE_INFO
++// <https://mentorembedded.github.io/cxx-abi/abi.html>,
++// 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
+
+-struct __cxa_exception
+-{
+- std::type_info *exceptionType;
+- void (*exceptionDestructor)(void *);
++#if !HAVE_CXXABI_H_SI_CLASS_TYPE_INFO
++// <https://mentorembedded.github.io/cxx-abi/abi.html>,
++// 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_EXCEPTION
++// <https://mentorembedded.github.io/cxx-abi/abi-eh.html>,
++// libcxxabi/src/cxa_exception.hpp:
++namespace __cxxabiv1 {
++struct __cxa_exception {
++#if defined _LIBCPPABI_VERSION // detect libc++abi
++#if defined __LP64__ || LIBCXXABI_ARM_EHABI
++ std::size_t referenceCount;
++#endif
++#endif
++ std::type_info * exceptionType;
++ void (* exceptionDestructor)(void *);
+ void (*unexpectedHandler)(); // std::unexpected_handler dropped from C++17
+ std::terminate_handler terminateHandler;
+-
+- __cxa_exception *nextException;
+-
++ __cxa_exception * nextException;
+ int handlerCount;
+-
+ int handlerSwitchValue;
+- const unsigned char *actionRecord;
+- const unsigned char *languageSpecificData;
+- void *catchTemp;
+- void *adjustedPtr;
+-
++ char const * actionRecord;
++ char const * languageSpecificData;
++ void * catchTemp;
++ void * adjustedPtr;
+ _Unwind_Exception unwindHeader;
+ };
++}
++#endif
+
+-struct __cxa_eh_globals
+-{
+- __cxa_exception *caughtExceptions;
++#if !HAVE_CXXABI_H_CXA_EH_GLOBALS
++// <https://mentorembedded.github.io/cxx-abi/abi-eh.html>:
++namespace __cxxabiv1 {
++struct __cxa_eh_globals {
++ __cxa_exception * caughtExceptions;
+ unsigned int uncaughtExceptions;
+ };
++}
++#endif
++
++#if !HAVE_CXXABI_H_CXA_GET_GLOBALS
++namespace __cxxabiv1 {
++extern "C" __cxa_eh_globals * __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, void * tinfo, void (* dest)(void *))
++ __attribute__((noreturn));
++}
++#endif
++
++namespace abi_aarch64 {
+
+ void mapException(
+- __cxa_exception * exception, std::type_info const * type, uno_Any * any, uno_Mapping * mapping);
++ __cxxabiv1::__cxa_exception * exception, std::type_info const * type, uno_Any * any, uno_Mapping * mapping);
+
+ void raiseException(uno_Any * any, uno_Mapping * mapping);
+
+diff --git bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx
+index f03d848521cc..0847dfc76db5 100644
+--- bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx
++++ bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx
+@@ -24,8 +24,6 @@
+ #include <exception>
+ #include <typeinfo>
+
+-#include <cxxabi.h>
+-
+ #include <bridge.hxx>
+ #include <types.hxx>
+ #include <unointerfaceproxy.hxx>
+@@ -190,7 +188,7 @@ void call(
+ }
+ } catch (css::uno::Exception &) {
+ abi_aarch64::mapException(
+- reinterpret_cast<abi_aarch64::__cxa_eh_globals *>(
++ reinterpret_cast<__cxxabiv1::__cxa_eh_globals *>(
+ __cxxabiv1::__cxa_get_globals())->caughtExceptions,
+ __cxxabiv1::__cxa_current_exception_type(), *exception,
+ proxy->getBridge()->getCpp2Uno());
+From a7d1fed24557b203acb5016a98af26f4ef24d27a Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman@redhat.com>
+Date: Tue, 11 Feb 2020 15:46:45 +0100
+Subject: [PATCH] Hack to dynamically adapt to __cxa_exceptiom in LLVM 5.0
+ libcxxabi
+
+...for Linux aarch64, similar to 7a9dd3d482deeeb3ed1d50074e56adbd3f928296 "Hack
+to dynamically adapt to __cxa_exceptiom in LLVM 5.0 libcxxabi" for macOS x86-64.
+But unlike on macOS (which is known to always use libcxxabi), be careful to only
+execute the hack in builds targeting libcxxabi.
+
+Change-Id: I5417fde425d2d6bac9400592193a9fe5d2bfe175
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88458
+Tested-by: Jenkins
+Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
+---
+ .../source/cpp_uno/gcc3_linux_aarch64/abi.cxx | 22 +++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx
+index 892bf6e81963..611442a31e31 100644
+--- bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx
++++ bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx
+@@ -136,6 +136,28 @@ std::type_info * getRtti(typelib_TypeDescription const & type) {
+ extern "C" void _GLIBCXX_CDTOR_CALLABI deleteException(void * exception) {
+ __cxxabiv1::__cxa_exception * header =
+ static_cast<__cxxabiv1::__cxa_exception *>(exception) - 1;
++#if defined _LIBCPPABI_VERSION // detect libc++abi
++ // The libcxxabi commit
++ // <http://llvm.org/viewvc/llvm-project?view=revision&revision=303175>
++ // "[libcxxabi] Align unwindHeader on a double-word boundary" towards
++ // LLVM 5.0 changed the size of __cxa_exception by adding
++ //
++ // __attribute__((aligned))
++ //
++ // to the final member unwindHeader, on x86-64 effectively adding a hole of
++ // size 8 in front of that member (changing its offset from 88 to 96,
++ // sizeof(__cxa_exception) from 120 to 128, and alignof(__cxa_exception)
++ // from 8 to 16); a hack to dynamically determine whether we run against a
++ // new libcxxabi is to look at the exceptionDestructor member, which must
++ // point to this function (the use of __cxa_exception in fillUnoException is
++ // unaffected, as it only accesses members towards the start of the struct,
++ // through a pointer known to actually point at the start):
++ if (header->exceptionDestructor != &deleteException) {
++ header = reinterpret_cast<__cxa_exception const *>(
++ reinterpret_cast<char const *>(header) - 8);
++ assert(header->exceptionDestructor == &deleteException);
++ }
++#endif
+ OUString unoName(toUnoName(header->exceptionType->name()));
+ typelib_TypeDescription * td = 0;
+ typelib_typedescription_getByName(&td, unoName.pData);
diff --git a/editors/libreoffice/files/patch-bridges_source_cpp__uno_gcc3__linux__aarch64_cpp2uno.cxx b/editors/libreoffice/files/patch-bridges_source_cpp__uno_gcc3__linux__aarch64_cpp2uno.cxx
new file mode 100644
index 000000000000..1f841530d63f
--- /dev/null
+++ b/editors/libreoffice/files/patch-bridges_source_cpp__uno_gcc3__linux__aarch64_cpp2uno.cxx
@@ -0,0 +1,22 @@
+--- bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx.orig 2020-03-11 17:18:35 UTC
++++ bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx
+@@ -321,9 +321,16 @@ extern "C" void vtableSlotCall(
+ double fpr2, double fpr3, double fpr4, double fpr5, double fpr6,
+ double fpr7, ...)
+ {
+- register void * volatile indirectRet asm ("x8");
+- register sal_Int32 volatile functionIndex asm ("x9");
+- register sal_Int32 volatile vtableOffset asm ("x10");
++ void * volatile indirectRet;
++ sal_Int32 volatile functionIndex, vtableOffset;
++
++ asm volatile(
++ "mov %0, x8\n"
++ "mov %1, x9\n"
++ "mov %2, x10\n"
++ : "=r" (indirectRet), "=r" (functionIndex), "=r" (vtableOffset)
++ ::);
++
+ va_list ap;
+ va_start(ap, fpr7);
+ assert(sizeof (va_list) == sizeof (aarch64_va_list));
diff --git a/editors/libreoffice/files/patch-configure.aarch64 b/editors/libreoffice/files/patch-configure.aarch64
new file mode 100644
index 000000000000..37aa487ce423
--- /dev/null
+++ b/editors/libreoffice/files/patch-configure.aarch64
@@ -0,0 +1,14 @@
+--- configure.orig 2020-04-06 14:49:31.976007000 +0200
++++ configure 2020-04-06 14:50:04.326755000 +0200
+@@ -12532,6 +12532,11 @@ freebsd*)
+ RTL_ARCH=X86_64
+ PLATFORMID=freebsd_x86_64
+ ;;
++ aarch64)
++ CPUNAME=AARCH64
++ PLATFORMID=freebsd_aarch64
++ RTL_ARCH=AARCH64
++ ;;
+ *)
+ as_fn_error $? "Unsupported host_cpu $host_cpu for host_os $host_os" "$LINENO" 5
+ ;;
diff --git a/editors/libreoffice/files/patch-cxa_exception b/editors/libreoffice/files/patch-cxa_exception
new file mode 100644
index 000000000000..007d8f0a6192
--- /dev/null
+++ b/editors/libreoffice/files/patch-cxa_exception
@@ -0,0 +1,98 @@
+From 97d736d27435fb26d5609000f77bd79ece08572e Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman@redhat.com>
+Date: Wed, 18 Dec 2019 10:59:46 +0100
+Subject: [PATCH] Fix typos concerning the __cxa_exception check
+
+...introduced with 069506bcb0ee4005b01c22095ed427b96b553c98 "Use config_cxxabi.h
+to check for __cxa_eh_globals, __cxa_exception", but which appear to have been
+harmless as (a) the checked-for __cxxabiv1::__cxa_exceptions never existed in
+cxxabi.h, and (b) lack of __cxxabiv1::__cxa_exception in cxxabi.h happened to
+conincide with !HAVE_CXXABI_H_CXA_EH_GLOBALS
+
+Change-Id: I13f8a2b3cf0f03f2bc96cf053d2b571860055978
+Reviewed-on: https://gerrit.libreoffice.org/85373
+Tested-by: Jenkins
+Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
+---
+ bridges/source/cpp_uno/gcc3_linux_arm/share.hxx | 2 +-
+ bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx | 2 +-
+ configure.ac | 6 +++---
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git bridges/source/cpp_uno/gcc3_linux_arm/share.hxx bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
+index ac380969e21b..0faa612d92fd 100644
+--- bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
++++ bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
+@@ -60,7 +60,7 @@ public:
+ }
+ #endif
+
+-#if !HAVE_CXXABI_H_CXA_EH_GLOBALS
++#if !HAVE_CXXABI_H_CXA_EXCEPTION
+ namespace __cxxabiv1 {
+ struct __cxa_exception
+ {
+diff --git bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx
+index 864173470476..e8afe35c4f59 100644
+--- bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx
++++ bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx
+@@ -101,7 +101,7 @@ public:
+ }
+ #endif
+
+-#if !HAVE_CXXABI_H_CXA_EH_GLOBALS
++#if !HAVE_CXXABI_H_CXA_EXCEPTION
+ // <https://mentorembedded.github.io/cxx-abi/abi-eh.html>,
+ // libcxxabi/src/cxa_exception.hpp:
+ namespace __cxxabiv1 {
+diff --git configure.ac configure.ac
+index ba5e87ea1641..ad246a64f37a 100644
+--- configure.ac
++++ configure.ac
+@@ -6312,14 +6312,14 @@ if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP([C++])
+
+- AC_MSG_CHECKING([whether $CXX_BASE defines __cxa_exceptions in cxxabi.h])
++ AC_MSG_CHECKING([whether $CXX_BASE defines __cxa_exception in cxxabi.h])
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <cstddef>
+ #include <cxxabi.h>
+- std::size_t f() { return sizeof(__cxxabiv1::__cxa_exceptions); }
++ std::size_t f() { return sizeof(__cxxabiv1::__cxa_exception); }
+ ])], [
+- AC_DEFINE([HAVE_CXXABI_H_CXA_EXCEPTIONS],[1])
++ AC_DEFINE([HAVE_CXXABI_H_CXA_EXCEPTION],[1])
+ AC_MSG_RESULT([yes])
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP([C++])
+
+--- configure.orig 2020-04-09 11:53:22.480526000 +0200
++++ configure 2020-04-09 11:57:59.716479000 +0200
+@@ -17682,8 +17692,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX_BASE defines __cxa_exceptions in cxxabi.h" >&5
+-$as_echo_n "checking whether $CXX_BASE defines __cxa_exceptions in cxxabi.h... " >&6; }
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX_BASE defines __cxa_exception in cxxabi.h" >&5
++$as_echo_n "checking whether $CXX_BASE defines __cxa_exception in cxxabi.h... " >&6; }
+ ac_ext=cpp
+ ac_cpp='$CXXCPP $CPPFLAGS'
+ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -17695,12 +17705,12 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ #include <cstddef>
+ #include <cxxabi.h>
+- std::size_t f() { return sizeof(__cxxabiv1::__cxa_exceptions); }
++ std::size_t f() { return sizeof(__cxxabiv1::__cxa_exception); }
+
+ _ACEOF
+ if ac_fn_cxx_try_compile "$LINENO"; then :
+
+- $as_echo "#define HAVE_CXXABI_H_CXA_EXCEPTIONS 1" >>confdefs.h
++ $as_echo "#define HAVE_CXXABI_H_CXA_EXCEPTION 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
diff --git a/editors/libreoffice/files/patch-python382 b/editors/libreoffice/files/patch-python382
new file mode 100644
index 000000000000..097431c21465
--- /dev/null
+++ b/editors/libreoffice/files/patch-python382
@@ -0,0 +1,114 @@
+From 50ccb7e82b7053306721cbe220323be072306a29 Mon Sep 17 00:00:00 2001
+From: Justin Luth <justin_luth@sil.org>
+Date: Sat, 22 Feb 2020 07:30:15 +0300
+Subject: python 3.8.2 compile: add tp_print to PyTypeObject
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+I couldn't find this documented on the Internet though,
+as the 3.9 and 3.8.2rc documentation didn't mention it
+as an added item...
+
+I'm using Ubuntu 20.04 alpha with python3 --version
+Python 3.8.2rc1
+
+This fixes pyuno/source/module/pyuno.cxx:1689:1: error:
+missing initializer for member ‘_typeobject::tp_print’
+[-Werror=missing-field-initializers]
+
+Change-Id: Idec5720050572b34628267cd94557dabf7edbf3c
+Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89247
+Tested-by: Jenkins
+Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
+---
+ pyuno/source/module/pyuno.cxx | 3 +++
+ pyuno/source/module/pyuno_callable.cxx | 3 +++
+ pyuno/source/module/pyuno_iterator.cxx | 6 ++++++
+ pyuno/source/module/pyuno_runtime.cxx | 3 +++
+ pyuno/source/module/pyuno_struct.cxx | 3 +++
+ 5 files changed, 18 insertions(+)
+
+diff --git pyuno/source/module/pyuno.cxx pyuno/source/module/pyuno.cxx
+index a6a875addc46..bf6e5c667b7c 100644
+--- pyuno/source/module/pyuno.cxx
++++ pyuno/source/module/pyuno.cxx
+@@ -1684,6 +1684,9 @@ static PyTypeObject PyUNOType =
+ , nullptr
+ #if PY_VERSION_HEX >= 0x03080000
+ , nullptr // vectorcallfunc tp_vectorcall
++#if PY_VERSION_HEX >= 0x03080200
++ , 0 //Py_ssize_t tp_print
++#endif
+ #endif
+ #endif
+ };
+diff --git pyuno/source/module/pyuno_callable.cxx pyuno/source/module/pyuno_callable.cxx
+index 9be3e1f1aef8..4803a30f814d 100644
+--- pyuno/source/module/pyuno_callable.cxx
++++ pyuno/source/module/pyuno_callable.cxx
+@@ -235,6 +235,9 @@ static PyTypeObject PyUNO_callable_Type =
+ , nullptr
+ #if PY_VERSION_HEX >= 0x03080000
+ , nullptr // vectorcallfunc tp_vectorcall
++#if PY_VERSION_HEX >= 0x03080200
++ , 0 //Py_ssize_t tp_print
++#endif
+ #endif
+ #endif
+ };
+diff --git pyuno/source/module/pyuno_iterator.cxx pyuno/source/module/pyuno_iterator.cxx
+index a7862857d719..6ba7f96a9632 100644
+--- pyuno/source/module/pyuno_iterator.cxx
++++ pyuno/source/module/pyuno_iterator.cxx
+@@ -168,6 +168,9 @@ static PyTypeObject PyUNO_iterator_Type =
+ , nullptr
+ #if PY_VERSION_HEX >= 0x03080000
+ , nullptr // vectorcallfunc tp_vectorcall
++#if PY_VERSION_HEX >= 0x03080200
++ , 0 //Py_ssize_t tp_print
++#endif
+ #endif
+ #endif
+ };
+@@ -305,6 +308,9 @@ static PyTypeObject PyUNO_list_iterator_Type =
+ , nullptr
+ #if PY_VERSION_HEX >= 0x03080000
+ , nullptr // vectorcallfunc tp_vectorcall
++#if PY_VERSION_HEX >= 0x03080200
++ , 0 //Py_ssize_t tp_print
++#endif
+ #endif
+ #endif
+ };
+diff --git pyuno/source/module/pyuno_runtime.cxx pyuno/source/module/pyuno_runtime.cxx
+index 823355a900da..5182f57ab201 100644
+--- pyuno/source/module/pyuno_runtime.cxx
++++ pyuno/source/module/pyuno_runtime.cxx
+@@ -126,6 +126,9 @@ static PyTypeObject RuntimeImpl_Type =
+ , nullptr
+ #if PY_VERSION_HEX >= 0x03080000
+ , nullptr // vectorcallfunc tp_vectorcall
++#if PY_VERSION_HEX >= 0x03080200
++ , 0 //Py_ssize_t tp_print
++#endif
+ #endif
+ #endif
+ };
+diff --git pyuno/source/module/pyuno_struct.cxx pyuno/source/module/pyuno_struct.cxx
+index 50b74126bee9..56b71cdf5cc4 100644
+--- pyuno/source/module/pyuno_struct.cxx
++++ pyuno/source/module/pyuno_struct.cxx
+@@ -347,6 +347,9 @@ static PyTypeObject PyUNOStructType =
+ , nullptr
+ #if PY_VERSION_HEX >= 0x03080000
+ , nullptr // vectorcallfunc tp_vectorcall
++#if PY_VERSION_HEX >= 0x03080200
++ , 0 //Py_ssize_t tp_print
++#endif
+ #endif
+ #endif
+ };
+--
+cgit v1.2.1
+
diff --git a/editors/libreoffice/files/patch-clang10 b/editors/libreoffice/files/patch-sc_source_core_opencl_formulagroupcl.cxx
index ae24b2160029..d995f1d25eb7 100644
--- a/editors/libreoffice/files/patch-clang10
+++ b/editors/libreoffice/files/patch-sc_source_core_opencl_formulagroupcl.cxx
@@ -1,168 +1,18 @@
---- vcl/inc/unx/saltype.h 2019-12-05 20:59:23.000000000 +0100
-+++ vcl/inc/unx/saltype.h 2020-03-17 18:23:05.585171000 +0100
-@@ -18,8 +18,8 @@
- public:
- explicit SalX11Screen(unsigned int nXScreen) : mnXScreen( nXScreen ) {}
- unsigned int getXScreen() const { return mnXScreen; }
-- bool operator==(const SalX11Screen &rOther) { return rOther.mnXScreen == mnXScreen; }
-- bool operator!=(const SalX11Screen &rOther) { return rOther.mnXScreen != mnXScreen; }
-+ bool operator==(const SalX11Screen &rOther) const { return rOther.mnXScreen == mnXScreen; }
-+ bool operator!=(const SalX11Screen &rOther) const { return rOther.mnXScreen != mnXScreen; }
- };
-
- #endif // INCLUDED_VCL_INC_UNX_SALTYPE_H
---- sd/source/ui/framework/factories/BasicPaneFactory.cxx 2019-12-05 20:59:23.000000000 +0100
-+++ sd/source/ui/framework/factories/BasicPaneFactory.cxx 2020-03-17 20:51:22.331805000 +0100
-@@ -324,7 +324,7 @@
- void SAL_CALL BasicPaneFactory::disposing (
- const lang::EventObject& rEventObject)
- {
-- if (mxConfigurationControllerWeak == rEventObject.Source)
-+ if (mxConfigurationControllerWeak.get() == rEventObject.Source)
- {
- mxConfigurationControllerWeak.clear();
- }
---- sd/inc/OutlinerIterator.hxx 2019-12-05 20:59:23.000000000 +0100
-+++ sd/inc/OutlinerIterator.hxx 2020-03-17 21:20:36.906085000 +0100
-@@ -122,7 +122,7 @@
- @return
- Returns <TRUE/> when both iterators point to the same object.
- */
-- bool operator== (const Iterator& rIterator);
-+ bool operator== (const Iterator& rIterator) const;
- /** Test whether two iterators point to different objects. This is just
- the negation of the result of the equality operator.
- @param rIterator
-@@ -130,7 +130,7 @@
- @return
- Returns <TRUE/> when both iterators point to the different objects.
- */
-- bool operator!= (const Iterator& rIterator);
-+ bool operator!= (const Iterator& rIterator) const;
- /** Reverse the direction of iteration. The position of the iterator is
- not changed. Thus calling this method twice returns to the old state.
- */
---- sd/source/ui/view/OutlinerIterator.cxx.orig 2019-12-05 20:59:23.000000000 +0100
-+++ sd/source/ui/view/OutlinerIterator.cxx 2020-03-17 21:24:11.082383000 +0100
-@@ -110,7 +110,7 @@
- return *this;
- }
-
--bool Iterator::operator== (const Iterator& rIterator)
-+bool Iterator::operator== (const Iterator& rIterator) const
- {
- if (!mxIterator || !rIterator.mxIterator)
- return mxIterator.get() == rIterator.mxIterator.get();
-@@ -118,7 +118,7 @@
- return *mxIterator == *rIterator.mxIterator;
- }
-
--bool Iterator::operator!= (const Iterator& rIterator)
-+bool Iterator::operator!= (const Iterator& rIterator) const
- {
- return ! operator==(rIterator);
- }
---- compilerplugins/clang/simplifybool.cxx 2019-12-05 20:59:23.000000000 +0100
-+++ compilerplugins/clang/simplifybool.cxx 2020-03-17 22:03:11.369300000 +0100
-@@ -241,7 +241,30 @@
- << expr->getSourceRange();
- return true;
- }
-- if (auto binaryOp = dyn_cast<BinaryOperator>(expr->getSubExpr()->IgnoreParenImpCasts())) {
-+ auto sub = expr->getSubExpr()->IgnoreParenImpCasts();
-+ auto reversed = false;
-+#if CLANG_VERSION >= 100000
-+ if (auto const rewritten = dyn_cast<CXXRewrittenBinaryOperator>(sub)) {
-+ if (rewritten->isReversed()) {
-+ if (rewritten->getOperator() == BO_EQ) {
-+ auto const sem = rewritten->getSemanticForm();
-+ bool match;
-+ if (auto const op1 = dyn_cast<BinaryOperator>(sem)) {
-+ match = op1->getOpcode() == BO_EQ;
-+ } else if (auto const op2 = dyn_cast<CXXOperatorCallExpr>(sem)) {
-+ match = op2->getOperator() == OO_EqualEqual;
-+ } else {
-+ match = false;
-+ }
-+ if (match) {
-+ sub = sem;
-+ reversed = true;
-+ }
-+ }
-+ }
-+ }
-+#endif
-+ if (auto binaryOp = dyn_cast<BinaryOperator>(sub)) {
- // Ignore macros, otherwise
- // OSL_ENSURE(!b, ...);
- // triggers.
-@@ -289,7 +312,7 @@
- << binaryOp->getSourceRange();
- }
- }
-- if (auto binaryOp = dyn_cast<CXXOperatorCallExpr>(expr->getSubExpr()->IgnoreParenImpCasts())) {
-+ if (auto binaryOp = dyn_cast<CXXOperatorCallExpr>(sub)) {
- // Ignore macros, otherwise
- // OSL_ENSURE(!b, ...);
- // triggers.
-@@ -301,8 +324,8 @@
- if (!(op == OO_EqualEqual || op == OO_ExclaimEqual))
- return true;
- BinaryOperator::Opcode negatedOpcode = BinaryOperator::negateComparisonOp(BinaryOperator::getOverloadedOpcode(op));
-- auto lhs = binaryOp->getArg(0)->IgnoreImpCasts()->getType()->getUnqualifiedDesugaredType();
-- auto rhs = binaryOp->getArg(1)->IgnoreImpCasts()->getType()->getUnqualifiedDesugaredType();
-+ auto lhs = binaryOp->getArg(reversed ? 1 : 0)->IgnoreImpCasts()->getType()->getUnqualifiedDesugaredType();
-+ auto rhs = binaryOp->getArg(reversed ? 0 : 1)->IgnoreImpCasts()->getType()->getUnqualifiedDesugaredType();
- auto const negOp = findOperator(compiler, negatedOpcode, lhs, rhs);
- if (!negOp)
- return true;
-@@ -323,8 +346,10 @@
- << expr->getSourceRange();
- if (negOp != ASSUME_OPERATOR_EXISTS)
- report(
-- DiagnosticsEngine::Note, "the presumed corresponding negated operator is declared here",
-+ DiagnosticsEngine::Note, "the presumed corresponding negated operator for %0 and %1 is declared here",
- negOp->getLocation())
-+ << binaryOp->getArg(reversed ? 1 : 0)->IgnoreImpCasts()->getType()
-+ << binaryOp->getArg(reversed ? 0 : 1)->IgnoreImpCasts()->getType()
- << negOp->getSourceRange();
- }
- return true;
---- cui/source/tabpages/tpline.cxx 2019-12-05 20:59:23.000000000 +0100
-+++ cui/source/tabpages/tpline.cxx 2020-03-17 22:06:49.493222000 +0100
-@@ -491,7 +491,7 @@
- else if( m_pLineEndList->Count() > static_cast<long>( nPos - 1 ) )
- pItem.reset(new XLineStartItem( m_xLbStartStyle->get_active_text(), m_pLineEndList->GetLineEnd( nPos - 1 )->GetLineEnd() ));
- pOld = GetOldItem( *rAttrs, XATTR_LINESTART );
-- if( pItem && ( !pOld || !( *static_cast<const XLineEndItem*>(pOld) == *pItem ) ) )
-+ if( pItem && ( !pOld || *pOld != *pItem ) )
- {
- rAttrs->Put( *pItem );
- bModified = true;
---- sc/source/ui/view/viewfunc.cxx.orig 2019-12-05 20:59:23.000000000 +0100
-+++ sc/source/ui/view/viewfunc.cxx 2020-03-17 23:58:50.978995000 +0100
-@@ -958,7 +958,7 @@
-
- // this should be intercepted by the pool: ?!??!??
-
-- if (bFrame && rNewOuter == rOldOuter && rNewInner == rOldInner)
-+ if (bFrame && &rNewOuter == &rOldOuter && &rNewInner == &rOldInner)
- bFrame = false;
-
- bFrame = bFrame
---- sc/source/core/opencl/formulagroupcl.cxx 2019-12-05 20:59:23.000000000 +0100
-+++ sc/source/core/opencl/formulagroupcl.cxx 2020-03-18 00:44:08.091710000 +0100
-@@ -1026,9 +1026,6 @@
+https://bugs.gentoo.org/713574
+https://bugs.documentfoundation.org/show_bug.cgi?id=131591
+
+--- sc/source/core/opencl/formulagroupcl.cxx.orig 2020-03-11 16:18:35 UTC
++++ sc/source/core/opencl/formulagroupcl.cxx
+@@ -1026,8 +1026,6 @@ class DynamicKernelMixedArgument : public VectorRef (p
/// Handling a Double Vector that is used as a sliding window input
/// to either a sliding window average or sum-of-products
/// Generate a sequential loop for reductions
-class OpAverage;
-class OpCount;
--
+
template<class Base>
class DynamicKernelSlidingArgument : public Base
- {
-@@ -1335,186 +1332,8 @@
+@@ -1335,186 +1333,8 @@ class ParallelReductionVectorRef : public Base (public
}
/// Emit the definition for the auxiliary reduction kernel
@@ -350,7 +200,7 @@
virtual std::string GenSlidingWindowDeclRef( bool ) const
{
std::stringstream ss;
-@@ -1527,195 +1346,10 @@
+@@ -1527,195 +1347,10 @@ class ParallelReductionVectorRef : public Base (public
/// Controls how the elements in the DoubleVectorRef are traversed
size_t GenReductionLoopHeader(
@@ -548,10 +398,11 @@
~ParallelReductionVectorRef()
{
if (mpClmem2)
-@@ -2314,6 +1948,380 @@
- }
- virtual std::string BinFuncName() const override { return "fsop"; }
+@@ -2324,6 +1959,379 @@ struct SumIfsArgs
+ cl_mem mCLMem;
+ double mConst;
};
++}
+
+template<class Base>
+void ParallelReductionVectorRef<Base>::GenSlidingWindowFunction( std::stringstream& ss )
@@ -826,7 +677,7 @@
+ // set work group size and execute
+ size_t global_work_size[] = { 256, static_cast<size_t>(w) };
+ size_t const local_work_size[] = { 256, 1 };
-+ SAL_INFO("sc.opencl", "Enqueuing kernel " << redKernel);
++ SAL_INFO("sc.opencl", "Enqueing kernel " << redKernel);
+ err = clEnqueueNDRangeKernel(kEnv.mpkCmdQueue, redKernel, 2, nullptr,
+ global_work_size, local_work_size, 0, nullptr, nullptr);
+ if (CL_SUCCESS != err)
@@ -884,7 +735,7 @@
+ // set work group size and execute
+ size_t global_work_size1[] = { 256, static_cast<size_t>(w) };
+ size_t const local_work_size1[] = { 256, 1 };
-+ SAL_INFO("sc.opencl", "Enqueuing kernel " << redKernel);
++ SAL_INFO("sc.opencl", "Enqueing kernel " << redKernel);
+ err = clEnqueueNDRangeKernel(kEnv.mpkCmdQueue, redKernel, 2, nullptr,
+ global_work_size1, local_work_size1, 0, nullptr, nullptr);
+ if (CL_SUCCESS != err)
@@ -924,8 +775,6 @@
+ if (CL_SUCCESS != err)
+ throw OpenCLError("clSetKernelArg", err, __FILE__, __LINE__);
+ return 1;
-+}
-+
- namespace {
- struct SumIfsArgs
- {
+ }
+
+ /// Helper functions that have multiple buffers
diff --git a/editors/libreoffice/files/patch-solenv_gbuild_platform_FREEBSD__AARCH64__GCC.mk b/editors/libreoffice/files/patch-solenv_gbuild_platform_FREEBSD__AARCH64__GCC.mk
new file mode 100644
index 000000000000..860ca6fa9855
--- /dev/null
+++ b/editors/libreoffice/files/patch-solenv_gbuild_platform_FREEBSD__AARCH64__GCC.mk
@@ -0,0 +1,17 @@
+--- solenv/gbuild/platform/FREEBSD_AARCH64_GCC.mk.orig 2020-04-07 17:58:54.600930000 +0200
++++ solenv/gbuild/platform/FREEBSD_AARCH64_GCC.mk 2020-04-07 18:01:04.452566000 +0200
+@@ -0,0 +1,14 @@
++# -*- 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
++
++include $(GBUILDDIR)/platform/unxgcc.mk
++
++# vim: set noet sw=4:
diff --git a/editors/libreoffice/files/patch-vcl_qt5_Qt5Instance.cxx b/editors/libreoffice/files/patch-vcl_qt5_Qt5Instance.cxx
deleted file mode 100644
index 157916f80dcb..000000000000
--- a/editors/libreoffice/files/patch-vcl_qt5_Qt5Instance.cxx
+++ /dev/null
@@ -1,11 +0,0 @@
---- vcl/qt5/Qt5Instance.cxx.orig 2019-08-21 22:22:13.996160000 +0800
-+++ vcl/qt5/Qt5Instance.cxx 2019-08-21 22:30:33.169056000 +0800
-@@ -413,7 +413,7 @@
- {
- SolarMutexGuard g;
- Qt5FilePicker* pPicker;
-- RunInMainThread(std::function([&, this]() { pPicker = createPicker(context, eMode); }));
-+ RunInMainThread([&, this]() { pPicker = createPicker(context, eMode); });
- assert(pPicker);
- return pPicker;
- }
diff --git a/editors/libreoffice/files/patch-vcl_source_app_salplug.cxx b/editors/libreoffice/files/patch-vcl_source_app_salplug.cxx
new file mode 100644
index 000000000000..6637a0ab3466
--- /dev/null
+++ b/editors/libreoffice/files/patch-vcl_source_app_salplug.cxx
@@ -0,0 +1,19 @@
+--- vcl/source/app/salplug.cxx.orig 2020-05-27 12:17:53 UTC
++++ vcl/source/app/salplug.cxx
+@@ -152,6 +152,7 @@ SalInstance* autodetect_plugin()
+ #if ENABLE_KF5
+ "kf5",
+ #endif
++ "qt5",
+ #if ENABLE_GTK3_KDE5
+ "gtk3_kde5",
+ #endif
+@@ -160,7 +161,7 @@ SalInstance* autodetect_plugin()
+
+ static const char* const pStandardFallbackList[] =
+ {
+- "gtk3", "gen", nullptr
++ "gtk3", "qt5", "gen", nullptr
+ };
+
+ #ifdef HEADLESS_VCLPLUG
diff --git a/editors/libreoffice/files/patch-vcl_unx_generic_app_geninst.cxx b/editors/libreoffice/files/patch-vcl_unx_generic_app_geninst.cxx
index 239e8fbc7eb0..ad601826260a 100644
--- a/editors/libreoffice/files/patch-vcl_unx_generic_app_geninst.cxx
+++ b/editors/libreoffice/files/patch-vcl_unx_generic_app_geninst.cxx
@@ -1,19 +1,14 @@
---- vcl/unx/generic/app/geninst.cxx.orig 2019-08-07 01:26:35.000000000 +0800
-+++ vcl/unx/generic/app/geninst.cxx 2019-08-08 20:11:15.760468000 +0800
-@@ -22,11 +22,8 @@
- #include <cassert>
- #include <string.h>
- #include <stdlib.h>
+--- vcl/unx/generic/app/geninst.cxx.orig 2019-12-18 18:16:42.000000000 +0800
++++ vcl/unx/generic/app/geninst.cxx 2020-01-03 16:10:17.974216000 +0800
+@@ -18,6 +18,7 @@
+ */
+
+ #include <sal/config.h>
+#include <sys/utsname.h>
--#if defined(LINUX)
--# include <stdio.h>
--#endif
--
- #include <osl/module.hxx>
- #include <comphelper/solarmutex.hxx>
- #include <config_features.h>
-@@ -54,30 +51,22 @@
+ #if defined(LINUX)
+ # include <stdio.h>
+@@ -48,30 +49,22 @@
OUString SalGenericInstance::getOSVersion()
{
diff --git a/editors/libreoffice/files/patch-vcl_unx_kde5_kde5salinstance.cxx b/editors/libreoffice/files/patch-vcl_unx_kde5_kde5salinstance.cxx
deleted file mode 100644
index 7568905392b8..000000000000
--- a/editors/libreoffice/files/patch-vcl_unx_kde5_kde5salinstance.cxx
+++ /dev/null
@@ -1,23 +0,0 @@
---- vcl/unx/kde5/KDE5SalInstance.cxx.orig
-+++ vcl/unx/kde5/KDE5SalInstance.cxx
-@@ -43,9 +43,9 @@
- SalFrame* KDE5SalInstance::CreateFrame(SalFrame* pParent, SalFrameStyleFlags nState)
- {
- SalFrame* pRet(nullptr);
-- RunInMainThread(std::function([&pRet, pParent, nState]() {
-+ RunInMainThread([&pRet, pParent, nState]() {
- pRet = new KDE5SalFrame(static_cast<KDE5SalFrame*>(pParent), nState, true);
-- }));
-+ });
- assert(pRet);
- return pRet;
- }
-@@ -65,7 +65,7 @@
- {
- SolarMutexGuard g;
- Qt5FilePicker* pPicker;
-- RunInMainThread(std::function([&, this]() { pPicker = createPicker(context, eMode); }));
-+ RunInMainThread([&, this]() { pPicker = createPicker(context, eMode); });
- assert(pPicker);
- return pPicker;
- }