diff --git a/dev-cpp/lucene++/files/lucene++-3.0.9-no-inline.patch b/dev-cpp/lucene++/files/lucene++-3.0.9-no-inline.patch new file mode 100644 index 0000000000000..58b00b2295e1d --- /dev/null +++ b/dev-cpp/lucene++/files/lucene++-3.0.9-no-inline.patch @@ -0,0 +1,70 @@ +From https://github.com/luceneplusplus/LucenePlusPlus/pull/200 +Bug: https://bugs.gentoo.org/973146 +Pruned compiler errors to relevant lines. + +From: Gianfranco Costamagna +Date: Sat, 24 Feb 2024 21:26:58 +0100 +Subject: [PATCH] Update DefaultSimilarity.cpp + +This fixes a linker failure when building tests (lto related?) +https://launchpadlibrarian.net/715939877/buildlog_ubuntu-noble-amd64.lucene++_3.0.9-1_BUILDING.txt.gz +.. +/usr/bin/ld: /tmp/ccUJivoA.ltrans35.ltrans.o:(.data.rel.ro+0x558): undefined reference to `Lucene::DefaultSimilarity::queryNorm(double)' +/usr/bin/ld: /tmp/ccUJivoA.ltrans35.ltrans.o:(.data.rel.ro+0x568): undefined reference to `Lucene::DefaultSimilarity::sloppyFreq(int)' +/usr/bin/ld: /tmp/ccUJivoA.ltrans35.ltrans.o:(.data.rel.ro+0x570): undefined reference to `Lucene::DefaultSimilarity::tf(double)' +/usr/bin/ld: /tmp/ccUJivoA.ltrans35.ltrans.o:(.data.rel.ro+0x588): undefined reference to `Lucene::DefaultSimilarity::idf(int, int)' +/usr/bin/ld: /tmp/ccUJivoA.ltrans35.ltrans.o:(.data.rel.ro+0x590): undefined reference to `Lucene::DefaultSimilarity::coord(int, int)' +/usr/bin/ld: /tmp/ccUJivoA.ltrans72.ltrans.o:(.data.rel.ro+0x360): undefined reference to `Lucene::DefaultSimilarity::lengthNorm(std::__cxx11::basic_string, std::allocator > const&, int)' +.. +--- + src/core/search/DefaultSimilarity.cpp | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/core/search/DefaultSimilarity.cpp b/src/core/search/DefaultSimilarity.cpp +index c98f2d95..da4c3db2 100644 +--- a/src/core/search/DefaultSimilarity.cpp ++++ b/src/core/search/DefaultSimilarity.cpp +@@ -27,35 +27,35 @@ double DefaultSimilarity::computeNorm(const String& fieldName, const FieldInvert + return (state->getBoost() * lengthNorm(fieldName, numTerms)); + } + +-inline double DefaultSimilarity::lengthNorm(const String& fieldName, int32_t numTokens) { ++double DefaultSimilarity::lengthNorm(const String& fieldName, int32_t numTokens) { + return (double)(1.0 / std::sqrt((double)numTokens)); + } + +-inline double DefaultSimilarity::queryNorm(double sumOfSquaredWeights) { ++double DefaultSimilarity::queryNorm(double sumOfSquaredWeights) { + return (double)(1.0 / std::sqrt(sumOfSquaredWeights)); + } + +-inline double DefaultSimilarity::tf(double freq) { ++double DefaultSimilarity::tf(double freq) { + return (double)std::sqrt(freq); + } + +-inline double DefaultSimilarity::sloppyFreq(int32_t distance) { ++double DefaultSimilarity::sloppyFreq(int32_t distance) { + return (1.0 / (double)(distance + 1)); + } + +-inline double DefaultSimilarity::idf(int32_t docFreq, int32_t numDocs) { ++double DefaultSimilarity::idf(int32_t docFreq, int32_t numDocs) { + return (double)(std::log((double)numDocs / (double)(docFreq + 1)) + 1.0); + } + +-inline double DefaultSimilarity::coord(int32_t overlap, int32_t maxOverlap) { ++double DefaultSimilarity::coord(int32_t overlap, int32_t maxOverlap) { + return (double)overlap / (double)maxOverlap; + } + +-inline void DefaultSimilarity::setDiscountOverlaps(bool v) { ++void DefaultSimilarity::setDiscountOverlaps(bool v) { + discountOverlaps = v; + } + +-inline bool DefaultSimilarity::getDiscountOverlaps() { ++bool DefaultSimilarity::getDiscountOverlaps() { + return discountOverlaps; + } + diff --git a/dev-cpp/lucene++/lucene++-3.0.9-r2.ebuild b/dev-cpp/lucene++/lucene++-3.0.9-r2.ebuild index d3b127f1f2ea8..5ef6841741c88 100644 --- a/dev-cpp/lucene++/lucene++-3.0.9-r2.ebuild +++ b/dev-cpp/lucene++/lucene++-3.0.9-r2.ebuild @@ -33,6 +33,7 @@ PATCHES=( "${FILESDIR}/${PN}-3.0.9-gcc15.patch" "${FILESDIR}/${PN}-3.0.9-boost-1.89.patch" "${FILESDIR}/${PN}-3.0.9-boost-1.90.patch" + "${FILESDIR}/${PN}-3.0.9-no-inline.patch" ) src_configure() {