commit:     3c28815d55e0281a356bed17449b012b27c08c07
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May 27 03:02:58 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May 27 03:02:58 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c28815d

dev-libs/spdlog: fix build w/ musl-1.2.4

Closes: https://bugs.gentoo.org/906954
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/spdlog/files/spdlog-musl-1.2.4.patch      | 30 ++++++++++++++++++++++
 ...pdlog-1.11.0.ebuild => spdlog-1.11.0-r1.ebuild} |  1 +
 2 files changed, 31 insertions(+)

diff --git a/dev-libs/spdlog/files/spdlog-musl-1.2.4.patch 
b/dev-libs/spdlog/files/spdlog-musl-1.2.4.patch
new file mode 100644
index 000000000000..cd1240d36f46
--- /dev/null
+++ b/dev-libs/spdlog/files/spdlog-musl-1.2.4.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/906954
+https://github.com/gabime/spdlog/commit/287a00d364990edbb621fe5e392aeb550135fb96
+
+From 287a00d364990edbb621fe5e392aeb550135fb96 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.k...@gmail.com>
+Date: Tue, 3 Jan 2023 09:54:50 -0800
+Subject: [PATCH] Do not use LFS64 functions on linux/musl (#2589)
+
+On musl, off_t is 64bit always ( even on 32bit platforms ), therefore
+using LFS64 funcitons is not needed on such platforms. Moreover, musl
+has stopped providing aliases for these functions [1] which means it
+wont compile on newer musl systems. Therefore only use it on 32bit
+glibc/linux platforms and exclude musl like cygwin or OSX
+
+[1] 
https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
+Signed-off-by: Khem Raj <raj.k...@gmail.com>
+--- a/include/spdlog/details/os-inl.h
++++ b/include/spdlog/details/os-inl.h
+@@ -236,8 +236,8 @@ SPDLOG_INLINE size_t filesize(FILE *f)
+ #    else
+     int fd = ::fileno(f);
+ #    endif
+-// 64 bits(but not in osx or cygwin, where fstat64 is deprecated)
+-#    if (defined(__linux__) || defined(__sun) || defined(_AIX)) && 
(defined(__LP64__) || defined(_LP64))
++// 64 bits(but not in osx, linux/musl or cygwin, where fstat64 is deprecated)
++#    if ((defined(__linux__) && defined(__GLIBC__)) || defined(__sun) || 
defined(_AIX)) && (defined(__LP64__) || defined(_LP64))
+     struct stat64 st;
+     if (::fstat64(fd, &st) == 0)
+     {
+

diff --git a/dev-libs/spdlog/spdlog-1.11.0.ebuild 
b/dev-libs/spdlog/spdlog-1.11.0-r1.ebuild
similarity index 96%
rename from dev-libs/spdlog/spdlog-1.11.0.ebuild
rename to dev-libs/spdlog/spdlog-1.11.0-r1.ebuild
index ebda7ae2f4a2..311db3477688 100644
--- a/dev-libs/spdlog/spdlog-1.11.0.ebuild
+++ b/dev-libs/spdlog/spdlog-1.11.0-r1.ebuild
@@ -31,6 +31,7 @@ RDEPEND="${DEPEND}"
 
 PATCHES=(
        "${FILESDIR}/${PN}-force_external_fmt.patch"
+       "${FILESDIR}/${PN}-musl-1.2.4.patch"
 )
 
 src_prepare() {

Reply via email to