Ports: Replace manually linking freetype with a libtool patch

This commit is contained in:
Daniel Bertalan 2023-08-01 21:15:27 +02:00 committed by Tim Schumacher
parent a050d91073
commit e9ce317483
3 changed files with 89 additions and 6 deletions

View file

@ -13,9 +13,3 @@ configopts=(
"--with-harfbuzz=no"
"--with-png=no"
)
install() {
run make DESTDIR="${SERENITY_INSTALL_ROOT}" "${installopts[@]}" install
${CC} -shared -o "${SERENITY_INSTALL_ROOT}/usr/local/lib/libfreetype.so" -Wl,-soname,libfreetype.so -Wl,--whole-archive "${SERENITY_INSTALL_ROOT}/usr/local/lib/libfreetype.a" -Wl,--no-whole-archive
rm -f "${SERENITY_INSTALL_ROOT}/usr/local/lib/libfreetype.la"
}

View file

@ -0,0 +1,73 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tim Schumacher <timschumi@gmx.de>
Date: Tue, 1 Aug 2023 20:34:42 +0200
Subject: [PATCH] libtool: Enable shared library support for SerenityOS
For some odd reason, libtool handles the configuration for shared
libraries entirely statically and in its configure script. If no
shared library support is "present", building shared libraries is
disabled entirely.
Fix that by just adding the appropriate configuration options for
`serenity`. This allows us to finally create dynamic libraries
automatically using libtool, without having to manually link the
static library into a shared library.
---
builds/unix/configure | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/builds/unix/configure b/builds/unix/configure
index 99499ceebe1c715183610b374841de288552d3e3..e2fa5a60411fab7089aab5800c89abaeea985d36 100755
--- a/builds/unix/configure
+++ b/builds/unix/configure
@@ -5558,6 +5558,10 @@ tpf*)
os2*)
lt_cv_deplibs_check_method=pass_all
;;
+
+serenity*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
esac
fi
@@ -9108,6 +9112,10 @@ lt_prog_compiler_static=
lt_prog_compiler_static='-Bstatic'
;;
+ serenity*)
+ lt_prog_compiler_can_build_shared=yes
+ ;;
+
*)
lt_prog_compiler_can_build_shared=no
;;
@@ -10640,6 +10648,10 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
hardcode_shlibpath_var=no
;;
+ serenity*)
+ ld_shlibs=yes
+ ;;
+
*)
ld_shlibs=no
;;
@@ -11712,6 +11724,17 @@ uts4*)
shlibpath_var=LD_LIBRARY_PATH
;;
+serenity*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}${versuffix} ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}${major}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ dynamic_linker='SerenityOS LibELF'
+ ;;
+
*)
dynamic_linker=no
;;

View file

@ -0,0 +1,16 @@
# Patches for freetype on SerenityOS
## `0001-libtool-Enable-shared-library-support-for-SerenityOS.patch`
libtool: Enable shared library support for SerenityOS
For some odd reason, libtool handles the configuration for shared
libraries entirely statically and in its configure script. If no
shared library support is "present", building shared libraries is
disabled entirely.
Fix that by just adding the appropriate configuration options for
`serenity`. This allows us to finally create dynamic libraries
automatically using libtool, without having to manually link the
static library into a shared library.