commit:     fe7f18c0328bfc8fdea0585f8d5bb5dec9d3491f
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 28 08:31:47 2024 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Sun Jul 28 08:36:41 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe7f18c0

dev-libs/xalan-c: fix building with gcc-15

Remove the offending function, it was never instantiated.
I tested the 2 known reverse dependencies, they build fine.

Closes: https://bugs.gentoo.org/936501
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 dev-libs/xalan-c/files/xalan-c-1.12-gcc-15.patch | 51 ++++++++++++++++++++++++
 dev-libs/xalan-c/xalan-c-1.12-r2.ebuild          |  1 +
 2 files changed, 52 insertions(+)

diff --git a/dev-libs/xalan-c/files/xalan-c-1.12-gcc-15.patch 
b/dev-libs/xalan-c/files/xalan-c-1.12-gcc-15.patch
new file mode 100644
index 000000000000..2b2f2b42c46f
--- /dev/null
+++ b/dev-libs/xalan-c/files/xalan-c-1.12-gcc-15.patch
@@ -0,0 +1,51 @@
+https://bugs.gentoo.org/936501
+
+This function does not compile with gcc-15, but it was never instantiated, so 
just remove it.
+
+--- a/src/xalanc/XMLSupport/XalanOtherEncodingWriter.hpp
++++ b/src/xalanc/XMLSupport/XalanOtherEncodingWriter.hpp
+@@ -301,44 +301,6 @@ public:
+         return write(chars, start, length, m_charRefFunctor);
+     }
+ 
+-    void
+-    writeSafe(
+-            const XalanDOMChar*     theChars,
+-            size_type               theLength)
+-    {
+-        for(size_type i = 0; i < theLength; ++i)
+-        {
+-            const XalanDOMChar  ch = theChars[i];
+-
+-            if (isUTF16HighSurrogate(ch) == true)
+-            {
+-                if (i + 1 >= theLength)
+-                {
+-                    throwInvalidUTF16SurrogateException(ch, 0,  
getMemoryManager());
+-                }
+-                else 
+-                {
+-                    XalanUnicodeChar    value = decodeUTF16SurrogatePair(ch, 
theChars[i+1],  getMemoryManager());
+-
+-                    if (this->m_isPresentable(value))
+-                    {
+-                        write(value);
+-                    }
+-                    else
+-                    {
+-                        this->writeNumberedEntityReference(value);
+-                    }
+-
+-                    ++i;
+-                }
+-            }
+-            else
+-            {
+-                write(static_cast<XalanUnicodeChar>(ch));
+-            }
+-        }
+-    }
+-
+     void
+     write(const XalanDOMChar*     theChars)
+     {

diff --git a/dev-libs/xalan-c/xalan-c-1.12-r2.ebuild 
b/dev-libs/xalan-c/xalan-c-1.12-r2.ebuild
index beb96a63de6f..ce92a2b0e6c6 100644
--- a/dev-libs/xalan-c/xalan-c-1.12-r2.ebuild
+++ b/dev-libs/xalan-c/xalan-c-1.12-r2.ebuild
@@ -45,6 +45,7 @@ PATCHES=(
        "${FILESDIR}"/${P}-fix-lto.patch
        "${FILESDIR}"/${P}-fix-threads.patch
        "${FILESDIR}"/${P}-icu-75.patch
+       "${FILESDIR}"/${P}-gcc-15.patch
 )
 
 src_configure() {

Reply via email to