summaryrefslogtreecommitdiff
path: root/external/libcdr
AgeCommit message (Collapse)Author
2024-04-26add MSYS_NO_PATHCONV=1 to prevent MSYS auto-magicChristian Lohmaier
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>
2022-05-01try to use also proper debug LDFLAGS for externals librariesLuboš Luňák
This is basically ea68de2968c0dbcd8e7549435e829db06795c16d 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-04-12use gb_DEBUGINFO_FLAGS consistently in gbuild ExternalProject'sLuboš Luňák
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-01-31externals: always provide platform configure flagsJan-Marek Glogowski
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>
2021-05-05WASM: add initial support for Emscripten cross buildJan-Marek Glogowski
- 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-03-30upload libcdr 0.1.7David Tardon
Change-Id: Ie01fdee7379c398fe7df7c140e2f0059bea71abe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113380 Tested-by: Jenkins Reviewed-by: David Tardon <dtardon@redhat.com>
2021-01-22Fix use of -fvisibility=hidden with Clang in external/libcdr, external/libqxpStephan Bergmann
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>
2020-11-17Update to ICU 68.1Eike Rathke
Also made it necessary to adapt two places in libcdr and libebook that used UBool TRUE which is gone now to use standard true instead. Change-Id: I1c1df3030f8b883bec6045756907ee0b78060382 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105964 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-02-16GBUILD_TRACE, support for finding out where the build time is spentLuboš Luňák
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-08upload libcdr 0.1.6David Tardon
Change-Id: I569f8ed92358982edbc419a6b687652ffd4fcb14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88236 Tested-by: Jenkins Reviewed-by: David Tardon <dtardon@redhat.com>
2019-09-20Remove legacy NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY supportStephan Bergmann
...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-05-29external/libcdr: Avoid UB converting from double to int via unsignedStephan Bergmann
Opening cdr/fdo53278-4.cdr as obtained by bin/get-bugzilla-attachments-by-mimetype (i.e., the attachment at <https://bugs.documentfoundation.org/show_bug.cgi?id=53278#c14>) under -fsanitize=undefined causes > CDRPath.cpp:821:34: runtime error: -173.908 is outside the range of representable values of type 'unsigned int' > #0 in libcdr::CDRPath::writeOut(librevenge::RVNGString&, librevenge::RVNGString&, double&) const at workdir/UnpackedTarball/libcdr/src/lib/CDRPath.cpp:821:34 (instdir/program/../program/libwpftdrawlo.so +0x2380015) > #1 in libcdr::CDRContentCollector::_lineProperties(librevenge::RVNGPropertyList&) at workdir/UnpackedTarball/libcdr/src/lib/CDRContentCollector.cpp:1118:17 (instdir/program/../program/libwpftdrawlo.so +0x2090b54) > #2 in libcdr::CDRContentCollector::_flushCurrentPath() at workdir/UnpackedTarball/libcdr/src/lib/CDRContentCollector.cpp:240:5 (instdir/program/../program/libwpftdrawlo.so +0x2070a9e) > #3 in libcdr::CDRContentCollector::collectLevel(unsigned int) at workdir/UnpackedTarball/libcdr/src/lib/CDRContentCollector.cpp:563:5 (instdir/program/../program/libwpftdrawlo.so +0x209243d) > #4 in libcdr::CDRParser::parseRecord(librevenge::RVNGInputStream*, std::vector<unsigned int, std::allocator<unsigned int> > const&, unsigned int) at workdir/UnpackedTarball/libcdr/src/lib/CDRParser.cpp:514:18 (instdir/program/../program/libwpftdrawlo.so +0x213bdff) > #5 in libcdr::CDRParser::parseRecords(librevenge::RVNGInputStream*, std::vector<unsigned int, std::allocator<unsigned int> > const&, unsigned int) at workdir/UnpackedTarball/libcdr/src/lib/CDRParser.cpp:500:10 (instdir/program/../program/libwpftdrawlo.so +0x213b93f) [...] Change-Id: Ie73965851102689ebb7895d61edb3d32ff47c60c Reviewed-on: https://gerrit.libreoffice.org/73181 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-29Pass --enable-debug into external/libcdrStephan Bergmann
(but which requires a little upstream master patch) Change-Id: I4bea938c402b03d8b05b6e70694ecc0184544b81 Reviewed-on: https://gerrit.libreoffice.org/73179 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-23libcdr & libqxp: follow main configure's --diable-dependency-trackingChristian Lohmaier
Change-Id: I363a02d7115ea54bb4aedb38071a249e145ee471 Reviewed-on: https://gerrit.libreoffice.org/72742 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2019-05-03The -fvisibility-ms-compat hack is no longer needed for UBSan on Linux...Stephan Bergmann
...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>
2018-12-29upload libcdr 0.1.5David Tardon
Change-Id: I01454cc35baf96743bd19e64dd3a7269c58621bf Reviewed-on: https://gerrit.libreoffice.org/65715 Tested-by: Jenkins Reviewed-by: David Tardon <dtardon@redhat.com>
2017-11-02ICU_UCHAR_TYPE is not needed for C++11 projectsDavid Tardon
Change-Id: I089af1a67044ab9cfd767e767a15d1a66014ce2f Reviewed-on: https://gerrit.libreoffice.org/44178 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2017-10-28libcdr: pass optimization flags to configureDavid Tardon
Change-Id: Ic852290149a018d272ff727ab5f504825b16cbba Reviewed-on: https://gerrit.libreoffice.org/43979 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
2017-10-28drop unneeded definesDavid Tardon
Change-Id: I99e03c09aa1c0f3ebdfe1969b2231e07361673e6 Reviewed-on: https://gerrit.libreoffice.org/43978 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
2017-10-04use the new gbuild way to update config.*David Tardon
Change-Id: I43805ac8c3d5c1b65519da02c3cc50fdb9729ea6 Reviewed-on: https://gerrit.libreoffice.org/42941 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2017-09-19iOS, patch libcdr to accept 64bit compilejan Iversen
Change-Id: Ifa52ee6caedbf79450b098a3a0debe75836debb8
2017-09-16upload libcdr 0.1.4David Tardon
Change-Id: Ie90a720d249ff85e667c6e96d639369ed48519b8 Reviewed-on: https://gerrit.libreoffice.org/42352 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2017-06-12iOS, patch libcdrjan Iversen
support for arm64 Change-Id: I8d7bd37ce4c6ebde06b0662dd3d959337384d35e
2017-04-26Upgrade to ICU 59.1Eike Rathke
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-02-23add upstream URL to READMEsDavid Tardon
Change-Id: I9cde5f94c81c59ff99b8f5af9765b94b6f57184a
2016-05-30configure: set BOOST_CPPFLAGS also in --without-system-boost caseMichael Stahl
Simplify the makefiles. Change-Id: Ia695961e936e4a1ffdaff73eb56adc3c3905ed0c
2015-11-12Generalize COM_GCC_IS_CLANG -> COM_IS_CLANGStephan Bergmann
...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-09-17blind attempt to fix lcovDavid Tardon
Change-Id: If8d6c8da1be1e540d641f20ac90e7877feae27be
2015-08-30libcdr: fix build with boost 1.59David Tardon
Change-Id: Ie12338eae161f0a13fa4ff036e41d389bc0d616a
2015-08-11gbuild/config stop using VERBOSE, use only verbose=tNorbert Thiebaud
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-02-27For Clang -fsanitize=vptr use -fvisibility-ms-compat, not -fvisibility=hiddenStephan Bergmann
As discussed in b4f6b26b5a1a78fecfa95ec2eb7ac8b80495d8aa "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 598d8194b0ea1a64e0ebba28a86c128bafa57c7c "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 598d8194b0ea1a64e0ebba28a86c128bafa57c7c "Visible function type RTTI for Clang -fsanitize=function" can likely be removed again. Change-Id: Ibeff7ab8c908111a7dc66ff0677204f112b24db8
2014-11-13More passing of MAKE into external configureStephan Bergmann
...like 2fdf78109e815a64169fdab1a8175b63ef9c64d4 "Pass MAKE into external/poppler's configure" Change-Id: I4e2f1a13d120a7398fa81884710c589bb905714d
2014-11-10external: fortunately boost no longer requires config_host.mkMichael Stahl
Change-Id: I8f2176500bf620cd5e4cdf434e6122b6163b3e0f
2014-05-26rebase all import libsDavid Tardon
Change-Id: I9e1fc613816c943f4fb1033185e34e3acf317f1d
2014-04-04Uploading libcdr-0.0.15: Support for CorelDraw x7Fridrich Štrba
Change-Id: I1cc6c6ab39ec27dbf08c2019c7dd7f8f29537520
2014-02-27normalize values of CROSS_COMPILINGMichael Stahl
Change-Id: I0cc43cef91e3fcd82a3558a16ab0afbd4d56b141
2014-02-12normalize values of SYSTEM_BOOSTMichael Stahl
Change-Id: I2fce6545d7f279e0e2d6f3ff53eee1ab82314135
2013-11-14more externals need config_host for boostMichael Stahl
Change-Id: I0cfb09240a2e525cbd57b099b6e52eeabcc57d3f
2013-10-19fdo#70393: move libcdr to a subdir of externalKhaled Hosny
Change-Id: If862bdfc338daa60a104e9b28924343363bb2fab Reviewed-on: https://gerrit.libreoffice.org/6328 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>