external/freetype/ExternalProject_freetype.mk |    1 +
 external/freetype/UnpackedTarball_freetype.mk |    1 +
 external/freetype/zlib-duplicates.patch       |   22 ++++++++++++++++++++++
 3 files changed, 24 insertions(+)

New commits:
commit e515267602d9049bc15739a215f43f1379141d81
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Wed Nov 16 18:11:18 2022 +0100
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Wed Nov 16 19:11:47 2022 +0100

    external/freetype: Avoid duplicate zlib symbols
    
    After 7229a380d3d607dc896e1d48b1a13f7b301aef80 "Update freetype to 2.12.0", 
my
    --without-system-freetype --without-system-zlib Linux build started to fail 
to
    link Library_skia with
    
    > ld.lld: error: duplicate symbol: zlibVersion
    > >>> defined at zutil.c:28 (workdir/UnpackedTarball/zlib/zutil.c:28)
    > >>>            zutil.o:(zlibVersion) in archive 
core/workdir/LinkTarget/StaticLibrary/libzlib.a
    > >>> defined at zutil.c:28 (src/gzip/zutil.c:28)
    > >>>            ftgzip.o:(.text+0x0) in archive 
workdir/UnpackedTarball/freetype/instdir/lib/libfreetype.a
    
    etc. because both those non-system libraries are provided as static 
archives.
    
    There is also provisioning for symbol renaming in
    workdir/UnpackedTarball/freetype/src/gzip/ftzconf.h via -DZ_PREFIX, so 
enable
    that.  But three symbols were missing and would still produce linker 
failures,
    so add them with external/freetype/zlib-duplicates.patch.
    
    Change-Id: Ibe876d4e38e3e44ce00c64fb70c88fb0b1e3a910
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142788
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/external/freetype/ExternalProject_freetype.mk 
b/external/freetype/ExternalProject_freetype.mk
index 2a61ac7d7be4..f8adeb46f6fd 100644
--- a/external/freetype/ExternalProject_freetype.mk
+++ b/external/freetype/ExternalProject_freetype.mk
@@ -30,6 +30,7 @@ $(call gb_ExternalProject_get_state_target,freetype,build) :
                                $(call 
gb_ExternalProject_get_build_flags,freetype) \
                                $(gb_VISIBILITY_FLAGS) \
                                $(gb_EMSCRIPTEN_CPPFLAGS)" \
+                       CPPFLAGS='$(CPPFLAGS) -DZ_PREFIX' \
                        LDFLAGS="$(call 
gb_ExternalProject_get_link_flags,freetype)" \
                && $(MAKE) install \
                && touch $@     )
diff --git a/external/freetype/UnpackedTarball_freetype.mk 
b/external/freetype/UnpackedTarball_freetype.mk
index 076edb9e3d97..0bc090ec2d34 100644
--- a/external/freetype/UnpackedTarball_freetype.mk
+++ b/external/freetype/UnpackedTarball_freetype.mk
@@ -14,6 +14,7 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,freetype,$(FREETYPE_TARBALL),,freet
 $(eval $(call gb_UnpackedTarball_add_patches,freetype,\
        external/freetype/freetype-2.6.5.patch.1 \
        external/freetype/ubsan.patch \
+       external/freetype/zlib-duplicates.patch \
 ))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,freetype,0))
diff --git a/external/freetype/zlib-duplicates.patch 
b/external/freetype/zlib-duplicates.patch
new file mode 100644
index 000000000000..9ae562c61b4f
--- /dev/null
+++ b/external/freetype/zlib-duplicates.patch
@@ -0,0 +1,22 @@
+--- src/gzip/ftzconf.h
++++ src/gzip/ftzconf.h
+@@ -130,10 +130,8 @@
+ #    define uncompress2           z_uncompress2
+ #  endif
+ #  define zError                z_zError
+-#  ifndef Z_SOLO
+ #    define zcalloc               z_zcalloc
+ #    define zcfree                z_zcfree
+-#  endif
+ #  define zlibCompileFlags      z_zlibCompileFlags
+ #  define zlibVersion           z_zlibVersion
+ 
+@@ -163,6 +161,8 @@
+ #  define gz_header_s           z_gz_header_s
+ #  define internal_state        z_internal_state
+ 
++#define z_errmsg z_z_errmsg
++
+ #endif
+ 
+ #if defined(__MSDOS__) && !defined(MSDOS)

Reply via email to