summaryrefslogtreecommitdiff
path: root/external
AgeCommit message (Collapse)AuthorFilesLines
2019-11-13CVE-2019-16707Caolán McNamara2-0/+26
Change-Id: I69c4c31330fde135b6ff6c0c1c72f613f0cc4b1d Reviewed-on: https://gerrit.libreoffice.org/82551 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-13external: update pdfium to 3963Miklos Vajna2-37/+19
Also simplify visibility.patch.1. Change-Id: I8b4ed78b314a1a1f7d31467f782877f056429cc2 Reviewed-on: https://gerrit.libreoffice.org/82548 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-01coinmp: disable "glpk", whatever that isMichael Stahl1-0/+1
On Fedora 31, this happens in CppunitTest_sccomp_solver: - loading component library <file:///work/lo/master/instdir/program/libsolverlo.so> failed > nm -D instdir/program/libCbcSolver.so.3 | grep cbc_glp_prob U cbc_glp_prob > grep -r COIN_HAS_GLPK workdir/UnpackedTarball/coinmp | grep config.h workdir/UnpackedTarball/coinmp/Osi/src/Osi/config.h:/* #undef COIN_HAS_GLPK */ workdir/UnpackedTarball/coinmp/Clp/src/config.h.in:#undef COIN_HAS_GLPK workdir/UnpackedTarball/coinmp/Cbc/src/config.h:#define COIN_HAS_GLPK 1 workdir/UnpackedTarball/coinmp/CoinUtils/src/config.h.in:#undef COIN_HAS_GLPK Somehow 2 different configures in coinmp got different ideas about whether something named "glpk" is available.... no idea what that is, it looks like there's a "glpk-devel" package installed on the system, and i doubt that a dependency on that would be desirable. Change-Id: Ief01b6aedc692197c1a8fd6351aef4281e530e70 Reviewed-on: https://gerrit.libreoffice.org/81863 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
2019-10-30Upgrade to ICU 65.1Eike Rathke13-327/+56
sberg says: On Windows, implicit --enable-extras first causes a build breaker in workdir/UnpackedTarball/icu/source/extras/scrptrun when linking, because Windows link.exe doesn't understand -o. But even with a patch > --- source/extra/scrptrun/Makefile.in > +++ source/extra/scrptrun/Makefile.in > @@ -74,7 +74,7 @@ > && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status > > $(TARGET) : $(OBJECTS) > - $(LINK.cc) -o $@ $^ $(LIBS) > + $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS) > $(POST_BUILD_STEP) > > invoke: linking would still fail with a missing ../../lib/icuucdd.lib, which is apparently expanded from $(LIBS) there, but I have no idea where it should be built but isn't. Lets hope that --disable-extras is sufficient for our needs. Change-Id: I6d0117b230caa41abf488fcd069028e3474700f8 Reviewed-on: https://gerrit.libreoffice.org/81632 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-29Adapt commentStephan Bergmann1-3/+0
external/icu/clang-cl.patch has been dropped by 398e1e6ae83999eea8fb8c845190667695ac115f "Upgrade to ICU 64.2" Change-Id: Ic1ab2b02820cc15f9b14bdaab4554e1da5234623 Reviewed-on: https://gerrit.libreoffice.org/81638 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-29external/icu: Fix UBSan nullptr-with-nonzero-offsetStephan Bergmann2-0/+31
...(new with Clang 10 trunk), as seen during ExternalProject_icu: > rbutil.c:49:67: runtime error: applying non-zero offset 1 to null pointer > #0 in get_basename at workdir/UnpackedTarball/icu/source/tools/genrb/rbutil.c:49:67 > #1 in make_res_filename(char const*, char const*, char const*, UErrorCode&) at workdir/UnpackedTarball/icu/source/tools/genrb/genrb.cpp:768:5 > #2 in processFile(char const*, char const*, char const*, char const*, char const*, SRBRoot*, signed char, UErrorCode&) at workdir/UnpackedTarball/icu/source/tools/genrb/genrb.cpp:695:14 > #3 in main at workdir/UnpackedTarball/icu/source/tools/genrb/genrb.cpp:527:9 > rbutil.c:54:67: runtime error: applying non-zero offset 1 to null pointer > #0 in get_basename at workdir/UnpackedTarball/icu/source/tools/genrb/rbutil.c:54:67 > #1 in make_res_filename(char const*, char const*, char const*, UErrorCode&) at workdir/UnpackedTarball/icu/source/tools/genrb/genrb.cpp:768:5 > #2 in processFile(char const*, char const*, char const*, char const*, char const*, SRBRoot*, signed char, UErrorCode&) at workdir/UnpackedTarball/icu/source/tools/genrb/genrb.cpp:695:14 > #3 in main at workdir/UnpackedTarball/icu/source/tools/genrb/genrb.cpp:527:9 (uprv_strrchr appears to be plain strrchr, see workdir/UnpackedTarball/icu/source/common/cstring.h, so returns null for "not found", and in both of the fixed places, the following if(lastSlash>filename) was apparently meant to filter out cases where uprv_strrchr returned null.) Change-Id: I32b3a72955d33d73fa4295cf5f91a69fd270efeb Reviewed-on: https://gerrit.libreoffice.org/81613 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-28Upgrade to ICU 64.2Eike Rathke8-164/+281
As an interim step to upgrade to ICU 65.1 Adds new scripts and Unicode blocks from Unicode 12. Change-Id: Idc4a6b29ffb04bcb424522fcbd29a8db0428c056 Reviewed-on: https://gerrit.libreoffice.org/81611 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2019-10-28external/boost: Adapt to std::allocator parts removed in C++20Stephan Bergmann2-0/+26
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html#4.2> "Deprecating Vestigial Library Parts in C++17" deprecated, among others, std::allocator::rebind and std::allocator::allocate's hint parameter, and <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html#3.9> "Reviewing Deprecated Facilities of C++17 for C++20" removed them completely. (And <https://gcc.gnu.org/git/?p=gcc.git;a=commit; h=954026a7a4e6a1affd1ac5db237ccd75a3316760> "Remove redundant std::allocator members for C++20" removed them from libstdc++ now for -std=c++2a.) The change to boost/bimap/detail/bimap_core.hpp was necessary in Library_pdfimport: > In file included from workdir/UnpackedTarball/boost/boost/bimap/bimap.hpp:61, > from external/boost/include/boost/bimap/bimap.hpp:30, > from sdext/source/pdfimport/inc/pdfiprocessor.hxx:49, > from sdext/source/pdfimport/pdfiadaptor.cxx:27: > workdir/UnpackedTarball/boost/boost/bimap/detail/bimap_core.hpp: In instantiation of ‘class boost::bimaps::detail::bimap_core<boost::bimaps::unordered_set_of<pdfi::GraphicsContext, pdfi::GraphicsContextHash>, boost::bimaps::unordered_set_of<int>, mpl_::na, mpl_::na, mpl_::na>’: > workdir/UnpackedTarball/boost/boost/bimap/bimap.hpp:133:7: required from ‘class boost::bimaps::bimap<boost::bimaps::unordered_set_of<pdfi::GraphicsContext, pdfi::GraphicsContextHash>, boost::bimaps::unordered_set_of<int> >’ > sdext/source/pdfimport/inc/pdfiprocessor.hxx:190:44: required from here > workdir/UnpackedTarball/boost/boost/bimap/detail/bimap_core.hpp:410:7: error: no class template named ‘rebind’ in ‘boost::bimaps::detail::manage_additional_parameters<mpl_::na, mpl_::na, mpl_::na>::case_NNN::allocator’ {aka ‘class std::allocator<void>’} > 410 | > core_type; > | ^~~~~~~~~ [...] The change to boost/format/alt_sstream_impl.hpp was necessary in ExternalProject_libpagemaker: > In file included from libpagemaker_utils.h:22, > from geometry.h:20, > from OutputShape.h:17, > from OutputShape.cpp:10: > external/boost/include/boost/cstdint.hpp:30:2: warning: #include_next is a GCC extension > 30 | #include_next <boost/cstdint.hpp> > | ^~~~~~~~~~~~ > In file included from workdir/UnpackedTarball/boost/boost/format/alt_sstream.hpp:174, > from workdir/UnpackedTarball/boost/boost/format/internals.hpp:24, > from workdir/UnpackedTarball/boost/boost/format.hpp:38, > from PMDExceptions.h:15, > from OutputShape.h:16, > from OutputShape.cpp:10: > workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp: In instantiation of ‘boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type boost::io::basic_altstringbuf<Ch, Tr, Alloc>::overflow(boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type = int]’: > workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp:227:9: required from here > workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp:261:45: error: no matching function for call to ‘std::allocator<char>::allocate(std::size_t&, char*)’ > 261 | newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); > | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > In file included from gcc/trunk/inst/include/c++/10.0.0/memory:64, > from OutputShape.h:13, > from OutputShape.cpp:10: > gcc/trunk/inst/include/c++/10.0.0/bits/allocator.h:164:7: note: candidate: ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = char; std::size_t = long unsigned int]’ > 164 | allocate(size_t __n) > | ^~~~~~~~ > gcc/trunk/inst/include/c++/10.0.0/bits/allocator.h:164:7: note: candidate expects 1 argument, 2 provided Change-Id: Id423f7597fe2e84e57df1d48a2ecc4d636c4a913 Reviewed-on: https://gerrit.libreoffice.org/81584 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-28external/breakpad: Adapt to std::allocator parts removed in C++20Stephan Bergmann2-0/+12
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html#4.2> "Deprecating Vestigial Library Parts in C++17" deprecated, among others, std::allocator::pointer, and <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html#3.9> "Reviewing Deprecated Facilities of C++17 for C++20" removed it completely. (And <https://gcc.gnu.org/git/?p=gcc.git;a=commit; h=954026a7a4e6a1affd1ac5db237ccd75a3316760> "Remove redundant std::allocator members for C++20" removed it from libstdc++ now for -std=c++2a.) The change to src/common/memory.h was necessary in Library_crashreport: > In file included from workdir/UnpackedTarball/breakpad/src/client/linux/dump_writer_common/thread_info.h:37, > from workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/linux_dumper.h:51, > from workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/minidump_writer.h:41, > from workdir/UnpackedTarball/breakpad/src/client/linux/handler/exception_handler.h:42, > from desktop/source/app/crashreport.cxx:29: > workdir/UnpackedTarball/breakpad/src/common/memory.h: In instantiation of ‘struct google_breakpad::PageStdAllocator<int>’: > gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:84:21: required from ‘struct std::__cxx1998::_Vector_base<int, google_breakpad::PageStdAllocator<int> >’ > gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:386:11: required from ‘class std::__cxx1998::vector<int, google_breakpad::PageStdAllocator<int> >’ > gcc/trunk/inst/include/c++/10.0.0/debug/vector:118:11: required from ‘class std::__debug::vector<int, google_breakpad::PageStdAllocator<int> >’ > workdir/UnpackedTarball/breakpad/src/common/memory.h:197:7: required from ‘class google_breakpad::wasteful_vector<int>’ > workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/linux_dumper.h:187:26: required from here > workdir/UnpackedTarball/breakpad/src/common/memory.h:165:47: error: no type named ‘pointer’ in ‘class std::allocator<int>’ > 165 | typedef typename std::allocator<T>::pointer pointer; > | ^~~~~~~ Change-Id: Id7559456cc75311837aaa9f3a531f8820d5f593d Reviewed-on: https://gerrit.libreoffice.org/81585 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-24Removed executable bits on patch fileAndrea Gelmini1-0/+0
Change-Id: If4bed7d12570ff126bec8638480430796f0e89f8 Reviewed-on: https://gerrit.libreoffice.org/81462 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-10-24external/glm: Avoid -std=c++2a -Werror,-Wdeprecated-volatileStephan Bergmann2-0/+12
...as seen with recent Clang 10 trunk clang-cl: > In file included from vcl/source/gdi/salgdilayout.cxx:24: > In file included from vcl/inc\openglgdiimpl.hxx:31: > In file included from vcl/inc/opengl/RenderList.hxx:16: > In file included from workdir/UnpackedTarball/glm\glm/glm.hpp:98: > In file included from workdir/UnpackedTarball/glm\glm/./core/type.hpp:32: > In file included from workdir/UnpackedTarball/glm\glm/core/type_half.hpp:116: > workdir/UnpackedTarball/glm\glm/core/type_half.inl(43,6): error: compound assignment to object of volatile-qualified type 'volatile float' is deprecated [-Werror,-Wdeprecated-volatile] > f *= f; // this will overflow before > ^ Change-Id: I97fdfc0650344db1401cdce126f6755df00c5a0e Reviewed-on: https://gerrit.libreoffice.org/81427 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23external/harfbuzz: Avoid UBSan nullptr-with-nonzero-offsetStephan Bergmann2-0/+24
...(new with Clang 10 trunk), as seen during CppunitTest_emfio_emf: > hb-ot-layout-gsubgpos.hh:390:20: runtime error: applying non-zero offset 2 to null pointer > #0 in OT::hb_ot_apply_context_t::skipping_iterator_t::next() at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:390:20 > #1 in OT::PairPosFormat1::apply(OT::hb_ot_apply_context_t*) const at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gpos-table.hh:910:22 > #2 in bool OT::hb_get_subtables_context_t::apply_to<OT::PairPosFormat1>(void const*, OT::hb_ot_apply_context_t*) at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:625:23 > #3 in OT::hb_get_subtables_context_t::hb_applicable_t::apply(OT::hb_ot_apply_context_t*) const at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:643:62 > #4 in OT::hb_ot_layout_lookup_accelerator_t::apply(OT::hb_ot_apply_context_t*) const at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:2624:24 > #5 in apply_forward(OT::hb_ot_apply_context_t*, OT::hb_ot_layout_lookup_accelerator_t const&) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1811:24 > #6 in void apply_string<GPOSProxy>(OT::hb_ot_apply_context_t*, GPOSProxy::Lookup const&, OT::hb_ot_layout_lookup_accelerator_t const&) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1864:11 > #7 in void hb_ot_map_t::apply<GPOSProxy>(GPOSProxy const&, hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1910:7 > #8 in hb_ot_map_t::position(hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1933:3 > #9 in hb_ot_shape_plan_t::position(hb_font_t*, hb_buffer_t*) const at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:266:9 > #10 in hb_ot_position_complex(hb_ot_shape_context_t const*) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:951:12 > #11 in hb_ot_position(hb_ot_shape_context_t const*) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:994:3 > #12 in hb_ot_shape_internal(hb_ot_shape_context_t*) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:1065:3 > #13 in _hb_ot_shape at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:1088:3 > #14 in hb_shape_plan_execute at workdir/UnpackedTarball/harfbuzz/src/./hb-shaper-list.hh:42:1 > #15 in hb_shape_full at workdir/UnpackedTarball/harfbuzz/src/hb-shape.cc:139:19 > #16 in GenericSalLayout::LayoutText(ImplLayoutArgs&, SalLayoutGlyphs const*) at vcl/source/gdi/CommonSalLayout.cxx:463:23 > #17 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, long const*, SalLayoutFlags, vcl::TextLayoutCache const*, SalLayoutGlyphs const*) const at vcl/source/outdev/text.cxx:1312:36 > #18 in OutputDevice::GetTextBoundRect(tools::Rectangle&, rtl::OUString const&, int, int, int, unsigned long, long const*, SalLayoutGlyphs const*) const at vcl/source/outdev/text.cxx:2334:18 > #19 in drawinglayer::primitive2d::TextLayouterDevice::getTextBoundRect(rtl::OUString const&, unsigned int, unsigned int) const at drawinglayer/source/primitive2d/textlayoutdevice.cxx:297:26 > #20 in drawinglayer::primitive2d::TextSimplePortionPrimitive2D::getB2DRange(drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/textprimitive2d.cxx:305:63 > #21 in drawinglayer::primitive2d::getB2DRangeFromPrimitive2DReference(com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> const&, drawinglayer::geometry::ViewInformation2D const&) at drawinglayer/source/primitive2d/baseprimitive2d.cxx:175:48 > #22 in drawinglayer::primitive2d::Primitive2DContainer::getB2DRange(drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/baseprimitive2d.cxx:199:36 > #23 in drawinglayer::primitive2d::MetafilePrimitive2D::create2DDecomposition(drawinglayer::primitive2d::Primitive2DContainer&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/metafileprimitive2d.cxx:51:67 > #24 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const at drawinglayer/source/primitive2d/baseprimitive2d.cxx:126:17 > #25 in drawinglayer::tools::Primitive2dXmlDump::decomposeAndWrite(drawinglayer::primitive2d::Primitive2DContainer const&, tools::XmlWriter&) at drawinglayer/source/tools/primitive2dxmldump.cxx:332:38 > #26 in drawinglayer::tools::Primitive2dXmlDump::dumpAndParse(drawinglayer::primitive2d::Primitive2DContainer const&, rtl::OUString const&) at drawinglayer/source/tools/primitive2dxmldump.cxx:130:5 > #27 in (anonymous namespace)::Test::checkRectPrimitive(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) at emfio/qa/cppunit/emf/EmfImportTest.cxx:80:34 > #28 in (anonymous namespace)::Test::testWorking() at emfio/qa/cppunit/emf/EmfImportTest.cxx:94:5 and similarly during CppunitTest_vcl_complextext: > hb-ot-layout-gsubgpos.hh:417:20: runtime error: applying non-zero offset 2 to null pointer > #0 in OT::hb_ot_apply_context_t::skipping_iterator_t::prev() at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:417:20 > #1 in OT::MarkMarkPosFormat1::apply(OT::hb_ot_apply_context_t*) const at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gpos-table.hh:1541:22 > #2 in bool OT::hb_get_subtables_context_t::apply_to<OT::MarkMarkPosFormat1>(void const*, OT::hb_ot_apply_context_t*) at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:625:23 > #3 in OT::hb_get_subtables_context_t::hb_applicable_t::apply(OT::hb_ot_apply_context_t*) const at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:643:62 > #4 in OT::hb_ot_layout_lookup_accelerator_t::apply(OT::hb_ot_apply_context_t*) const at workdir/UnpackedTarball/harfbuzz/src/./hb-ot-layout-gsubgpos.hh:2624:24 > #5 in apply_forward(OT::hb_ot_apply_context_t*, OT::hb_ot_layout_lookup_accelerator_t const&) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1811:24 > #6 in void apply_string<GPOSProxy>(OT::hb_ot_apply_context_t*, GPOSProxy::Lookup const&, OT::hb_ot_layout_lookup_accelerator_t const&) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1864:11 > #7 in void hb_ot_map_t::apply<GPOSProxy>(GPOSProxy const&, hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1910:7 > #8 in hb_ot_map_t::position(hb_ot_shape_plan_t const*, hb_font_t*, hb_buffer_t*) const at workdir/UnpackedTarball/harfbuzz/src/hb-ot-layout.cc:1933:3 > #9 in hb_ot_shape_plan_t::position(hb_font_t*, hb_buffer_t*) const at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:266:9 > #10 in hb_ot_position_complex(hb_ot_shape_context_t const*) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:951:12 > #11 in hb_ot_position(hb_ot_shape_context_t const*) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:994:3 > #12 in hb_ot_shape_internal(hb_ot_shape_context_t*) at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:1065:3 > #13 in _hb_ot_shape at workdir/UnpackedTarball/harfbuzz/src/hb-ot-shape.cc:1088:3 > #14 in hb_shape_plan_execute at workdir/UnpackedTarball/harfbuzz/src/./hb-shaper-list.hh:42:1 > #15 in hb_shape_full at workdir/UnpackedTarball/harfbuzz/src/hb-shape.cc:139:19 > #16 in GenericSalLayout::LayoutText(ImplLayoutArgs&, SalLayoutGlyphs const*) at vcl/source/gdi/CommonSalLayout.cxx:463:23 > #17 in OutputDevice::ImplLayout(rtl::OUString const&, int, int, Point const&, long, long const*, SalLayoutFlags, vcl::TextLayoutCache const*, SalLayoutGlyphs const*) const at vcl/source/outdev/text.cxx:1312:36 > #18 in OutputDevice::GetTextArray(rtl::OUString const&, long*, int, int, vcl::TextLayoutCache const*, SalLayoutGlyphs const*) const at vcl/source/outdev/text.cxx:961:45 > #19 in VclComplexTextTest::testArabic() at vcl/qa/cppunit/complextext.cxx:81:32 I have no idea whether this even remotely resembles a useful fix, though. Change-Id: I7671b84374cf119e173406bc60f6631a64dfc794 Reviewed-on: https://gerrit.libreoffice.org/81400 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22external/lpsolve: Avoid UBSan nullptr-with-nonzero-offsetStephan Bergmann1-0/+11
...(new with Clang 10 trunk), as seen during CppunitTest_sccomp_solver: > ../lp_presolve.c:171:34: runtime error: applying non-zero offset 8 to null pointer > #0 in presolve_rebuildUndo at workdir/UnpackedTarball/lpsolve/lpsolve55/../lp_presolve.c:171:34 > #1 in postsolve at workdir/UnpackedTarball/lpsolve/lpsolve55/../lp_presolve.c:5673:5 > #2 in spx_solve at workdir/UnpackedTarball/lpsolve/lpsolve55/../lp_simplex.c:2067:9 > #3 in lin_solve at workdir/UnpackedTarball/lpsolve/lpsolve55/../lp_simplex.c:2159:12 > #4 in LpsolveSolver::solve() at sccomp/source/solver/LpsolveSolver.cxx:295:19 > #5 in (anonymous namespace)::LpSolverTest::testSolver(rtl::OUString const&) at sccomp/qa/unit/solver.cxx:106:14 > #6 in (anonymous namespace)::LpSolverTest::testLpSolver() at sccomp/qa/unit/solver.cxx:69:5 I have no idea whether this even remotely resembles a useful fix, though. Change-Id: I1a2796d3849967576f400737082e7377566aece9 Reviewed-on: https://gerrit.libreoffice.org/81321 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22Pass ENABLE_DEBUG into ExternalProject_redlandStephan Bergmann1-0/+1
Change-Id: Ifaacb82478b16e102108d32488a2807489c46901 Reviewed-on: https://gerrit.libreoffice.org/81320 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22external/redland: Avoid UBSan nullptr-with-nonzero-offsetStephan Bergmann1-0/+11
...(new with Clang 10 trunk), as seen during CppunitTest_sw_ooxmlexport: > raptor_rfc2396.c:389:23: runtime error: applying non-zero offset 2 to null pointer > #0 in raptor_uri_normalize_path at workdir/UnpackedTarball/raptor/src/raptor_rfc2396.c:389:23 > #1 in raptor_uri_resolve_uri_reference at workdir/UnpackedTarball/raptor/src/raptor_rfc2396.c:617:21 > #2 in raptor_new_uri_relative_to_base_counted at workdir/UnpackedTarball/raptor/src/raptor_uri.c:293:19 > #3 in raptor_new_uri_relative_to_base at workdir/UnpackedTarball/raptor/src/raptor_uri.c:319:10 > #4 in raptor_rdfxml_end_element_grammar at workdir/UnpackedTarball/raptor/src/raptor_rdfxml.c:2613:32 > #5 in raptor_rdfxml_end_element_handler at workdir/UnpackedTarball/raptor/src/raptor_rdfxml.c:850:5 > #6 in raptor_sax2_end_element at workdir/UnpackedTarball/raptor/src/raptor_sax2.c:867:7 > #7 in xmlParseTryOrFinish at workdir/UnpackedTarball/libxml2/parser.c:11386:8 > #8 in xmlParseChunk__internal_alias at workdir/UnpackedTarball/libxml2/parser.c:12244:13 > #9 in raptor_sax2_parse_chunk at workdir/UnpackedTarball/raptor/src/raptor_sax2.c:534:10 > #10 in raptor_rdfxml_parse_chunk at workdir/UnpackedTarball/raptor/src/raptor_rdfxml.c:1169:8 > #11 in raptor_parser_parse_chunk at workdir/UnpackedTarball/raptor/src/raptor_parse.c:482:10 > #12 in librdf_parser_raptor_parse_as_stream_common at <null> (instdir/program/librdf-lo.so.0 +0x11ee39) > #13 in librdf_parser_raptor_parse_counted_string_as_stream at <null> (instdir/program/librdf-lo.so.0 +0x117ca4) > #14 in librdf_parser_parse_counted_string_as_stream at <null> (instdir/program/librdf-lo.so.0 +0x111967) > #15 in (anonymous namespace)::librdf_Repository::importGraph(short, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, com::sun::star::uno::Reference<com::sun::star::rdf::XURI> const&, com::sun::star::uno::Reference<com::sun::star::rdf::XURI> const&) at unoxml/source/rdf/librdf_repository.cxx:1048:9 > #17 in sfx2::readStream(sfx2::DocumentMetadataAccess_Impl&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, rtl::OUString const&, rtl::OUString const&) at sfx2/source/doc/DocumentMetadataAccess.cxx:606:36 > #18 in sfx2::initLoading(sfx2::DocumentMetadataAccess_Impl&, com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::rdf::XURI> const&, com::sun::star::uno::Reference<com::sun::star::task::XInteractionHandler> const&) at sfx2/source/doc/DocumentMetadataAccess.cxx:763:9 > #19 in sfx2::DocumentMetadataAccess::loadMetadataFromStorage(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::rdf::XURI> const&, com::sun::star::uno::Reference<com::sun::star::task::XInteractionHandler> const&) at sfx2/source/doc/DocumentMetadataAccess.cxx:1126:5 > #20 in SfxBaseModel::loadMetadataFromStorage(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::rdf::XURI> const&, com::sun::star::uno::Reference<com::sun::star::task::XInteractionHandler> const&) at sfx2/source/doc/sfxbasemodel.cxx:4411:15 > #21 in XMLReader::Read(SwDoc&, rtl::OUString const&, SwPaM&, rtl::OUString const&) at sw/source/filter/xml/swxml.cxx:810:19 > #22 in SwReader::Read(Reader const&) at sw/source/filter/basflt/shellio.cxx:188:22 > #23 in SwDocShell::Load(SfxMedium&) at sw/source/uibase/app/docshini.cxx:546:37 > #24 in SfxObjectShell::LoadOwnFormat(SfxMedium&) at sfx2/source/doc/objstor.cxx:3040:20 > #25 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:696:40 > #26 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1851:36 > #27 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at sfx2/source/view/frmload.cxx:691:28 > #28 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1157:37 > #29 in framework::LoadEnv::startLoading() at framework/source/loadenv/loadenv.cxx:390:20 > #30 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/loadenv/loadenv.cxx:171:14 > #31 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx:621:12 > #32 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx > #33 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unotest/source/cpp/macros_test.cxx:48:62 > #34 in SwModelTestBase::loadURL(rtl::OUString const&, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:765:23 > #35 in SwModelTestBase::load(rtl::OUString const&, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:720:16 > #36 in SwModelTestBase::executeImportExportImportTest(char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:290:9 > #37 in testTdf118393::Import_Export_Import() at sw/qa/extras/ooxmlexport/ooxmlexport.cxx:84:1 Presumably, `cur` can legitimately be null there and the `s == (cur+2)` check was intended to always be false when `cur` is null? Change-Id: I0e3b762d5868933e586eb8f2255148f88a54e908 Reviewed-on: https://gerrit.libreoffice.org/81318 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22exernal/icu: Various C++20 comparison operator fixesStephan Bergmann2-0/+172
There are three patterns here: * Missing const (source/common/uvector.cpp, source/common/uvector.h): Overload resolution ambiguities when a synthesized canditate of operator == for a reversed-argument rewrite conflicts with the actual operator ==, due to the asymmetric const-ness of the implicit object parameter and the RHS parameter: > uniset.cpp:360:18: error: use of overloaded operator '!=' is ambiguous (with operand types 'icu_63::UVector' and 'icu_63::UVector') > if (*strings != *o.strings) return FALSE; > ~~~~~~~~ ^ ~~~~~~~~~~ > ./uvector.h:385:23: note: candidate function > inline UBool UVector::operator!=(const UVector& other) { > ^ > ./uvector.h:116:11: note: candidate function > UBool operator==(const UVector& other); > ^ > ./uvector.h:116:11: note: candidate function (with reversed parameter order) * UBool -> bool (source/i18n/tzrule.cpp, source/i18n/unicode/tzrule.h): [over.match.oper]/9 (of the current C++20 draft) states: "If a rewritten operator== candidate is selected [...], its return type shall be cv bool": > basictz.cpp:411:37: error: return type 'UBool' (aka 'signed char') of selected 'operator==' function for rewritten '==' comparison is not 'bool' > if (*(tzt0.getTo()) == *tar) { > ~~~~~~~~~~~~~~~ ^ ~~~~ > ./unicode/tzrule.h:675:19: note: declared here > virtual UBool operator==(const TimeZoneRule& that) const; > ^ * Additional operator != (source/i18n/unicode/rbtz.h, source/i18n/unicode/simpletz.h, source/i18n/unicode/smpdtfmt.h, source/i18n/unicode/stsearch.h, source/i18n/unicode/tzrule.h, source/i18n/unicode/vtzone.h): Similar to the previous pattern, but here the original operator used was !=, so an alternative fix (that reqires fewer changes to the code overall) is to add specific operator != overloads: > rbtz.cpp:79:15: error: use of overloaded operator '!=' is ambiguous (with operand types 'icu_63::RuleBasedTimeZone' and 'const icu_63::RuleBasedTimeZone') > if (*this != right) { > ~~~~~ ^ ~~~~~ > ./unicode/rbtz.h:87:19: note: candidate function > virtual UBool operator!=(const TimeZone& that) const; > ^ > ./unicode/rbtz.h:77:19: note: candidate function > virtual UBool operator==(const TimeZone& that) const; > ^ > ./unicode/rbtz.h:77:19: note: candidate function (with reversed parameter order) > rbtz.cpp:101:23: error: use of overloaded operator '!=' is ambiguous (with operand types 'icu_63::InitialTimeZoneRule' and 'icu_63::InitialTimeZoneRule') > if (*fInitialRule != *(rbtz->fInitialRule)) { > ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~ > ./unicode/tzrule.h:257:19: note: candidate function > virtual UBool operator!=(const TimeZoneRule& that) const; > ^ > ./unicode/tzrule.h:248:18: note: candidate function > virtual bool operator==(const TimeZoneRule& that) const; > ^ > ./unicode/tzrule.h:248:18: note: candidate function (with reversed parameter order) > rbtz.cpp:535:23: error: use of overloaded operator '!=' is ambiguous (with operand types 'icu_63::InitialTimeZoneRule' and 'icu_63::InitialTimeZoneRule') > if (*fInitialRule != *(that.fInitialRule)) { > ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~ > ./unicode/tzrule.h:257:19: note: candidate function > virtual UBool operator!=(const TimeZoneRule& that) const; > ^ > ./unicode/tzrule.h:248:18: note: candidate function > virtual bool operator==(const TimeZoneRule& that) const; > ^ > ./unicode/tzrule.h:248:18: note: candidate function (with reversed parameter order) > > olsontz.cpp:630:69: error: return type 'UBool' (aka 'signed char') of selected 'operator==' function for rewritten '!=' comparison is not 'bool' > || (finalZone != NULL && z->finalZone != NULL && *finalZone != *z->finalZone)) { > ~~~~~~~~~~ ^ ~~~~~~~~~~~~~ > ./unicode/simpletz.h:112:19: note: declared here > virtual UBool operator==(const TimeZone& that) const; > ^ > dtitvfmt.cpp:223:62: error: return type 'UBool' (aka 'signed char') of selected 'operator==' function for rewritten '!=' comparison is not 'bool' > if (fDateFormat && fmt->fDateFormat && (*fDateFormat != *fmt->fDateFormat)) {return FALSE;} > ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~ > ./unicode/smpdtfmt.h:876:19: note: declared here > virtual UBool operator==(const Format& other) const; > ^ > stsearch.cpp:187:17: error: return type 'UBool' (aka 'signed char') of selected 'operator==' function for rewritten '!=' comparison is not 'bool' > if ((*this) != that) { > ~~~~~~~ ^ ~~~~ > ./unicode/stsearch.h:299:19: note: declared here > virtual UBool operator==(const SearchIterator &that) const; > ^ > vtzone.cpp:1003:15: error: use of overloaded operator '!=' is ambiguous (with operand types 'icu_63::VTimeZone' and 'const icu_63::VTimeZone') > if (*this != right) { > ~~~~~ ^ ~~~~~ > ./unicode/vtzone.h:83:19: note: candidate function > virtual UBool operator!=(const TimeZone& that) const; > ^ > ./unicode/vtzone.h:73:19: note: candidate function > virtual UBool operator==(const TimeZone& that) const; > ^ > ./unicode/vtzone.h:73:19: note: candidate function (with reversed parameter order) Change-Id: I38e01143d1ea0df3f43de53303fd710e41bae027 Reviewed-on: https://gerrit.libreoffice.org/81306 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22external/libxml2: Simplify UBSan nullptr-with-offset fixStephan Bergmann1-1/+1
...that had been added with fcb2d8a87ad696f7f2fe069f0ed68a88803e1b54 "external/libxml2: Avoid UBSan nullptr-with-offset" Change-Id: I7ee234c8c6a868ed825a8ed3fa0dcdc69decb7ba Reviewed-on: https://gerrit.libreoffice.org/81299 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22external/libxml2: Avoid UBSan nullptr-with-offsetStephan Bergmann2-0/+12
...(new with Clang 10 trunk), where adding even an offset of 0 to a null pointer is UB in C. Seen when building UIConfig_modules/schart: > [UIL] chart2/uiconfig/ui/3dviewdialog > xpath.c:14532:5: runtime error: applying zero offset to null pointer > #0 in xmlXPathTryStreamCompile at workdir/UnpackedTarball/libxml2/xpath.c:14532:5 > #1 in xmlXPathCtxtCompile__internal_alias at workdir/UnpackedTarball/libxml2/xpath.c:14634:12 > #2 in xsltXPathCompileFlags at workdir/UnpackedTarball/libxslt/libxslt/xsltutils.c:2323:11 > #3 in xsltValueOfComp at workdir/UnpackedTarball/libxslt/libxslt/preproc.c:1258:18 > #4 in xsltStylePreCompute at workdir/UnpackedTarball/libxslt/libxslt/preproc.c:2225:6 > #5 in xsltParseTemplateContent at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:4916:13 > #6 in xsltParseStylesheetTemplate at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:5467:5 > #7 in xsltParseStylesheetTop at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6205:6 > #8 in xsltParseStylesheetProcess at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6461:2 > #9 in xsltParseStylesheetImportedDoc at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6675:9 > #10 in xsltParseStylesheetDoc at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6714:11 > #11 in main at workdir/UnpackedTarball/libxslt/xsltproc/xsltproc.c:888:9 Change-Id: I016ca8d24315385bcfeafca56dda44d9be10f517 Reviewed-on: https://gerrit.libreoffice.org/81285 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22external/expat: Avoid -fsanitizenullptr-with-offsetStephan Bergmann2-0/+12
...(new with Clang 10 trunk), where adding even an offset of 0 to a null pointer is UB in C. Seen when building CustomTarget_writerfilter/source: > [PY ] CustomTarget/writerfilter/source/ooxml/resourceids.hxx > workdir/UnpackedTarball/expat/lib/xmlparse.c:6488:23: runtime error: applying zero offset to null pointer > #0 in hashTableIterInit at workdir/UnpackedTarball/expat/lib/xmlparse.c:6488:23 > #1 in dtdDestroy at workdir/UnpackedTarball/expat/lib/xmlparse.c:6130:3 > #2 in XML_ParserFree at workdir/UnpackedTarball/expat/lib/xmlparse.c:1368:5 > #3 in xmlparse_dealloc at workdir/UnpackedTarball/python3/Modules/pyexpat.c:1222:9 > #4 in insertdict at workdir/UnpackedTarball/python3/Objects/dictobject.c:807:9 > #5 in _PyObjectDict_SetItem at workdir/UnpackedTarball/python3/Objects/dictobject.c:3927:19 > #6 in _PyObject_GenericSetAttrWithDict at workdir/UnpackedTarball/python3/Objects/object.c:1159:19 > #7 in PyObject_SetAttr at workdir/UnpackedTarball/python3/Objects/object.c:930:15 > #8 in PyEval_EvalFrameEx at workdir/UnpackedTarball/python3/Python/ceval.c:2310:19 [...] Change-Id: I152ddb20c726dbeb638c5fab4403423f5c6da7b5 Reviewed-on: https://gerrit.libreoffice.org/81284 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21iexternal/libstaroffice: Fix equality operator argumentsStephan Bergmann2-0/+59
see commit message of external/libstaroffice/0001-Fix-equality-operator-arguments.patch.1 for details Change-Id: Iff882eb1e8b7a71e659a4513772e9049645812fb Reviewed-on: https://gerrit.libreoffice.org/81256 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21external/firebird: Make comparison operator member functions constStephan Bergmann2-0/+53
see commit message of external/firebird/0001-Make-comparison-operator-member-functions-const.patch.1 for details Change-Id: I559e4b6ef2dbf3800ff5013dcde078d69296d2fb Reviewed-on: https://gerrit.libreoffice.org/81261 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21external/libwps: Make comparison operator member functions constStephan Bergmann2-0/+52
see commit message of external/libwps/0001-Make-comparison-operator-member-functions-const.patch for details Change-Id: Ib8702f57f47aacc08628ceaccce23b487660b95c Reviewed-on: https://gerrit.libreoffice.org/81249 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-16Allow building lcms2 with Windows SDK 8.1Mike Kaganski1-38/+7
Change-Id: I81052f7634c7873d893d67deb79ed7bfa6dcbc44 Reviewed-on: https://gerrit.libreoffice.org/80888 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-10-14add PCHs for more external libsLuboš Luňák20-0/+577
I think this is all external libs where it makes sense for them to have their own PCH and be worth it. Maybe some smaller externals can also use the common system PCH, but unfortunately many externals use all kinds of defines that affect system headers, which is a problem for the common system PCH. Change-Id: I2c589ac55d93728daf3b158df110722e5f055d45 Reviewed-on: https://gerrit.libreoffice.org/80728 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-10-11Pass LDFLAGS into external/postgresqlStephan Bergmann1-1/+1
This will be needed when building against Flatpak org.freedesktop.Sdk//19.08, which no longer bundles krb5, so we will have a bundled libgssapi_krb5.so at /app/lib (instead of under /usr), but which requires LDFLAGS=-L/app/lib to be found. Change-Id: I8767740ab0cbb02b6ae682b7f0e21ec90ea5ddd7 Reviewed-on: https://gerrit.libreoffice.org/80620 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-02Resolves: tdf#127887 Fix libwps wrong Lotus version detectionEike Rathke2-0/+45
Also return the proper kind and creator values set in WKS4Parser::checkHeader() to callers of WPSDocument::isFileFormatSupported() Change-Id: I3adfde0e18669b80956a9b577080fe8388dd3b1f Reviewed-on: https://gerrit.libreoffice.org/79981 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2019-10-02external/icu: Fix "error: explicit instantiation of 'atomic' not in...Stephan Bergmann2-0/+41
...a namespace enclosing 'std'" (clang-cl). (Upstream <https://github.com/ unicode-org/icu/commit/5a34bfb1516a6719b5f470063c6be2f47446f0b2> "ICU-20209 Fix build failures on Windows with std::atomic not in enclo…" covers more things, so just include here what is absolutely necessary for our needs. Change-Id: I10e61b24a5d73b372bfd719d97fc9678029dc205 Reviewed-on: https://gerrit.libreoffice.org/79953 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01external/boost: clang-cl cannot use MSVC's ATOMIC_FLAG_INITStephan Bergmann1-0/+13
The C++ standard leaves it unspecified how ATOMIC_FLAG_INIT is defined, and at least MS Visual Studio 2017 version 15.9 defines it as {0}, asking for list- initialization, but std::atomic_flag is no aggregate (it has a default ctor) and has no suitable ctor for that initializer list. Other standard library implementations solve that by e.g. adding a std::atomic_flag ctor taking a bool parameter, and defining ATOMIC_FLAG_INIT as std::atomic_flag(false); but MSVC apparently relies on some non-standard behavior here that allows to initialize std::atomic_flag from {0}. But that is apparently not supported by clang-cl, causing failures like > [build CXX] workdir/UnpackedTarball/boost/libs/locale/src/shared/date_time.cpp > In file included from workdir/UnpackedTarball/boost/libs/locale/src/shared/date_time.cpp:11: > In file included from workdir/UnpackedTarball/boost\boost/thread/locks.hpp:10: > In file included from workdir/UnpackedTarball/boost\boost/thread/lock_algorithms.hpp:11: > In file included from workdir/UnpackedTarball/boost\boost/thread/lock_types.hpp:18: > In file included from workdir/UnpackedTarball/boost\boost/thread/thread_time.hpp:9: > In file included from workdir/UnpackedTarball/boost\boost/date_time/time_clock.hpp:17: > In file included from external/boost/include\boost/shared_ptr.hpp:27: > In file included from workdir/UnpackedTarball/boost\boost/shared_ptr.hpp:17: > In file included from workdir/UnpackedTarball/boost\boost/smart_ptr/shared_ptr.hpp:36: > workdir/UnpackedTarball/boost\boost/smart_ptr/detail/spinlock_pool.hpp(77,5): error: no matching constructor for initialization of 'std::atomic_flag' > BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, > ^~~~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/boost\boost/smart_ptr/detail/spinlock_std_atomic.hpp(81,38): note: expanded from macro 'BOOST_DETAIL_SPINLOCK_INIT' > #define BOOST_DETAIL_SPINLOCK_INIT { ATOMIC_FLAG_INIT } > ^~~~~~~~~~~~~~~~ > C:/PROGRA~2/MIB055~1/2017/COMMUN~1/VC/Tools/MSVC/1416~1.270/Include\atomic(158,26): note: expanded from macro 'ATOMIC_FLAG_INIT' > #define ATOMIC_FLAG_INIT {0} > ^~~ > C:/PROGRA~2/MIB055~1/2017/COMMUN~1/VC/Tools/MSVC/1416~1.270/Include\atomic(169,2): note: candidate constructor not viable: no known conversion from 'int' to 'const std::atomic_flag' for 1st argument > atomic_flag(const atomic_flag&) = delete; > ^ > C:/PROGRA~2/MIB055~1/2017/COMMUN~1/VC/Tools/MSVC/1416~1.270/Include\atomic(168,2): note: candidate constructor not viable: requires 0 arguments, but 1 was provided > atomic_flag() noexcept = default; > ^ The internals of external/boost appear to be the only place where we currently use ATOMIC_FLAG_INIT, and we can work around that easily by picking a different backend in boost/smart_ptr/detail/spinlock.hpp for the problematic combination of Clang and _MSC_VER 1916 (which may need to be extended to further MSVC versions). Change-Id: Ie6aa62556efbedd3897ad7803b546cb8088ebe10 Reviewed-on: https://gerrit.libreoffice.org/79967 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-27external/breakpad: glibc 2.30 declares tgkillStephan Bergmann2-0/+50
...so building against glibc-headers-2.30-4.fc31.x86_64 fails with > src/client/linux/handler/exception_handler.cc:109:12: error: static declaration of 'tgkill' follows non-static declaration > static int tgkill(pid_t tgid, pid_t tid, int sig) { > ^ > /usr/include/bits/signal_ext.h:29:12: note: previous declaration is here > extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal); > ^ > 1 error generated. Upstream commit <https://chromium.googlesource.com/breakpad/breakpad/+/ 7e3c165000d44fa153a3270870ed500bc8bbb461%5E%21/> "Fix double declaration of tgkill when using Android NDK Headers" looks like the perfect fit. Change-Id: I1b4805886fb7c770cf9733f34a31296e6b859d92 Reviewed-on: https://gerrit.libreoffice.org/79661 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-23android: add support for 64bit buildChristian Lohmaier2-2/+3
Change-Id: Id8aae84308f6128351ae2f93c8fbc8941a0c7fc6 Reviewed-on: https://gerrit.libreoffice.org/79085 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2019-09-23do not require $(SRCDIR) in every gb_Library_set_precompiled_headerLuboš Luňák4-4/+4
Change-Id: I7b3a22584bb2e4d501f509ffcd80929feed23a4c Reviewed-on: https://gerrit.libreoffice.org/79360 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-09-20Remove legacy NEED_CLANG_LINUX_UBSAN_RTTI_VISIBILITY supportStephan Bergmann32-282/+0
...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-16latest expatCaolán McNamara5-13/+10
Change-Id: Ia98c9718ccd8e18b5f56851027bde944164f05c4 Reviewed-on: https://gerrit.libreoffice.org/78976 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-09-11external: update pdfium to 3896Miklos Vajna3-37/+20
Change-Id: I9d47d9afed47e01657b42fbfdb06e7fc91a150c8 Reviewed-on: https://gerrit.libreoffice.org/78806 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-09-05tdf#121983 cairo: fix RPATH to contain $ORIGIN, not libtool's nonsenseMichael Stahl3-1/+17
Also transmit $(verbose) to the build so it's debuggable. Change-Id: I8620fdcae2fcd34807b6b83b7c38aa5ca1ba2caa Reviewed-on: https://gerrit.libreoffice.org/78596 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2019-09-03Silence -fsanitize=object-size in --enable-optimized buildsStephan Bergmann2-0/+53
<http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#available-checks> (as of recent LLVM trunk towards LLVM 10) states: "-fsanitize=object-size: An attempt to potentially use bytes which the optimizer can determine are not part of the object being accessed. This will also detect some types of undefined behavior that may not directly access memory, but are provably incorrect given the size of the objects involved, such as invalid downcasts and calling methods on invalid pointers. These checks are made in terms of __builtin_object_size, and consequently may be able to detect more problems at higher optimization levels." A `make check screenshot` with --enabled-optimized runs into two such issues that were not diagnosed with --disable-optimized, in both cases because a struct with an "idiomatic trailing dynamic array member" (statically declared to be an array of size 1) is allocated without any space for that array member, as the dynamic array size is 0 in the specific case: * For > [CUT] sc_ucalc > cppu/source/uno/copy.hxx:46:19: runtime error: member access within address 0x6020001aaa70 with insufficient space for an object of type 'uno_Sequence' (aka '_sal_Sequence') > 0x6020001aaa70: note: pointer points here > 2b 00 80 6a be be be be be be be be 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > ^ > #0 in cppu::allocSeq(int, int) at cppu/source/uno/copy.hxx:46:19 (instdir/program/libuno_cppu.so.3 +0x41f03f) > #1 in uno_type_sequence_reference2One at cppu/source/uno/sequence.cxx:813:20 (instdir/program/libuno_cppu.so.3 +0x41f03f) [...] the call to pNew = allocSeq( 0, 0 ); in uno_type_sequence_reference2One is inlined, so sal_uInt32 nSize = calcSeqMemSize( nElementSize, nElements ); in allocSeq is known to be too small. * For > testSignatureLineODF::TestBody finished in: 2044ms > engine-gpg.c:302:6: runtime error: member access within address 0x604001f24f10 with insufficient space for an object of type 'struct arg_and_data_s' > 0x604001f24f10: note: pointer points here > 6e 01 00 26 be be be be be be be be be be be be be be be be be be be be be be be be be be be be > ^ > #0 in add_data at workdir/UnpackedTarball/gpgmepp/src/engine-gpg.c:302:6 (instdir/program/libgpgme.so.11 +0x120c2b) [...] > make[1]: *** [solenv/gbuild/CppunitTest.mk:114: workdir/CppunitTest/xmlsecurity_signing.test] Error 1 the a = malloc (sizeof *a - 1); is apparently detected to be too small only with optimization enabled. In both cases, the solution is to operate on the too-small dynamically allocated object via a reinterpret_cast'ed pointer to some newly introduced "struct prefix" type. Change-Id: Ie814db1d00a439bb9189474b91d729e538e81984 Reviewed-on: https://gerrit.libreoffice.org/78548 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-29Update commentStephan Bergmann1-3/+0
external/liborcus/0001-Blind-fix-attempt-for-older-macOS-builds.patch has been removed with df2b4a9daa643e66b705a7b39d8988a3d97d731e "Update liborcus to 0.15.2." Change-Id: I1014e1ff847468b5b6c05ee363c1e6017722fd47 Reviewed-on: https://gerrit.libreoffice.org/78271 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-29Update liborcus to 0.15.2.Kohei Yoshida2-131/+0
Change-Id: I1a16e7ba9a096862933536268dacf5ab49476896 Reviewed-on: https://gerrit.libreoffice.org/78246 Tested-by: Jenkins Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2019-08-28Record patch as upstreamedMike Kaganski1-0/+2
Change-Id: Ia84db6c3d8051b872a838b530a8c44ce4a4b2821 Reviewed-on: https://gerrit.libreoffice.org/78198 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-08-27Record patch as upstreamedStephan Bergmann1-0/+3
Change-Id: Ib28e86de29cdb5d91e05b341c75b87590e8b3aa6 Reviewed-on: https://gerrit.libreoffice.org/78189 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-27libabw, libvisio: follow main configure's --disable-dependency-trackingChristian Lohmaier2-0/+2
Change-Id: Iaf4fd40a7178b50a396971cfcfd0c39211597285
2019-08-26harfbuzz: follow main configure's --disable-dependency-trackingChristian Lohmaier1-0/+1
Change-Id: I5ab185ca783e0e3f637c22909e53a67119349ad7 Reviewed-on: https://gerrit.libreoffice.org/78130 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2019-08-23Resolves: tdf#125284 config entries not substituted under Turkish localeCaolán McNamara2-0/+28
cause i is not the lowercase of I Change-Id: I616d642df54ce19e68d484c43250a79ecae344ee Reviewed-on: https://gerrit.libreoffice.org/78025 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-23external/liborcus: Blind fix attempt for older macOS builds, take 3Stephan Bergmann1-5/+19
One more place that needs a workaround like 5c2c08f635c30b732df48faca7ba3d411074e05a "external/liborcus: Blind fix attempt for older macOS builds" and ee02218eb9aaa36f37619cb16bb389762e1785b2 "external/liborcus: Blind fix attempt for older macOS builds, take 2". Change-Id: I330737e1c31744cd28f753f18edf9c911946b37c Reviewed-on: https://gerrit.libreoffice.org/78022 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-08-23external/harfbuzz configure needs MAKE nowStephan Bergmann1-0/+1
...after 352924a64750bb99aec54feea3af0121603c12a8 "Update HarfBbuzz to 2.6.0", where it started to fail for me on Windows with > config.status: error: in `/cygdrive/c/lo/core/workdir/UnpackedTarball/harfbuzz': > config.status: error: Something went wrong bootstrapping makefile fragments > for automatic dependency tracking. Try re-running configure with the > '--disable-dependency-tracking' option to at least be able to build > the package (albeit without support for automatic dependency tracking). > See `config.log' for more details > make[1]: *** [C:/lo/core/external/harfbuzz/ExternalProject_harfbuzz.mk:24: C:/lo/core/workdir/ExternalProject/harfbuzz/build] Error 1 because it didn't find any `make` (I only have an /opt/lo/bin/make installed). Change-Id: I378448b2cf1c92596220b0142e4e67a83162d972 Reviewed-on: https://gerrit.libreoffice.org/77987 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-23external/liborcus: Blind fix attempt for older macOS builds, take 2Stephan Bergmann1-7/+64
More places that need a workaround like 5c2c08f635c30b732df48faca7ba3d411074e05a "external/liborcus: Blind fix attempt for older macOS builds". Change-Id: Idcdfbddabac63bcc778a43ce5dfbf6b9f70d20e1 Reviewed-on: https://gerrit.libreoffice.org/78008 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-23external/liborcus: Blind fix attempt for older macOS buildsStephan Bergmann2-0/+60
see external/liborcus/0001-Blind-fix-attempt-for-older-macOS-builds.patch for details Change-Id: I7be71524da1cf702218170fd2c921d35c176ea4c Reviewed-on: https://gerrit.libreoffice.org/77997 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-23Update commentStephan Bergmann1-3/+0
external/liborcus/create-element.patch.0 has been removed with 52800fd6d9867252b795b6afacce19f66b5a5107 "Update orcus to 0.15.1." Change-Id: Ie127466778f9c15c8edd9de8511c3f60f6da1cd7 Reviewed-on: https://gerrit.libreoffice.org/77988 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-23Update orcus to 0.15.1.Kohei Yoshida2-56/+0
Change-Id: Ifd945d03719bf2ed1fb145b405f1ea9297ebeb68 Reviewed-on: https://gerrit.libreoffice.org/77983 Tested-by: Jenkins Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2019-08-20Update HarfBbuzz to 2.6.0Khaled Hosny3-24/+0
Change-Id: I7983dd10fe6599a2473caf0da04a0df3e63e9b2a Reviewed-on: https://gerrit.libreoffice.org/77790 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>