Re: Build 0.6 version fail on musl libc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2020-04-29 at 10:14, Jens Axboe wrote:
> On 4/29/20 9:29 AM, Jens Axboe wrote:
> > On 4/29/20 9:26 AM, Christoph Hellwig wrote:
> >> On Wed, Apr 29, 2020 at 09:24:40AM -0600, Jens Axboe wrote:
> >>>
> >>> Not sure what the best fix is there, for 32-bit, your change will truncate
> >>> the offset to 32-bit as off_t is only 4 bytes there. At least that's the
> >>> case for me, maybe musl is different if it just has a nasty define for
> >>> them.
> >>>
> >>> Maybe best to just make them uint64_t or something like that.
> >>
> >> The proper LFS type would be off64_t.
> > 
> > Is it available anywhere? Because I don't have it.
> 
> There seems to be better luck with __off64_t, but I don't even know
> how widespread that is... Going to give it a go, we'll see.

AFAIK, __off64_t is glibc specific, defined in /usr/include/fcntl.h:
------
# ifndef __USE_FILE_OFFSET64
typedef __off_t off_t;
# else
typedef __off64_t off_t;
# endif
------

So, this will not work on musl based Linux system, git commit id
b5096098c62adb19dbf4a39b480909766c9026e7 should be reverted. But you
know better what to do.

I come with another quick and dirty patch attached to this mail but
again  I think it is not proper solution, just playing to find (maybe)
'good enough' workaround.

Thanks
-- 
regards
diff --git a/configure b/configure
index 30b0a5a..8299597 100755
--- a/configure
+++ b/configure
@@ -301,6 +301,9 @@ EOF
 fi
 if test "$__kernel_timespec" != "yes"; then
 cat >> $compat_h << EOF
+#include <stdint.h>
+#define int64_t uint64_t
+
 struct __kernel_timespec {
 	int64_t		tv_sec;
 	long long	tv_nsec;
diff --git a/src/include/liburing.h b/src/include/liburing.h
index ae5542c..24c24a2 100644
--- a/src/include/liburing.h
+++ b/src/include/liburing.h
@@ -14,7 +14,9 @@ extern "C" {
 #include "liburing/compat.h"
 #include "liburing/io_uring.h"
 #include "liburing/barrier.h"
+#include <sys/stat.h>
 
+#define loff_t off_t
 /*
  * Library interface to io_uring
  */

[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux