diff options
Diffstat (limited to 'meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch')
-rw-r--r-- | meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch | 54 |
1 files changed, 54 insertions, 0 deletions
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 @@ | |||
1 | From 461d00fcd5c5842b9a56f7462d55d46bf21163cc Mon Sep 17 00:00:00 2001 | ||
2 | From: Patrick Williams <patrick@stwcx.xyz> | ||
3 | Date: Fri, 1 Dec 2023 11:19:02 -0600 | ||
4 | Subject: [PATCH] Handle build with older versions of GCC | ||
5 | |||
6 | Older versions of GCC (prior to 9.1) did not put the `std::filesystem` | ||
7 | support directly into libstdcpp, but in a separate `libstdc++fs`. Add | ||
8 | meson logic to detect if an extra linker flag is necessary. | ||
9 | |||
10 | Fixes #223. | ||
11 | |||
12 | Tested on AlmaLinux 8 which uses GCC-8. | ||
13 | |||
14 | Signed-off-by: Patrick Williams <patrick@stwcx.xyz> | ||
15 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/278] | ||
16 | --- | ||
17 | meson.build | 14 ++++++++++++++ | ||
18 | 1 file changed, 14 insertions(+) | ||
19 | |||
20 | diff --git a/meson.build b/meson.build | ||
21 | index ecc012f..93acd40 100644 | ||
22 | --- a/meson.build | ||
23 | +++ b/meson.build | ||
24 | @@ -11,6 +11,7 @@ config = configuration_data() | ||
25 | i18n = import('i18n') | ||
26 | |||
27 | cc = meson.get_compiler('c') | ||
28 | +cxx = meson.get_compiler('cpp') | ||
29 | |||
30 | ############################################################################### | ||
31 | # Project configuration | ||
32 | @@ -46,6 +47,19 @@ if not xdgmime_found | ||
33 | ''') | ||
34 | endif | ||
35 | |||
36 | +############################################################################### | ||
37 | +# Check if GCC needs -lstdc++fs (before 9.1) | ||
38 | + | ||
39 | +if not cxx.links(''' | ||
40 | + #include <filesystem> | ||
41 | + int main() { | ||
42 | + return std::filesystem::is_directory( | ||
43 | + std::filesystem::status("/tmp")) ? 0 : 1; | ||
44 | + } | ||
45 | + ''', name: 'std++fs-check') | ||
46 | + add_project_link_arguments('-lstdc++fs', language : 'cpp') | ||
47 | +endif | ||
48 | + | ||
49 | ############################################################################### | ||
50 | # Dependencies | ||
51 | |||
52 | -- | ||
53 | 2.41.0 | ||
54 | |||