0006-link-with-latomic-when-needed.patch 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. From 4e6dc4dee0e1c6407113597180d9616b4f275f94 Mon Sep 17 00:00:00 2001
  2. From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  3. Date: Thu, 2 May 2024 14:02:17 +0200
  4. Subject: [PATCH] link with -latomic when needed
  5. Some architecture such as sparc and some flavors of arm needs -latomic
  6. to avoid the following build failure:
  7. gthread-posix.c:(.text+0xda8): undefined reference to `__atomic_compare_exchange_4'
  8. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  9. Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/4e6dc4dee0e1c6407113597180d9616b4f275f94
  10. ---
  11. glib/meson.build | 1 +
  12. meson.build | 9 +++++++++
  13. 2 files changed, 10 insertions(+)
  14. diff --git a/glib/meson.build b/glib/meson.build
  15. index 24cbb664d4..b2dd569e1e 100644
  16. --- a/glib/meson.build
  17. +++ b/glib/meson.build
  18. @@ -419,6 +419,7 @@ libglib = library('glib-2.0',
  19. include_directories : configinc,
  20. link_with: [charset_lib, gnulib_lib],
  21. dependencies : [
  22. + atomic_dep,
  23. gnulib_libm_dependency,
  24. libiconv,
  25. libintl_deps,
  26. diff --git a/meson.build b/meson.build
  27. index 46c5aa200a..8b42940558 100644
  28. --- a/meson.build
  29. +++ b/meson.build
  30. @@ -2233,6 +2233,15 @@ libffi_dep = dependency('libffi', version : '>= 3.0.0')
  31. libz_dep = dependency('zlib')
  32. +libatomic_test_code = '''
  33. + int main (int argc, char ** argv) {
  34. + return 0;
  35. + }'''
  36. +atomic_dep = []
  37. +if cc.links(libatomic_test_code, args : '-latomic', name : 'check for -latomic')
  38. + atomic_dep = cc.find_library('atomic')
  39. +endif
  40. +
  41. # First check in libc, fallback to libintl, and as last chance build
  42. # proxy-libintl subproject.
  43. # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
  44. --
  45. 2.44.0