summaryrefslogtreecommitdiff
path: root/external/icu
AgeCommit message (Collapse)Author
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>
2022-01-19Decouple SRCDIR/include from SOLARINCStephan Bergmann
...turning the latter into "whatever include directories are needed for the given toolchain and platform, outside the scope of LibreOffice". This is a prerequisite for fixing <https://gerrit.libreoffice.org/c/core/+/128591/1> "Let CppunitTest_odk_checkapi build against the SDK include directory", which failed to find the C++ standard library headers (available via SOLARINC) on Windows. (In external/icu/ExternalProject_icu.mk, SRCDIR/include is needed for ANDROID to find <android/compatibility.hxx> in external/icu/icu4c-android.patch.1.) Change-Id: I960e31140b0839b2b6184a78d935042c3c558d5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128615 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-11icu: always use USE_SINGLE_CCODE_FILE pkgdata modeJan-Marek Glogowski
The pkgdata tool basically not only generates the data, but forces a non-parallel build for all data files for platforms, which can't use the (single file) assembler mode. This hits the WASM build, bringing down the parallel build to a crawl. But there is already the "hidden" optimization implemented in pkgdata to just write a single C source file, instead of one per locale. For some reason, that is just enabled on OS400. I don't think we have a platform, which would have a memory restriction doing this, so just uncondition this pkgdata build mode for everyone. Feel free to otherwise condition this patch for your platform in external/icu/UnpackedTarball_icu.mk. Change-Id: I482d80e853128d00faa43687e38f5b88fbf6958c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128266 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-06tdf#145892 disable failing assert in additional icu khmer patchCaolán McNamara
Change-Id: I8507c101544fcdcdc6e75c853c44e04e97a96d91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126411 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-16Update to ICU 70.1Eike Rathke
Unicode 14, 5 new scripts, 12 new Unicode blocks. In i18npool/qa/cppunit/test_breakiterator.cxx TestBreakIterator::testLao() had to be disabled/adapted. Needs to be investigated, see comments there. As is, Lao script word break has regressions. Correct UBLOCK_TANGUT_SUPPLEMENT Unicode range endpoint to 0x18D7F, see https://www.unicode.org/versions/Unicode14.0.0/erratafixed.html for which ublock_getCode(0x18D8F) now returned UBLOCK_NO_BLOCK and thus luckily the assert in svx/source/dialog/charmap.cxx hit. Change-Id: I4bad16ecfab3f44be365b8f884c57f34af68218e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125322 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-11-05icu: add patch for CVE-2021-30535Michael Stahl
Change-Id: I398596f77aa47ab6d4db01b94422262048cffd3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124779 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-05-12Update to ICU 69.1Eike Rathke
Change-Id: I32836175a877349777dcbb6eb7b0d813aa31199a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115479 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
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-02-24Build internal icu with user CFLAGSVincent LE GARREC
I have a Gentoo (Linux) with libxml2 built with icu support. Under Gentoo, icu is built with U_DISABLE_RENAMING=1. Building LibreOffice with internal icu uses system libxml2. So both builds need CFLAGS="U_DISABLE_RENAMING=1" to avoid naming conflicts. Change-Id: I565c4ac079aee5e48a1e43f21d0a697e3498f925 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111276 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Michael Stahl <michael.stahl@allotropia.de>
2020-11-18external/icu: Silence UBSan misaligned-pointer-useStephan Bergmann
...seen when e.g. building CustomTarget/i18npool/breakiterator/char_in.brk: > rbbitblb.cpp:1405:18: runtime error: member access within misaligned address 0x627000026987 for type 'icu_68::RBBIStateTableRow', which requires 2 byte alignment > 0x627000026987: note: pointer points here > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > ^ and > rbbitblb.cpp:1607:18: runtime error: member access within misaligned address 0x627000026ecf for type 'icu_68::RBBIStateTableRow', which requires 2 byte alignment > 0x627000026ecf: note: pointer points here > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > ^ (i.e., even though those code branches only access the byte-sized RBBIStateTableRow8 data, they did so through a RBBIStateTableRow union pointer, which has stronger alignment requirements) Change-Id: I0abe5bd756758e33e495538f548e80f99460f43c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106038 Tested-by: Jenkins 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-10-01icu: fix Windows Cygwin cross buildJan-Marek Glogowski
This replaces the previous, broken Windows ARM64 solution with a general fix for Cygwin cross-building. The main problem is the PATH environment, because that is colon-seperated on Cygwin, like on Unix, so won't work with any absolute "Windows" path, which is needed for the --with-cross-build option. One general change is the adoption of icucross.inc. I don't know, why that should prefer the general CURR_FULL_DIR from icudefs.mk over the specific one in @platform_make_fragment@. That breaks here, because it returns a cygwin unix path, which is used as an option to compiled tools, which these won't be able to handle. Change-Id: Ic2cf15b48801ac57ea5a8a2876ce59f2a84edfb3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103759 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-10-01icu: fix Windows extras buildJan-Marek Glogowski
Based on an upstream patch, with an additional hunk to fix the debug build. Gets rid of a difference between Windows and other builds. Change-Id: I597a5cb429fb3257535d8a2ce1142f5f9f34cebe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103758 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-09-30icu: fix Windows Arm64 buildJan-Marek Glogowski
I couldn't find a general solution to select the correct build path when cross compiling for Windows Arm64, so this just adds the patch in exactly this case, which WFM. Change-Id: I6e53e1531048404b70dcf61eab0a7f4021076868 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102852 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-09-25external/icu: Fix #include <numbers> under --with-latest-c++ -std=c++20Stephan Bergmann
Not sure why I started to get that failure exactly now, but with --with-latest-c++ enabling -std=c++20, builds with GCC (at least GCC 11 trunk) on Fedora 32 now failed with > In file included from ~/gcc/trunk/inst/include/c++/11.0.0/bits/max_size_type.h:37, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/ranges_base.h:38, > from ~/gcc/trunk/inst/include/c++/11.0.0/string_view:44, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/basic_string.h:48, > from ~/gcc/trunk/inst/include/c++/11.0.0/string:55, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/locale_classes.h:40, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/ios_base.h:41, > from ~/gcc/trunk/inst/include/c++/11.0.0/streambuf:41, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/streambuf_iterator.h:35, > from ~/gcc/trunk/inst/include/c++/11.0.0/iterator:66, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/ranges_algobase.h:36, > from ~/gcc/trunk/inst/include/c++/11.0.0/bits/ranges_uninitialized.h:36, > from ~/gcc/trunk/inst/include/c++/11.0.0/memory:69, > from ../common/unicode/localpointer.h:45, > from ../common/unicode/uenum.h:23, > from ../common/unicode/ucnv.h:53, > from unicode/ustdio.h:31, > from ufile.cpp:32: > ~/gcc/trunk/inst/include/c++/11.0.0/numbers:139:9: error: unable to find numeric literal operator ‘operator""Q’ > 139 | = 2.718281828459045235360287471352662498Q; > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ~/gcc/trunk/inst/include/c++/11.0.0/numbers:139:9: note: use ‘-fext-numeric-literals’ to enable more built-in suffixes etc. But the reason to #undef __STRICT_ANSI__ (which is set by -std=c++... vs. -std=gnu++...) in workdir/UnpackedTarball/icu/source/io/ufile.cpp appears to be obsolete, at least on Fedora 32 <stdio.h> does declare fileno (which is a POSIX extension) under -std=c++... just fine. Change-Id: I3707418db56d7fe9946655ab27bf1bf8eb479a1b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103371 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-15Set PYTHONWARNINGS to error by default for --enable-werrorMike Kaganski
Setting it in environment overrides this setting. The rationale is to avoid introducing warnings like these appeared recently: zipfile.py:1517: UserWarning: Duplicate name: 'cmd/ar/sc_bulletsandnumberingdialog.png' (see e.g. https://ci.libreoffice.org/job/gerrit_windows/71910/consoleFull) Change-Id: I8ae42e039ec3d028c01dbc4bcf422feae9e46271 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100268 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-08-16Pass $(verbose) into ExternalProject_icuStephan Bergmann
Change-Id: I4c93d4c4207645795812a0cafb64cbe32a7a520a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100823 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-17Update icu4c-android.patch.1 to recent ICU 67 upgradeThorsten Behrens
Looks fixed upstream (if slightly differently) Change-Id: If53722b867346d390866d9502fe36f976d702c31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94372 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-05-12external/icu: Silence UBSan invalid-null-argumentStephan Bergmann
...as seen during CppunitTest_i18npool_test_ordinalsuffix: > uloc.cpp:1206:5: runtime error: null pointer passed as argument 1, which is declared to never be null > /usr/include/string.h:44:28: note: nonnull attribute specified here > #0 in ulocimp_getLanguage_67 at workdir/UnpackedTarball/icu/source/common/uloc.cpp:1206:5 > #1 in uloc_getCountry_67 at workdir/UnpackedTarball/icu/source/common/uloc.cpp:1803:5 > #2 in ulocimp_getRegionForSupplementalData_67 at workdir/UnpackedTarball/icu/source/common/loclikely.cpp:1334:17 > #3 in idForLocale(char const*, char*, int, UErrorCode*) at workdir/UnpackedTarball/icu/source/common/ucurr.cpp:350:5 > #4 in ucurr_forLocale_67 at workdir/UnpackedTarball/icu/source/common/ucurr.cpp:535:5 > #5 in icu_67::DecimalFormatSymbols::initialize(icu_67::Locale const&, UErrorCode&, signed char, icu_67::NumberingSystem const*) at workdir/UnpackedTarball/icu/source/i18n/dcfmtsym.cpp:461:29 > #6 in icu_67::DecimalFormatSymbols::DecimalFormatSymbols(icu_67::Locale const&, UErrorCode&) at workdir/UnpackedTarball/icu/source/i18n/dcfmtsym.cpp:110:5 > #7 in icu_67::RuleBasedNumberFormat::initializeDecimalFormatSymbols(UErrorCode&) at workdir/UnpackedTarball/icu/source/i18n/rbnf.cpp:1854:53 > #8 in icu_67::RuleBasedNumberFormat::init(icu_67::UnicodeString const&, icu_67::LocalizationInfo*, UParseError&, UErrorCode&) at workdir/UnpackedTarball/icu/source/i18n/rbnf.cpp:1488:5 > #9 in icu_67::RuleBasedNumberFormat::RuleBasedNumberFormat(icu_67::URBNFRuleSetTag, icu_67::Locale const&, UErrorCode&) at workdir/UnpackedTarball/icu/source/i18n/rbnf.cpp:867:9 > #10 in i18npool::OrdinalSuffixService::getOrdinalSuffix(int, com::sun::star::lang::Locale const&) at i18npool/source/ordinalsuffix/ordinalsuffix.cxx:79:32 > #11 in non-virtual thunk to i18npool::OrdinalSuffixService::getOrdinalSuffix(int, com::sun::star::lang::Locale const&) at i18npool/source/ordinalsuffix/ordinalsuffix.cxx > #12 in TestOrdinalSuffix::testFrench() at i18npool/qa/cppunit/test_ordinalsuffix.cxx:53:29 etc. Change-Id: I4a87ee36fd33791c3906d6b6adc72ec824c4b3ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94047 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-11Upgrade to internal ICU 67Eike Rathke
Change-Id: I9b8d5cb6d6f4610f2b20c0e0f49eb674d55ce3b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94009 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-05-07no longer force -arch:SSE on WindowsLuboš Luňák
SSE2 has been pretty much a requirement for running Windows since about 2018, so there should be ~nobody needing this. https://lists.freedesktop.org/archives/libreoffice/2020-May/085029.html Change-Id: I579eb92c18e42c57aa1421b889cfa7997b84915f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93558 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-24icu: add patch to fix CVE-2020-10531Michael Stahl
Change-Id: I0aca4af1bd79f28bf1c920a4d05e80948106aaac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90971 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
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>
2019-12-04external/icu: Fix -Werror=deprecated-copy-dtorStephan Bergmann
...happening when LO code includes skia files: > In file included from workdir/UnpackedTarball/icu/source/i18n/unicode/format.h:47, > from workdir/UnpackedTarball/icu/source/i18n/unicode/numfmt.h:39, > from i18nutil/source/utility/unicode.cxx:26: > workdir/UnpackedTarball/icu/source/i18n/unicode/fieldpos.h: In copy constructor ‘icu_65::FieldPosition::FieldPosition(const icu_65::FieldPosition&)’: > workdir/UnpackedTarball/icu/source/i18n/unicode/fieldpos.h:146:102: error: implicitly-declared ‘constexpr icu_65::UObject::UObject(const icu_65::UObject&)’ is deprecated [-Werror=deprecated-copy-dtor] > 146 | : UObject(copy), fField(copy.fField), fBeginIndex(copy.fBeginIndex), fEndIndex(copy.fEndIndex) {} > | ^ > In file included from workdir/UnpackedTarball/icu/source/common/unicode/bytestream.h:44, > from workdir/UnpackedTarball/icu/source/common/unicode/locid.h:38, > from include/i18nlangtag/languagetagicu.hxx:16, > from i18nutil/source/utility/unicode.cxx:23: > /data/sbergman/lo-gcc/core/workdir/UnpackedTarball/icu/source/common/unicode/uobject.h:230:13: note: because ‘icu_65::UObject’ has user-provided ‘virtual icu_65::UObject::~UObject()’ > 230 | virtual ~UObject(); > | ^ See e9e4eb0736d5582fa37dcad20bf5826c50029249 "Fix some -Werror=deprecated-copy-dtor" for details about -Wdeprecated-copy-dtor. Change-Id: I89b94047af30452dd4e316b33877dd0775a851aa Reviewed-on: https://gerrit.libreoffice.org/84426 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-30Upgrade to ICU 65.1Eike Rathke
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 Bergmann
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 Bergmann
...(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 Rathke
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-22exernal/icu: Various C++20 comparison operator fixesStephan Bergmann
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-02external/icu: Fix "error: explicit instantiation of 'atomic' not in...Stephan Bergmann
...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-05-05Fix remaining uses of gb_SYMBOLStephan Bergmann
...after eeeec33ada5923f1f534334b22c15d6e2c6f1d35 "merge --enable-selective-debuginfo into --enable-symbols" had removed it Change-Id: I83aed6e21c4b983d8645707daa65bd85ec16ff6b Reviewed-on: https://gerrit.libreoffice.org/71798 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-02-20icu: fix CVE-2018-18928Michael Stahl
Eike says that no LO code should use ICU number parser/formatter, but meanwhile ICU is also used in the externals firebird, harfbuzz, hunspell, libcdr, libebook, libfreehand, libmspub, libqxp, libivsio, libxml2, libzmf, pdfium, xmlsec, so let's just patch it to be sure. Change-Id: I3e1a76d7ceefadbe3c514ad7f1384a4daa196f36 Reviewed-on: https://gerrit.libreoffice.org/68098 Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Tested-by: Michael Stahl <Michael.Stahl@cib.de>
2019-01-24Drop unnecessary gb_DEBUG_CFLAGSStephan Bergmann
...which was at maximum set to GCC's -finline-limit=0 -fno-inline (solenv/gbuild/platform/com_GCC_defs.mk). Those options were set for debug builds "since forever", but that looks very much like cargo cult: -fno-inline "is the default when not optimizing" anyway (<https://gcc.gnu.org/onlinedocs/gcc-7.4.0/gcc/Optimize-Options.html>), and it is unclear to me how -finline-limit=0 should have any impact beyond -fno-inline (and maybe was present for ancient compilers that only supported -finline-limit but not -fno-inline?). Change-Id: Id6752d03b1b7ec8763defabc5720d4dd08790874 Reviewed-on: https://gerrit.libreoffice.org/66836 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-17Adapt to C++2a char_tStephan Bergmann
u8 literals incompatibly change their type (as implemented by recent Clang trunk) Change-Id: Ia4f7b91f5d86656a056303d2754981ab2093a739 Reviewed-on: https://gerrit.libreoffice.org/63494 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-01gbuild: rename value OS=IOS to OS=iOSMichael Stahl
This gets rid of the horrible hack in gbuild.mk to accomodate the case-incorrect iOS platform makefiles that cannot be renamed without upsetting git on file systems that sadly lack the case sensitivity feature. Keep the macro defined to IOS though. Change-Id: I1022bfef4900da00e75fc1ccce786b20f8673234 Reviewed-on: https://gerrit.libreoffice.org/62705 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-10-20Upgrade to ICU 63.1Eike Rathke
Change-Id: I3b73fca39f51809f608dd78865c2566357a7b8a1 Reviewed-on: https://gerrit.libreoffice.org/62034 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2018-09-09ofz#10100 use --disable-release to avoid icu adding extra link flagsCaolán McNamara
so only use our passed in link flags, and so avoid failing under oss-fuzz with linker problem https://github.com/google/oss-fuzz/issues/1789 and revert the interim hackery to narrow down the problem Change-Id: Ic92f65ac3895d36a2917281c260e177caf2d31f5 Reviewed-on: https://gerrit.libreoffice.org/60216 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-09-07ofz#10100 skip namespace check in icuCaolán McNamara
fails under oss-fuzz with linker problem https://github.com/google/oss-fuzz/issues/1789 Change-Id: I5788fca1914c1b795a91d59f7d9271f854b4d464 Reviewed-on: https://gerrit.libreoffice.org/60134 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-09-06ofz#10100 dump failed icu config.log on failureCaolán McNamara
Change-Id: I53059b6be263b2abc00e8818a9aeae74b9902a1c Reviewed-on: https://gerrit.libreoffice.org/60082 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-03icu: fix Android buildMiklos Vajna
Change-Id: I9c2f508098610ff97f059bb325401de052a35e3c Reviewed-on: https://gerrit.libreoffice.org/58549 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins
2018-07-26external/icu: silence -Werror=deprecated-copy (GCC trunk towards GCC 9)Stephan Bergmann
Change-Id: I43ecb3c0daac421e48433af04b1109bac02cc9aa Reviewed-on: https://gerrit.libreoffice.org/58044 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-24icu: icu4c-icu11100.patch.1 presumed obsoleteMichael Stahl
According to http://bugs.icu-project.org/trac/ticket/11100 the bug was fixed upstream in a different way so hopefully this patch can be removed (but i don't know how to verify this). Change-Id: I815c17dae3de2d57d2e0e247cf5823dfc1cc7109 Reviewed-on: https://gerrit.libreoffice.org/57391 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-07-16Upgrade to ICU 62.1Eike Rathke
Change-Id: I9426e77aa85cfe068df59db47b8ac50b59cd4eb3 Reviewed-on: https://gerrit.libreoffice.org/57500 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2018-07-04drop usage of --dynamic-list-cpp-new/typeinfoLuboš Luňák
First of all, lld doesn't have these options, but there doesn't seem to be any point in using them anyway. They are supposed to block the effect of -Bsymbolic-functions, but: - --dynamic-list-cpp-new matters only if we'd create our own global operator new/delete, which we don't - --dynamic-list-cpp-typeinfo affects only the typeinfo (_ZTI*) and typeinfo name (_ZTS*) symbols, which are not functions, and so -Bsymbolic-functions shouldn't do anything with them. According to https://sourceware.org/bugzilla/show_bug.cgi?id=3831 my understanding is that --dynamic-list-cpp-typeinfo actually predates -Bsymbolic-functions and it was an attempt to do the same from the other direction ('bind locally everything except for this' instead of 'bind locally only functions'). Change-Id: Iadad2d78f32a2adfb9c2100fb4eb5abe75725545 Reviewed-on: https://gerrit.libreoffice.org/56739 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Luboš Luňák <l.lunak@collabora.com>
2018-04-18Keep the still relevant part of external/icu/icu4c-ubsan.patch.1Stephan Bergmann
...which f247f08e370626bbb427acd8f4a400fd875350a3 "Upgrade to ICU 61.1" had removed completely, in error. Change-Id: I7239011561851333cac58e54e4e7d590b8529dbc
2018-04-18Upgrade to ICU 61.1Eike Rathke
Change-Id: I89c1c3d13d85decc72576744de2a16d20471d29d Reviewed-on: https://gerrit.libreoffice.org/53064 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2018-03-06forcepoint: fix out-of-bounds read in ICUDavid Tardon
Change-Id: I5061d38d0e7df0de9a5c7574d522ce69934e4a24
2018-01-18android: use unified headers and llvm-c++ STL (x86) with NDK 16Christian Lohmaier
gnustl (and others) are to be removed in future versions of the ndk also bump gradle and build-tools to current versions along with it arm unfortunately crashes with llvm-c++, so keep with gnustl for now/fix that later Change-Id: Ic794c3293b599b77ec48096bf3283a99c09cbb79 Reviewed-on: https://gerrit.libreoffice.org/45163 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-11-28icu: don't skip building the data just because tools were disabledChristian Lohmaier
building for e.g. android disables the tests and requests data in a static library, but icu completely skips building the data directory in case --disable-tools was specified: icu/source/Makefile.in @TOOLS_TRUE@DATASUBDIR = data will become #DATASUBDIR = data and then SUBDIRS = stubdata common i18n $(LAYOUTEX) $(ICUIO) $(TOOLS) $(DATASUBDIR) $(EXTRA) $(SAMPLE) $(TEST) will not have the data dir and make will ignore it. Add it back by specifying it when invoking make and all is fine. Change-Id: I0af693f22938ebabdc189a97f1cfc3f8b1c042ee Reviewed-on: https://gerrit.libreoffice.org/45107 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins <ci@libreoffice.org>
2017-11-21buildfix for icu/android – no member named 'round' in namespace 'std'Christian Lohmaier
"number_decimalquantity.cpp:387:40: error: no member named 'round' in namespace 'std'; did you mean simply 'round'?" auto result = static_cast<int64_t>(std::round(n)); ^~~~~~~~~~ round /home/cl/Android/Sdk/ndk-bundle/platforms/android-14/arch-x86/usr/include/math.h:279:8: note: 'round' declared here double round(double); ^ Change-Id: If4dc1054469f234bfa9713eded1d325c71f9f79c