Commit Graph
39 Commits
Author SHA1 Message Date
Khaled Hosny 40e43ae633 No need to fiddle with ICU UChar typedef anymore
The affected external dependencies should be building with c++11 by now
already.

Change-Id: I0d1f8aed6ed28f510f456a368b724c3c4eeb3240
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153389
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
2023-06-21 16:59:39 +02:00
Stephan Bergmann 7e30d78402 Adapt to LLVM 15 trunk libc++ dropping std::unary_/binary_function
...for C++17 and beyond with
<https://github.com/llvm/llvm-project/commit/681cde7dd8b5613dbafc9ca54e0288477f946be3>
"[libc++] Complete the implementation of N4190".  (Unless explicitly opted-in
with _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION.  This is similar to the
MSVC standard library needing _HAS_AUTO_PTR_ETC=1 to enable those zombie
functions for quite some time now.  Only libstdc++ still supports them
unconditionally.)

Most uses of those zombie functions across LibreOffice itself and the bundled
external/* are indirectly within Boost include files.  And many (but not all) of
those Boost include files only use those zombie functions conditionally, based
on BOOST_NO_CXX98_FUNCTION_BASE.  For the (Dinkumware-derived) MSVC standard
library, workdir/UnpackedTarball/boost/boost/config/stdlib/dinkumware.hpp
already defined BOOST_NO_CXX98_FUNCTION_BASE.  So add a patch to define that
also in workdir/UnpackedTarball/boost/boost/config/stdlib/libcpp.hpp (for all of
C++11 and beyond, even if those functions were still available as deprecated in
C++11 and C++14, but which shouldn't make a difference with our C++17 baseline
anyway; only make sure that things still work if those Boost include files ever
get used by code built with gb_CXX03FLAGS).  (Patching our bundled
external/boost of course doesn't help when building with such a new libc++ and
--with-system-boost against an unpatched Boost, but lets consider that "not my
problem".  Also, one could always use a sledgehammer like passing
CPPFLAGS=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION into gbuild in
such a case.)

Then there are two places that include boost/multi_array.hpp, which indirectly
includes workdir/UnpackedTarball/boost/boost/functional.hpp, which still uses
those zombie functions for non-MSVC builds (at least in the bundled
Boost 1.79.0).  Lets do a targeted
_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION in those cases.
(Alternatively, we could patch
workdir/UnpackedTarball/boost/boost/functional.hpp.  Also, I decided to make
loplugin:reservedid support the new suppression mechanism, rather than extending
its existing ignorelist even further.)

And then there is external/clucene using those zombie functions even outside of
a Boost include file, so extend the existing hack there that was already needed
for MSVC.  (And adapt the accompanying comment:  For one, we are unconditionally
"in C++17 mode" by now.  And for another, the exact places where
external/clucene uses those functions have apparently changed over time.)

Change-Id: Id0eec3bedcfddae86b16d33c02c7b5d3b3f8a16f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136579
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-29 10:08:25 +02:00
Luboš Luňák 1ffd6897dd try to use also proper debug LDFLAGS for externals libraries
This is basically ea68de2968 but
for LDFLAGS. A number of external libs cannot use this because
their libtool mishandles -fuse-ld.

Change-Id: Idee379eb0a3afb475b536519ee3de064b4e218f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133639
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-05-01 05:47:22 +02:00
Luboš Luňák ea68de2968 use gb_DEBUGINFO_FLAGS consistently in gbuild ExternalProject's
A number of them didn't use it at all, others had it hand-written
in various ways.

Change-Id: Iaf86325f9cdc032926bac917dc3eef4e34661544
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132818
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-04-12 13:57:32 +02:00
Jan-Marek Glogowski 4537886ec1 externals: always provide platform configure flags
No idea why we just provided the platform flags when cross-
compiling. In the curious case, where the host platform is
detected as x86_64-pc-mingw32 per default and we actually
want to override it with x86_64-pc-cygwin, we don't do a
cross compile, but must override the host platform.

But there is additional special handling needed for the omitted
cross-platform build in the special case of --host=i686-pc-cygwin
and --build=x86_64-pc-cygwin, where we deliberatly ignore cross
building; Windows is already a slow build, so try to keep this
optimization (AMD64 can execute x86 binaries).

There is the theoretical case, where the externals config.guess
would have detected something else and that "magically" even
worked, while the LO detected triplet would fail, but this
should be fixed in the external in any way.

Change-Id: Ib7a9719e0e406fe90334b7611dc3f01b51692bfa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129153
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-01-31 10:31:04 +01:00
Jan-Marek Glogowski 8a4173987e WASM: add initial support for Emscripten cross build
- configure with:
- --host=wasm64-local-emscripten
- had to make a few externals optional, so adding:
  - --disable-nss
  - --disable-cmis
  - --disable-curl

Change-Id: I48d1c73d2675ad2e2beaf2c341578199efbd24ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111130
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-05-05 21:14:54 +02:00
Luboš Luňák 0adc9b615f GBUILD_TRACE, support for finding out where the build time is spent
See instructions in solenv/gbuild/Trace.mk . This generates a file than
can be viewed e.g. in the Chromium tracing view.

Change-Id: I5f90647c58ca729375525b6daed2d4918adc8188
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88754
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-02-16 14:49:45 +01:00
Stephan Bergmann 28e028680b Remove legacy NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY support
...for ASan/UBSan builds using Clang older than current trunk twoards Clang 9,
as announced at
<https://lists.freedesktop.org/archives/libreoffice/2019-May/082654.html> "Re:
[Libreoffice-commits] core.git: The -fvisibility-ms-compat hack is no longer
needed for UBSan on Linux...".  (And drop the no longer needed
solenv/sanitizers/asan-suppressions, which people might still reference from
their ASAN_OPTIONS.)

Change-Id: Iedc0c5955366d2cbe7dc847990e2b1576750e85b
Reviewed-on: https://gerrit.libreoffice.org/72493
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-20 13:31:50 +02:00
Stephan Bergmann 895a56d789 Mark external/libmspub/stdint.patch as sent upstream
Change-Id: Ib04a69528bf12ab1f549b94413ff7c42b5008482
Reviewed-on: https://gerrit.libreoffice.org/73825
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-12 07:51:48 +02:00
Stephan Bergmann d0e38b8f1e external/libmspub: missing include
Change-Id: I446b26b3c0ffd0d62178f374b570c9fbd1885dd4
Reviewed-on: https://gerrit.libreoffice.org/73813
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-11 15:01:21 +02:00
Stephan Bergmann 9a7aa3326d The -fvisibility-ms-compat hack is no longer needed for UBSan on Linux...
...with latest Clang trunk towards Clang 9.  All the no-longer necessary hacks
are made conditional on new NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY, which is
still set for UBSan builds with older Clang on Linux (but which should
eventually be purged).

Various classes needed additional SAL_DLLPUBLIC_RTTI annotations, as building
with UBSan instrumentation can generate references to RTTI symbols from
additional places like outside a dynamic library that used to hide those symbols
by default (but used to not hide them for old UBSan builds thanks to the
-fvisibility-ms-compat hack).

The odr-violation suppressions in solenv/sanitizers/asan-suppressions (which is
not referenced from anywhere in the code base, but meant to be included in an
ASan/UBSan build's ASAN_OPTIONS env var) are also no longer needed when
NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY is false.

Change-Id: I24ec3e388b0cbab50dbe2bf008d9569bff7bf25a
Reviewed-on: https://gerrit.libreoffice.org/70829
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-03 13:46:25 +02:00
Christian Lohmaier d2e547c82d libmspub: fix build for android-arm with debug enabled
Change-Id: I2fff80f2e4a0bd1946c9b49d46871245f93bbb3e
2018-04-07 19:36:43 +02:00
jan Iversen 7c026c92b6 libmspub, add update of config.sub
Change-Id: Ia843520afae808fc8ed7dec6ae017400720394e7
2018-01-04 23:04:36 +01:00
David Tardon a3488acbeb upload libmspub 0.1.3
Change-Id: I1f759bf914e4a61fc943098f04661789d374ffdb
Reviewed-on: https://gerrit.libreoffice.org/47256
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
2018-01-02 16:58:13 +01:00
Stephan Bergmann 90d2155912 Work around latest Boost 1.65.1 still using deprecated std::auto_ptr
...in various places, which is gone by default at least from recent libc++ in
C++17 mode.  So bring it back there for now, until Boost is fixed.

Change-Id: I0b3128d114ab2b5693a84bdc7d2b9b9b9b5c3c76
Reviewed-on: https://gerrit.libreoffice.org/45910
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-12-06 07:26:31 +01:00
David Tardon ba27efc27f libmspub: pass optimization flags to configure
Change-Id: I2107bee3122bb7535d097061fd433f1fc998741e
Reviewed-on: https://gerrit.libreoffice.org/43995
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
2017-10-29 08:30:13 +01:00
David Tardon f2db08b28e use the new gbuild way to update config.*
Change-Id: I43805ac8c3d5c1b65519da02c3cc50fdb9729ea6
Reviewed-on: https://gerrit.libreoffice.org/42941
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
2017-10-04 08:12:43 +02:00
Stephan Bergmann 94c548ac64 external/libmspub: Update config.{guess,sub}
...with versions of those files from the latest
<http://ftp.gnu.org/gnu/automake/automake-1.15.tar.xz>.

The current versions would fail for Flathub aarch64 builds.

Change-Id: I4b42fa7c04f0570b31170b72d8a42786ae1dc252
2017-09-26 09:33:45 +02:00
jan Iversen 3d926f17f2 iOS, patch libmspub
support for arm64

Change-Id: Ife7a806bf8fff02c98f7c36bf831c1a9f52cd98d
2017-06-13 14:12:02 +02:00
Eike Rathke fabad007c6 Upgrade to ICU 59.1
Also regenerated all patches using make icu.genpatch (hence the .1
suffix that indicates the path level) as some hunks did not apply anyway
and all now have the correct offset. Using genpatch may have the future
benefit to yield smaller diffs between different versions of patches.
Also prefixed all patch names with icu4c- for a cleaner listing.
New patches introduced are prefixed with icu4c-59-...

Change-Id: Ia83754b0823839887fce1a1d4ed04f8375b113c2
Reviewed-on: https://gerrit.libreoffice.org/36809
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
2017-04-26 19:48:18 +02:00
David Tardon d132f85fad add upstream URL to READMEs
Change-Id: I9cde5f94c81c59ff99b8f5af9765b94b6f57184a
2017-02-23 14:50:14 +01:00
Michael Stahl e355e54f2f configure: set BOOST_CPPFLAGS also in --without-system-boost case
Simplify the makefiles.

Change-Id: Ia695961e936e4a1ffdaff73eb56adc3c3905ed0c
2016-05-30 09:45:43 +02:00
Stephan Bergmann ba8a957bfa Generalize COM_GCC_IS_CLANG -> COM_IS_CLANG
...in anticipation of building with clang-cl.exe on Windows

Change-Id: I1d723c9d3b5ca8a2bc6b27ef0189a7b053581398
Reviewed-on: https://gerrit.libreoffice.org/19928
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2015-11-12 17:37:11 +00:00
David Tardon f5d753201d blind attempt to fix lcov
Change-Id: If8d6c8da1be1e540d641f20ac90e7877feae27be
2015-09-17 20:02:12 +02:00
David Ostrovsky e00a3a684e core: fix build with system boost 1.59
9a6cdce37e was trying to fix the problem
with exposing deprecated vars and functions in system's error_code.hpp
include file by patching bundled boost version.  This approach would
only make sense, when upstream version is going to be fixed ASAP. Apply
another approach, and follow the same pattern as applied in external
libraries, by defining

  -DBOOST_ERROR_CODE_HEADER_ONLY \
  -DBOOST_SYSTEM_NO_DEPRECATED

instead of patching bundled boost version.  This way, the code would
work with unpatched system boost 1.59 final as well.

Change-Id: I8684ca458ea4a5b7d7c3c3acfe7c14a6d19bc665
Reviewed-on: https://gerrit.libreoffice.org/18201
Reviewed-by: David Ostrovsky <david@ostrovsky.org>
Tested-by: David Ostrovsky <david@ostrovsky.org>
2015-09-01 07:51:43 +00:00
Norbert Thiebaud a8db357874 gbuild/config stop using VERBOSE, use only verbose=t
configure.ac was setting VERBOSE=YES/NO when really
we use verbose=t or verbose=

Change-Id: I47aee8d177cb2d788a62ecdbbb9cc3695c2bb299
Reviewed-on: https://gerrit.libreoffice.org/17634
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
2015-08-11 04:34:45 +00:00
Stephan Bergmann f0aa1a78fb For Clang -fsanitize=vptr use -fvisibility-ms-compat, not -fvisibility=hidden
As discussed in b4f6b26b5a "SAL_DLLPUBLIC_RTTI for
proper RTTI visibility for LLVM," RTTI-based -fsanitize= checks with Clang on
Linux need special precautions to make RTTI symbols visible across DSOs.  The
approach taken there, as well as in 598d8194b0
"Visible function type RTTI for Clang -fsanitize=function," was to add explicit
SAL_DLLPUBLIC_RTTI annontations to relevant type definitions.  However, for
-fsanitize=vptr that would have required many more of those, so it appears
easier to "misuse" -fsanitize-ms-compat in that case, which happens to give all
RTTI symbols default visibility (while otherwise still honoring our
SAL_DLLPUBLIC/PRIVATE annotations).

The SAL_DLLPUBLIC_RTTI annotations from 598d8194b0
"Visible function type RTTI for Clang -fsanitize=function" can likely be removed
again.

Change-Id: Ibeff7ab8c908111a7dc66ff0677204f112b24db8
2015-02-27 10:05:22 +01:00
Stephan Bergmann 7340bec472 external/libmspub: Work around -fsanitize=enum
Change-Id: Icf1d45b1cd171e868a15f841258c5368a0b213e1
2015-01-13 11:13:40 +01:00
Christian Lohmaier 2116f1cfb3 libmspub depends on zlib
Change-Id: I3024693698f85ef1c2bbb7fb6ee968a0d5ba6359
2014-12-19 04:16:02 +01:00
Stephan Bergmann 904f9284a2 More passing of MAKE into external configure
...like 2fdf78109e "Pass MAKE into
external/poppler's configure"

Change-Id: I4e2f1a13d120a7398fa81884710c589bb905714d
2014-11-13 16:56:20 +01:00
Michael Stahl 1413b6a4fd external: fortunately boost no longer requires config_host.mk
Change-Id: I8f2176500bf620cd5e4cdf434e6122b6163b3e0f
2014-11-10 15:08:29 +01:00
Stephan Bergmann 6bc81d4e78 Simplify some $ENABLE_DEBUG expressions
Change-Id: I9f60fd317f3a2995a182d51d06059bd994cf837c
2014-08-29 17:14:53 +02:00
Stephan Bergmann 2426e72dba Pass --enable-debug also down to external/libmspub
Change-Id: I76f834dea9aebbdef6cdb240e0a2f1ac49217f5e
2014-08-29 14:38:33 +02:00
David Tardon 48c9d7ac7c rebase all import libs
Change-Id: I9e1fc613816c943f4fb1033185e34e3acf317f1d
2014-05-26 18:49:04 +02:00
Michael Stahl d729d169de normalize values of CROSS_COMPILING
Change-Id: I0cc43cef91e3fcd82a3558a16ab0afbd4d56b141
2014-02-27 18:09:01 +01:00
Michael Stahl adddbbc4c6 normalize values of SYSTEM_BOOST
Change-Id: I2fce6545d7f279e0e2d6f3ff53eee1ab82314135
2014-02-12 09:53:10 +01:00
Michael Stahl 7b3c67e69a libmspub: fix the quoting
Change-Id: I448d7ec788ed93c71d67ea6785ec8c463a936971
2013-11-14 22:55:07 +01:00
Michael Stahl 2b24bf2369 more externals need config_host for boost
Change-Id: I0cfb09240a2e525cbd57b099b6e52eeabcc57d3f
2013-11-14 21:53:44 +01:00
Khaled Hosny 1359fba530 fdo#70393: move libmspub to a subdir of external
Change-Id: Ib93e41b2ebd7f466c28e6a52ea6ad16dd216642e
Reviewed-on: https://gerrit.libreoffice.org/6331
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
2013-10-19 07:35:24 +00:00