diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2022-11-16 18:11:18 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2022-11-16 19:11:47 +0100 |
commit | e515267602d9049bc15739a215f43f1379141d81 (patch) | |
tree | 89982447c39caecd5100d231ae004acda6fcf1c1 | |
parent | c81d66e96c2410c6a2c2955ead3b7d3d441e092a (diff) |
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 <sbergman@redhat.com>
-rw-r--r-- | external/freetype/ExternalProject_freetype.mk | 1 | ||||
-rw-r--r-- | external/freetype/UnpackedTarball_freetype.mk | 1 | ||||
-rw-r--r-- | external/freetype/zlib-duplicates.patch | 22 |
3 files changed, 24 insertions, 0 deletions
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) |