external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 | 72 ++++++++++ external/zxcvbn-c/ExternalProject_zxcvbn-c.mk | 2 external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk | 2 external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk | 3 4 files changed, 79 insertions(+)
New commits: commit 7d392796df7ee52279285cfe67d800c3aa3cbe61 Author: Stephan Bergmann <[email protected]> AuthorDate: Tue Feb 6 13:27:59 2024 +0100 Commit: Andras Timar <[email protected]> CommitDate: Sun Apr 6 14:07:44 2025 +0200 external/zxcvbn-c: There is no std::basic_string<int> ...and at least LLVM 19 trunk libc++ complains about it now since <c3668779c13596e223c26fbd49670d18cd638c40> "[libc++] Remove deprecated char_traits base template (#72694)" with > In file included from dict-generate.cpp:25: > In file included from ~/llvm/inst/bin/../include/c++/v1/iostream:43: > In file included from ~/llvm/inst/bin/../include/c++/v1/ios:223: > In file included from ~/llvm/inst/bin/../include/c++/v1/__locale:24: > ~/llvm/inst/bin/../include/c++/v1/string:746:43: error: implicit instantiation of undefined template 'std::char_traits<int>' > 746 | static_assert((is_same<_CharT, typename traits_type::char_type>::value), > | ^ > dict-generate.cpp:861:18: note: in instantiation of template class 'std::basic_string<int>' requested here > 861 | StringOfInts Chld; > | ^ > ~/llvm/inst/bin/../include/c++/v1/__fwd/string.h:23:29: note: template is declared here > 23 | struct _LIBCPP_TEMPLATE_VIS char_traits; > | ^ etc., so use a std::vector<int> instead Change-Id: I51e8296edf7b16925ff01679e671525256055552 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163048 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <[email protected]> diff --git a/external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 b/external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 new file mode 100644 index 000000000000..a1fe25bba08e --- /dev/null +++ b/external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 @@ -0,0 +1,72 @@ +From 92c6ea875231876ca264187326ce2d615d5ad543 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann <[email protected]> +Date: Tue, 6 Feb 2024 13:14:08 +0100 +Subject: There is no std::basic_string<int> + +...and at least LLVM 19 trunk libc++ complains about it now since +<c3668779c13596e223c26fbd49670d18cd638c40> "[libc++] Remove deprecated +char_traits base template (#72694)" with + +> In file included from dict-generate.cpp:25: +> In file included from ~/llvm/inst/bin/../include/c++/v1/iostream:43: +> In file included from ~/llvm/inst/bin/../include/c++/v1/ios:223: +> In file included from ~/llvm/inst/bin/../include/c++/v1/__locale:24: +> ~/llvm/inst/bin/../include/c++/v1/string:746:43: error: implicit instantiation of undefined template 'std::char_traits<int>' +> 746 | static_assert((is_same<_CharT, typename traits_type::char_type>::value), +> | ^ +> dict-generate.cpp:861:18: note: in instantiation of template class 'std::basic_string<int>' requested here +> 861 | StringOfInts Chld; +> | ^ +> ~/llvm/inst/bin/../include/c++/v1/__fwd/string.h:23:29: note: template is declared here +> 23 | struct _LIBCPP_TEMPLATE_VIS char_traits; +> | ^ + +etc., so use a std::vector<int> instead +--- + dict-generate.cpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/dict-generate.cpp b/dict-generate.cpp +index eebcca9..fcfaaea 100644 +--- a/dict-generate.cpp ++++ b/dict-generate.cpp +@@ -22,6 +22,7 @@ + * + **********************************************************************************/ + ++#include <algorithm> + #include <iostream> + #include <string> + #include <fstream> +@@ -387,7 +388,7 @@ typedef map<string, Entry> EntryMap_t; + typedef list<string> StringList_t; + typedef list<NodeSPtr> NodeList_t; + typedef set<StringInt> StringIntSet_t; +-typedef basic_string<int> StringOfInts; ++typedef vector<int> StringOfInts; + typedef vector<unsigned int> UintVect; + typedef vector<uint64_t> Uint64Vect; + typedef vector<StringInt *> StrIntPtrVect_t; +@@ -864,15 +865,14 @@ void CreateArrays(NodeSPtr Root, StringIntSet_t & StrSet, StringOfInts & ChildAd + for(Itc = Root->ChildBegin(); Itc != Root->ChildEnd(); ++Itc) + { + int i = Itc->second->GetAddr(); +- Chld += i; ++ Chld.push_back(i); + } + // Find where in pointer array the child pointer string is +- StringOfInts::size_type x = ChildAddrs.find(Chld); +- if (x == StringOfInts::npos) ++ StringOfInts::size_type x = search(ChildAddrs.begin(), ChildAddrs.end(), Chld.begin(), Chld.end()) - ChildAddrs.begin(); ++ if (x == ChildAddrs.size()) + { + // Not found, add it +- x = ChildAddrs.length(); +- ChildAddrs += Chld; ++ ChildAddrs.insert(ChildAddrs.end(), Chld.begin(), Chld.end()); + } + // Val will contain the final node data + uint64_t Val = Its->i; +-- +2.43.0 + diff --git a/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk b/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk index b6eba6b8cb3a..b3b76aa3ef1c 100644 --- a/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk +++ b/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk @@ -11,8 +11,11 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,zxcvbn-c)) $(eval $(call gb_UnpackedTarball_set_tarball,zxcvbn-c,$(ZXCVBN_C_TARBALL))) +# * external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 sent upstream as +# <https://github.com/tsyrogit/zxcvbn-c/pull/31> "There is no std::basic_string<int>": $(eval $(call gb_UnpackedTarball_add_patches,zxcvbn-c,\ external/zxcvbn-c/zxcvbn-c-2.5-do-not-use-stdafx.patch \ + external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 \ )) # vim: set noet sw=4 ts=4: commit 70048affa456e843f7c8b9b012983315af919db3 Author: Thorsten Behrens <[email protected]> AuthorDate: Sat Dec 23 22:37:26 2023 +0100 Commit: Andras Timar <[email protected]> CommitDate: Sun Apr 6 14:07:26 2025 +0200 zxcvbn-c: disable warnings Change-Id: I348dc5f92f41fc3e8c1aee8743d5e1cf86fa3bbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161259 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <[email protected]> diff --git a/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk b/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk index 51b60a9c2ecb..bd652464ca15 100644 --- a/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk +++ b/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk @@ -9,6 +9,8 @@ $(eval $(call gb_ExternalProject_ExternalProject,zxcvbn-c)) +$(eval $(call gb_Library_set_warnings_disabled,zxcvbn-c)) + $(eval $(call gb_ExternalProject_register_targets,zxcvbn-c,\ generate-dictionary-nodes \ )) diff --git a/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk b/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk index 9748ef850c55..ac670ad6ed5b 100644 --- a/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk +++ b/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk @@ -11,6 +11,8 @@ $(eval $(call gb_StaticLibrary_StaticLibrary,zxcvbn-c)) $(eval $(call gb_StaticLibrary_use_unpacked,zxcvbn-c,zxcvbn-c)) +$(eval $(call gb_StaticLibrary_set_warnings_disabled,zxcvbn-c)) + # zxcvbn-c static library depends on generation of dictionary nodes resulting in dict-src.h $(eval $(call gb_StaticLibrary_use_external_project,zxcvbn-c,zxcvbn-c,full))
