[meta-oe] fontforge: Use alternate way to detect libm

Message ID 20220707205532.1459169-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe] fontforge: Use alternate way to detect libm | expand

Commit Message

Khem Raj July 7, 2022, 8:55 p.m. UTC
libm is folded into libc in latest glibc and build fails to detect
it with given cmake mechanism, therefore use slighly different mechanism
which work on hosts with or without libm

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...ake-Use-alternate-way-to-detect-libm.patch | 67 +++++++++++++++++++
 .../fontforge/fontforge_20220308.bb           |  7 +-
 2 files changed, 71 insertions(+), 3 deletions(-)
 create mode 100644 meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch

Patch

diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
new file mode 100644
index 0000000000..dd799e7485
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
@@ -0,0 +1,67 @@ 
+From 6d3c48d1b01943a467928235c3affbab463c25ab Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Jul 2022 12:32:47 -0700
+Subject: [PATCH] cmake: Use alternate way to detect libm
+
+The standard package provided with MathLib cmake module does not work
+when libm is folded into libc starting glibc 2.35+
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt                   | 7 ++++++-
+ contrib/fonttools/CMakeLists.txt | 2 +-
+ fontforge/CMakeLists.txt         | 2 +-
+ fontforgeexe/CMakeLists.txt      | 4 ++--
+ 4 files changed, 10 insertions(+), 5 deletions(-)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -111,9 +111,14 @@ find_package_with_target(Intl REQUIRED)
+ find_package(GLIB 2.6 REQUIRED COMPONENTS gio gobject)
+ find_package(Iconv REQUIRED)
+ find_package(LibXml2 REQUIRED)
+-find_package(MathLib REQUIRED)
+ find_package(ZLIB REQUIRED)
+ 
++include(CheckLibraryExists)
++CHECK_LIBRARY_EXISTS(m pow "" HAVE_LIB_M)
++if (HAVE_LIB_M)
++    set(EXTRA_LIBS ${EXTRA_LIBS} m)
++endif (HAVE_LIB_M)
++
+ check_include_file(pthread.h HAVE_PTHREAD_H)
+ if(HAVE_PTHREAD_H)
+   find_package(Threads)
+--- a/contrib/fonttools/CMakeLists.txt
++++ b/contrib/fonttools/CMakeLists.txt
+@@ -15,6 +15,6 @@ add_executable(woff woff.c)
+ 
+ target_link_libraries(acorn2sfd PRIVATE fontforge)
+ target_link_libraries(dewoff PRIVATE ZLIB::ZLIB)
+-target_link_libraries(pcl2ttf PRIVATE MathLib::MathLib)
++target_link_libraries(pcl2ttf PRIVATE ${EXTRA_LIBS})
+ target_link_libraries(ttf2eps PRIVATE fontforge)
+ target_link_libraries(woff PRIVATE ZLIB::ZLIB)
+--- a/fontforge/CMakeLists.txt
++++ b/fontforge/CMakeLists.txt
+@@ -237,7 +237,7 @@ target_link_libraries(fontforge
+     GLIB::GLIB
+     Intl::Intl
+   PRIVATE
+-    MathLib::MathLib
++    ${EXTRA_LIBS}
+     Iconv::Iconv
+     ZLIB::ZLIB
+ )
+--- a/fontforgeexe/CMakeLists.txt
++++ b/fontforgeexe/CMakeLists.txt
+@@ -110,7 +110,7 @@ if(ENABLE_PYTHON_SCRIPTING_RESULT)
+   target_link_libraries(fontforgeexe PRIVATE Python3::Python)
+ endif()
+ 
+-target_link_libraries(fontforgeexe PRIVATE fontforge Iconv::Iconv MathLib::MathLib)
++target_link_libraries(fontforgeexe PRIVATE fontforge Iconv::Iconv ${EXTRA_LIBS})
+ install(TARGETS fontforgeexe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(UNIX)
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb
index 83bf82a448..c53f2db01b 100644
--- a/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb
+++ b/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb
@@ -18,14 +18,15 @@  SRCREV = "582bd41a9bf04326300fc02a677fe3610d6d3ccd"
 SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
            file://0001-include-sys-select-on-non-glibc-platforms.patch \
            file://0001-fontforgeexe-Use-env-to-find-fontforge.patch \
+           file://0001-cmake-Use-alternate-way-to-detect-libm.patch \
 "
 S = "${WORKDIR}/git"
 
-EXTRA_OECMAKE = "-DENABLE_GUI=OFF -DENABLE_DOCS=OFF"
+EXTRA_OECMAKE = "-DENABLE_DOCS=OFF"
 
 CFLAGS += "-fno-strict-aliasing"
-LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI} -lm"
-BUILD_LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI} -lm"
+LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
+BUILD_LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
 
 #do_configure:prepend() {
 # uthash sources are expected in uthash/src