From 4b140a38e3972b5ec64a8e95b794d12e345253067aa81c6fd419256beba3a289 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sat, 2 Nov 2024 23:54:42 +0100 Subject: [PATCH] Add gcc14.patch --- gcc14.patch | 32 ++++++++++++++++++++++++++++++++ openfst.changes | 5 +++++ openfst.spec | 4 ++-- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 gcc14.patch diff --git a/gcc14.patch b/gcc14.patch new file mode 100644 index 0000000..b02d485 --- /dev/null +++ b/gcc14.patch @@ -0,0 +1,32 @@ +From: Jan Engelhardt +Date: 2024-11-02 23:48:50.447834368 +0100 + +g++-14 does more checks even on _unexpanded_ templates; hence this +new error that did not show up in g++-12. + +Building encode.cc under g++-14 yielded: + +``` +./../include/fst/fst.h:690:59: error: no match for 'operator=' (operand types are 'std::unique_ptr >' and 'fst::SymbolTable*') + 690 | isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr; +``` + +--- + src/include/fst/fst.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: openfst-1.8.3/src/include/fst/fst.h +=================================================================== +--- openfst-1.8.3.orig/src/include/fst/fst.h ++++ openfst-1.8.3/src/include/fst/fst.h +@@ -687,8 +687,8 @@ class FstImpl { + properties_.store(impl.properties_.load(std::memory_order_relaxed), + std::memory_order_relaxed); + type_ = impl.type_; +- isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr; +- osymbols_ = impl.osymbols_ ? impl.osymbols_->Copy() : nullptr; ++ isymbols_.reset(impl.isymbols_ ? impl.isymbols_->Copy() : nullptr); ++ osymbols_.reset(impl.osymbols_ ? impl.osymbols_->Copy() : nullptr); + return *this; + } + diff --git a/openfst.changes b/openfst.changes index 344c74c..bd18a6d 100644 --- a/openfst.changes +++ b/openfst.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Nov 2 22:54:35 UTC 2024 - Jan Engelhardt + +- Add gcc14.patch + ------------------------------------------------------------------- Thu Feb 8 13:43:36 UTC 2024 - Jan Engelhardt diff --git a/openfst.spec b/openfst.spec index eea989d..d59777c 100644 --- a/openfst.spec +++ b/openfst.spec @@ -26,6 +26,7 @@ Group: Development/Libraries/C and C++ URL: http://www.openfst.org/ Source: http://www.openfst.org/twiki/pub/FST/FstDownload/%name-%version.tar.gz Patch1: i586-80bitfp.patch +Patch2: gcc14.patch %if 0%{?suse_version} && 0%{?suse_version} < 1600 BuildRequires: gcc12-c++ >= 8.1.0 %else @@ -72,8 +73,7 @@ autoreconf -fi %make_install find %buildroot/%_libdir -type f -name "*.la" -print -delete -%post -n %lname -p /sbin/ldconfig -%postun -n %lname -p /sbin/ldconfig +%ldconfig_scriptlets -n %lname %files %license COPYING