101-macos-weak-aliases.patch 1.0 KB

1234567891011121314151617181920212223242526
  1. From 9445f477cfcfb3615ffde8f93b1b98c809ee4eca Mon Sep 17 00:00:00 2001
  2. From: Eugene Gershnik <[email protected]>
  3. Date: Mon, 6 May 2024 09:29:39 -0700
  4. Subject: [PATCH] This re-enables build on macOS.
  5. Weak aliases are not supported by clang on Darwin.
  6. Instead this fix uses inline asm to make `_uuid_time` and alias to `___uuid_time`
  7. Fixes util-linux/util-linux#2873
  8. ---
  9. libuuid/src/uuid_time.c | 4 ++++
  10. 1 file changed, 4 insertions(+)
  11. --- a/libuuid/src/uuid_time.c
  12. +++ b/libuuid/src/uuid_time.c
  13. @@ -85,6 +85,10 @@ time_t __uuid_time(const uuid_t uu, stru
  14. }
  15. #if defined(__USE_TIME_BITS64) && defined(__GLIBC__)
  16. extern time_t uuid_time64(const uuid_t uu, struct timeval *ret_tv) __attribute__((weak, alias("__uuid_time")));
  17. +#elif defined(__clang__) && defined(__APPLE__)
  18. +__asm__(".globl _uuid_time");
  19. +__asm__(".set _uuid_time, ___uuid_time");
  20. +extern time_t uuid_time(const uuid_t uu, struct timeval *ret_tv);
  21. #else
  22. extern time_t uuid_time(const uuid_t uu, struct timeval *ret_tv) __attribute__((weak, alias("__uuid_time")));
  23. #endif