22 Commits
Author SHA1 Message Date
Xisco Fauli cd7277347a libqxp: upgrade to 0.0.3
Generated with:
./autogen.sh
./configure
make dist-xz

Change-Id: I2f892c7e5ffcfb4dd6c68d57c45a915165145fd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205710
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-05-26 16:38:50 +02:00
Xisco Fauli 174d1d3f3b libqxp: fix copy&paste path
Since
commit 05aedcba66
Author: Stephan Bergmann <sbergman@redhat.com>
Date:   Thu Jan 21 23:19:20 2021 +0100

    Fix use of -fvisibility=hidden with Clang in external/libcdr, external/libqxp

Change-Id: Idb97eaea30f5a2b15379b18981455532de0308b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177330
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-11-26 15:01:22 +01:00
Christian Lohmaier 3c54cb2a9d add MSYS_NO_PATHCONV=1 to prevent MSYS auto-magic
git-bash/MSYS tries to resolve anything that looks like a path (i.e.
anything starting with a /) - if the "target" doesn't exists, it just
prepends the MSYS installation dir and breaks all kind of stuff.
You could escape those with double-slash at the beginning, but that
would mean lots of noise/unnecessary changes in pretty much every
makefile, so just getting rid of that behavior is much better.

ant and some externals however rely on MSYS path-conversion, so unset
MSYS_NO_PATHCONV for those. Ant does its own checks whether it
runs under cygwin or msys, and easier to please externals using the
autoconversion than to add patches to force them into compliance…

Change-Id: Ie80964e40c53ace80adb4707aae0db63ebc4ee4c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166330
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-04-26 14:00:35 +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
Stephan Bergmann 05aedcba66 Fix use of -fvisibility=hidden with Clang in external/libcdr, external/libqxp
At least on macOS x86-64 you get a warning

> [build LNK] Library/libwpftdrawlo.dylib
> ld: warning: direct access in function 'std::__1::__shared_ptr_pointer<librevenge::RVNGInputStream*, std::__1::shared_ptr<librevenge::RVNGInputStream>::__shared_ptr_default_delete<librevenge::RVNGInputStream, librevenge::RVNGInputStream>, std::__1::allocator<librevenge::RVNGInputStream> >::__get_deleter(std::type_info const&) const' from file 'workdir/UnpackedTarball/libzmf/src/lib/.libs/libzmf-0.0.a(ZMFDocument.o)' to global weak symbol 'typeinfo for std::__1::shared_ptr<librevenge::RVNGInputStream>::__shared_ptr_default_delete<librevenge::RVNGInputStream, librevenge::RVNGInputStream>' from file 'workdir/UnpackedTarball/libcdr/src/lib/.libs/libcdr-0.1.a(CDRDocument.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

The reason is that libzmf uses -fvisibility=hidden and generates

> $ nm -m workdir/UnpackedTarball/libzmf/src/lib/.libs/libzmf-0.0.a | grep __ZTINSt3__110shared_ptrIN10librevenge15RVNGInputStreamEE27__shared_ptr_default_deleteIS2_S2_EE
> 0000000000006dd8 (__DATA,__const) weak private external __ZTINSt3__110shared_ptrIN10librevenge15RVNGInputStreamEE27__shared_ptr_default_deleteIS2_S2_EE

while libcdr erroneously does not use -fvisibility=hidden and generates

> $ nm -m workdir/UnpackedTarball/libcdr/src/lib/.libs/libcdr-0.1.a | grep __ZTINSt3__110shared_ptrIN10librevenge15RVNGInputStreamEE27__shared_ptr_default_deleteIS2_S2_EE
> 00000000000072b8 (__DATA,__const) weak external __ZTINSt3__110shared_ptrIN10librevenge15RVNGInputStreamEE27__shared_ptr_default_deleteIS2_S2_EE

The reason for that error is as follows:
workdir/UnpackedTarball/libcdr/configure.ac uses, among other things, the result
of

  AX_GCC_FUNC_ATTRIBUTE([visibility])

when deciding whether to use -fvisibility=hidden.  And the old ("serial 5")
workdir/UnpackedTarball/libcdr/m4/ax_gcc_func_attribute.m4 decides "no" if its
test compilation generates any warning output.  But Clang on macOS generates

> conftest.cpp:34:56: warning: target does not support 'protected' visibility; using 'default' [-Wunsupported-visibility]
>                     int foo_pro( void ) __attribute__((visibility("protected")));
>                                                        ^

and lots of

> conftest.cpp:2:9: warning: macro is not used [-Wunused-macros]
> #define PACKAGE_NAME "libcdr"
>         ^

(because of -Wunused-macros set for Clang in
solenv/gbuild/platform/com_GCC_defs.mk).

Same issue with external/libqxp, which would cause

> [LNK] Library/libwpftdrawlo.dylib
> ld: warning: direct access in function 'std::__1::__shared_ptr_pointer<librevenge::RVNGInputStream*, std::__1::shared_ptr<librevenge::RVNGInputStream>::__shared_ptr_default_delete<librevenge::RVNGInputStream, librevenge::RVNGInputStream>, std::__1::allocator<librevenge::RVNGInputStream> >::__get_deleter(std::type_info const&) const' from file 'workdir/UnpackedTarball/libcdr/src/lib/.libs/libcdr-0.1.a(CDRDocument.o)' to global weak symbol 'typeinfo for std::__1::shared_ptr<librevenge::RVNGInputStream>::__shared_ptr_default_delete<librevenge::RVNGInputStream, librevenge::RVNGInputStream>' from file 'workdir/UnpackedTarball/libqxp/src/lib/.libs/libqxp-0.0.a(QXPMacFileParser.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

<http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commitdiff;
h=df0894ad1a8195df67a52108b931e07d708cec9a> "ax_gcc_func_attribute: Revise the
detection of unknown attributes", even though it was apparently meant to fix
something different, nicely fixes this Clang issue, making AX_GCC_FUNC_ATTRIBUTE
correctly detect support for visibility now.

When building with Clang on Linux, there is no -Wunsupported-visibility about
__attribute__((visibility("protected"))), but all the -Wunused-macros are
present as well, which caused all the AX_GCC_FUNC_ATTRIBUTE checks to be mis-
detected as "no" there, too.

There are more uses of AX_GCC_FUNC_ATTRIBUTE in
workdir/UnpackedTarball/libcdr/configure.ac and
workdir/UnpackedTarball/libqxp/configure.ac, and there are many more
workdir/UnpackedTarball/*/m4/ax_gcc_func_attribute.m4 in other external projects,
all of which may cause similar AX_GCC_FUNC_ATTRIBUTE mis-detections.  However,
they do not cause any noticeable traces like the "direct access" ld warning here,
so I left those alone for now.  (Ultimately, all the upstream external projects
should probably deploy the latest version of ax_gcc_func_attribute.m4 from
<http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;
f=m4/ax_gcc_func_attribute.m4>.)

Change-Id: Ia0560cace770ec7da9ee390566a01a5c592f9209
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109774
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-22 07:31:49 +01: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
Christian Lohmaier ae03c889c9 libcdr & libqxp: follow main configure's --diable-dependency-tracking
Change-Id: I363a02d7115ea54bb4aedb38071a249e145ee471
Reviewed-on: https://gerrit.libreoffice.org/72742
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2019-05-23 11:33:43 +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
jan Iversen 90c22bf8a1 libqxp, add update of config.sub
Change-Id: I4999be84c45fa32d0ae6f62f667b2c7470972f49
2018-01-04 23:04:36 +01:00
David Tardon c576312aa6 upload libqxp 0.0.1
Change-Id: I44f94ea59e2b7a7f9fb5c2c74268fbe4601936b3
Reviewed-on: https://gerrit.libreoffice.org/47258
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
2018-01-02 20:41:02 +01:00
David Tardon 9ea8686d35 libqxp: pass optimization flags to configure
Change-Id: I16586e206bef696023a124fb69b28c1bd92d0cff
Reviewed-on: https://gerrit.libreoffice.org/44001
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
2017-10-29 08:29:43 +01:00
David Tardon 6eecca40aa BOOST_CPPFLAGS is already set correctly by configure
Change-Id: I5c3b87352fad9fff42075a81e921c03e1dcb7bdc
Reviewed-on: https://gerrit.libreoffice.org/44000
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
2017-10-28 19:20:31 +02:00
David Tardon ecfad3d98e zlib is not needed
Change-Id: Ic203e81932913a3a79fe61fa9a8a0f3dc2ef6e43
Reviewed-on: https://gerrit.libreoffice.org/43999
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
2017-10-28 19:19:44 +02: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
jan Iversen b63cbdaec5 iOS, update libqxp to allow arm64
Added iOS patch for arm64

Change-Id: I5a7c3b6d68df6fa8202c04d9a710e4a611b49b99
2017-09-06 13:04:46 +02:00
Miklos Vajna c6c6a7091f libqxp: work around Android build
Till we can't switch to a proper standard C++ library there.

Change-Id: Ida62af07d9f843426d875f93c6795dc6cdecc303
2017-08-28 10:26:19 +02:00
David Tardon 2539d5b39a blind attempt to fix windows build error
Change-Id: I88b32543af58dc6f917348b19a0d0d3d50fc8ffe
2017-08-28 09:00:14 +02:00
Aleksas Pantechovskis e59b5b1fc7 integrate libqxp
Change-Id: Ic7479b82d09c1e36d28267434a77bf4bc158adfa
Reviewed-on: https://gerrit.libreoffice.org/41612
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
2017-08-28 08:20:47 +02:00