From edc72a4bd1cc8f97612fc4cae68c7d1d5a402c30 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Fri, 1 Dec 2023 13:01:48 -0600 Subject: shared-mime-info-native: handle old GCC for AlmaLinux8 shared-mime-info-native fails to build on AlmaLinux 8 due to its use of GCC-8 and the upstream package missing a required `-lstdc++fs` on that compiler. Submitted a patch upstream which fixes this and am porting. (From OE-Core rev: 664c7f09ddc15ec9bcb7d8a5bac453922be86a37) Signed-off-by: Patrick Williams Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- ...2-Handle-build-with-older-versions-of-GCC.patch | 54 ++++++++++++++++++++++ .../shared-mime-info/shared-mime-info_2.4.bb | 3 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch b/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch new file mode 100644 index 0000000000..2af6b461b6 --- /dev/null +++ b/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch @@ -0,0 +1,54 @@ +From 461d00fcd5c5842b9a56f7462d55d46bf21163cc Mon Sep 17 00:00:00 2001 +From: Patrick Williams +Date: Fri, 1 Dec 2023 11:19:02 -0600 +Subject: [PATCH] Handle build with older versions of GCC + +Older versions of GCC (prior to 9.1) did not put the `std::filesystem` +support directly into libstdcpp, but in a separate `libstdc++fs`. Add +meson logic to detect if an extra linker flag is necessary. + +Fixes #223. + +Tested on AlmaLinux 8 which uses GCC-8. + +Signed-off-by: Patrick Williams +Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/278] +--- + meson.build | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/meson.build b/meson.build +index ecc012f..93acd40 100644 +--- a/meson.build ++++ b/meson.build +@@ -11,6 +11,7 @@ config = configuration_data() + i18n = import('i18n') + + cc = meson.get_compiler('c') ++cxx = meson.get_compiler('cpp') + + ############################################################################### + # Project configuration +@@ -46,6 +47,19 @@ if not xdgmime_found + ''') + endif + ++############################################################################### ++# Check if GCC needs -lstdc++fs (before 9.1) ++ ++if not cxx.links(''' ++ #include ++ int main() { ++ return std::filesystem::is_directory( ++ std::filesystem::status("/tmp")) ? 0 : 1; ++ } ++ ''', name: 'std++fs-check') ++ add_project_link_arguments('-lstdc++fs', language : 'cpp') ++endif ++ + ############################################################################### + # Dependencies + +-- +2.41.0 + diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb index c7da0ca2d2..ef5df44ad6 100644 --- a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb +++ b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb @@ -9,7 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native" SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \ - file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch" + file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \ + file://0002-Handle-build-with-older-versions-of-GCC.patch" SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada" S = "${WORKDIR}/git" -- cgit v1.2.3-54-g00ecf