From 363953bde7834e17491a7d9027a9cd0eb2b52d96 Mon Sep 17 00:00:00 2001 From: Michael Weghorn Date: Mon, 28 Sep 2026 12:13:05 +0200 Subject: [PATCH] Add freetype linker flags for cairo to fix wasm build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not only the freetype headers, but also freetype linker flags are needed when building using internal cairo. Adjust accordingly. (The 'freetype' external already uses the 'freetype_headers' one, so specifying only 'freetype' is enough.) This fixes the following build error otherwise seen in a wasm/Emscripten build after commit ea7166ec8be60625f06a4adf11135d0d584f20cc Date: Fri Jul 24 18:01:51 2026 +0300 vcl: Don’t link against freetype It is not used directly anymore. : em++: warning: EXPORT_EXCEPTION_HANDLING_HELPERS is deprecated (getExceptionMessage is exported anyway when ASSERTIONS or EXCEPTION_STACK_TRACES is set, which are set by default at -O0. At -O1 or above, you can export it separately by -sEXPORTED_RUNTIME_METHODS=getExceptionMessage,decrementExceptionRefcount.). Please open a bug if you have a continuing need for this setting [-Wdeprecated] wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Outline_Transform wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Outline_Decompose wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Done_Face wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_New_Face wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Set_Transform wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Set_Char_Size wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_MM_Var wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Var_Design_Coordinates wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Done_MM_Var wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_MM_Var wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Var_Design_Coordinates wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Set_Var_Design_Coordinates wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Done_MM_Var wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Init_FreeType wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Paint wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Paint wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Layer wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Layer wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Load_Glyph wasm-ld: error: /home/michi/development/git/libreoffice-WORKTREE-wasm/workdir/UnpackedTarball/cairo/builddir/src/libcairo-lo.a(cairo-ft-font.c.o): undefined symbol: FT_Get_Color_Glyph_Layer wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) Same also seen in the Tinderbox wasm builds: https://ci.libreoffice.org/view/tb%20platform%20status/job/lo_daily_tb_linux_wasm/1547/console Change-Id: Iea8725f9177417cdd3d6e410f693b9ac46d95e78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211510 Tested-by: Jenkins Reviewed-by: Michael Weghorn --- RepositoryExternal.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 7466621c371e..65c8cf703290 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1388,7 +1388,7 @@ endif define gb_LinkTarget__use_cairo $(call gb_LinkTarget_use_package,$(1),cairo) $(call gb_LinkTarget_use_package,$(1),pixman) -$(call gb_LinkTarget_use_external,$(1),freetype_headers) +$(call gb_LinkTarget_use_external,$(1),freetype) $(call gb_LinkTarget_set_include,$(1),\ -I$(gb_UnpackedTarball_workdir)/cairo \ -I$(gb_UnpackedTarball_workdir)/cairo/src \